Neues Plugin, das MediaWiki-Seiten/Templates ueber die gevendorte, self- contained wiki.py (uv run --script; mwclient+python-dotenv) liest, rendert und schreibt. Instanzen wiki (Prod) und devwiki via -w. Zugangsdaten bleiben lokal (Umgebungsvariablen bzw. dotenv-Datei) - Beispiel-Vorlage beiliegend. SKILL.md dokumentiert Nutzung + Regel "Wiki nur via wiki.py/MCP, nicht Maintenance-Skript". Marketplace-Eintrag ergaenzt. Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
64 lines
2.6 KiB
Markdown
64 lines
2.6 KiB
Markdown
---
|
|
name: mediawiki
|
|
description: MediaWiki-Seiten und -Templates lesen, rendern und schreiben. Use when editing/fetching wiki pages (wiki.inmedias.it, devwiki.inmedias.it) or when the user mentions "wiki", "Vorlage/Template", "Kundenseite".
|
|
version: 0.1.0
|
|
---
|
|
|
|
# MediaWiki (wiki.py)
|
|
|
|
Liest, rendert und schreibt MediaWiki-Seiten/Templates über die mitgelieferte
|
|
CLI `wiki.py` (mwclient + Login). Unterstützt mehrere Instanzen.
|
|
|
|
## Grundregel
|
|
|
|
Wiki-Seiten/Templates werden **ausschließlich** über `wiki.py` (oder ein
|
|
MediaWiki-MCP) bearbeitet — **niemals** per `ssh <host> php .../maintenance/edit.php`
|
|
oder anderen direkten Server-Eingriffen. Reine Lese-/Render-Checks
|
|
(`curl ...?action=render`) sind ok; nur das **Schreiben** läuft über `wiki.py`.
|
|
|
|
## Ausführen
|
|
|
|
`wiki.py` ist ein eigenständiges `uv run --script` (Inline-Deps: `mwclient`,
|
|
`python-dotenv`). Aus dem Skill-Verzeichnis ausführen:
|
|
|
|
```bash
|
|
./wiki.py -w <instanz> <befehl> ...
|
|
```
|
|
|
|
`-w` / `--wiki` wählt die Instanz (Default: `wiki`):
|
|
- `wiki` → https://wiki.inmedias.it (Prod)
|
|
- `devwiki` → https://devwiki.inmedias.it (Test)
|
|
|
|
### Befehle
|
|
|
|
```bash
|
|
./wiki.py -w devwiki fetch "Kunde:Beispiel GmbH" # Wikitext -> stdout
|
|
./wiki.py -w devwiki render "Kunde:Beispiel GmbH" # gerendertes HTML -> stdout
|
|
./wiki.py -w devwiki search "Suchbegriff" [-n <namespace>] # Titelsuche
|
|
./wiki.py -w devwiki update "Kunde:Beispiel GmbH" datei.wiki --summary "..." # speichern
|
|
./wiki.py -w wiki update "Titel" - --summary "..." # Inhalt von stdin
|
|
```
|
|
|
|
Tipp: Beim Schreiben den Inhalt aus einer Datei (`datei.wiki`) oder `-` (stdin)
|
|
übergeben — nicht als langes Shell-Argument (Sonderzeichen/Backticks!).
|
|
|
|
## Zugangsdaten
|
|
|
|
`wiki.py` bringt **keine** Zugangsdaten mit. Jede/r hinterlegt eigene Creds als
|
|
Umgebungsvariablen oder in einer `.env` (Reihenfolge: `~/.config/dokumentierer/.env`,
|
|
dann `.env` im aktuellen Verzeichnis, dann bereits gesetzte Env-Variablen). Siehe
|
|
`.env.example`:
|
|
|
|
- `MEDIAWIKI_USER`, `MEDIAWIKI_PASSWORD` — für die Prod-Instanz (`wiki`)
|
|
- `DEVMEDIAWIKI_USER`, `DEVMEDIAWIKI_PASSWORD` — für `devwiki` (fällt auf die
|
|
`MEDIAWIKI_*`-Werte zurück, wenn nicht gesetzt)
|
|
- optional `MEDIAWIKI_URL` / `DEVMEDIAWIKI_URL` — nur nötig, wenn die
|
|
Default-URLs abweichen
|
|
|
|
Es empfiehlt sich ein eigener Bot-/Service-Account mit den nötigen Schreibrechten.
|
|
|
|
## Hinweise
|
|
- `search` liefert Titel; `render` ist nützlich, um vor/nach dem Schreiben das
|
|
Ergebnis zu prüfen, ohne die Seite im Browser zu öffnen.
|
|
- Für neue Instanzen: `WIKI_ALIASES` oben in `wiki.py` erweitern.
|