- fetch <content-id|perma-url> [--save]: löst Perma-Links selbst auf - space-list + resolve_container: container_id akzeptiert Slug/URL/ID - SKILL.md entsprechend ergänzt Gleicht das Plugin an die kanonische humhub.py (dokumentierer) an. Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
3.0 KiB
name, description, version
| name | description | version |
|---|---|---|
| humhub | HumHub Wiki-Seiten und Posts lesen/erstellen/aktualisieren via REST-API. Use when the user mentions "HumHub", "Space", "Wiki-Seite in HumHub" or "Post/Beitrag". | 0.1.0 |
HumHub (humhub.py)
Interagiert mit HumHub (https://humhub.inmedias.it) über die REST-API:
Wiki-Seiten und Posts auflisten, anzeigen, anlegen und aktualisieren — über die
mitgelieferte, self-contained humhub.py.
Ausführen
humhub.py ist ein eigenständiges uv run --script (Inline-Deps: requests,
python-dotenv). Aus dem Skill-Verzeichnis:
./humhub.py <befehl> ...
Perma-Link / Content-ID holen (empfohlener Einstieg)
HumHub-Links der Form …/content/perma?id=NNNN tragen eine Content-ID — nicht
die Wiki-Seiten- oder Post-ID, die die anderen Befehle erwarten. fetch löst das
selbst auf (erkennt WikiPage vs. Post) und braucht keine Vorab-Recherche:
./humhub.py fetch <content-id|perma-url> # Inhalt + Herkunfts-Kopf auf stdout
./humhub.py fetch <content-id|perma-url> --save # ablegen unter resources/humhub-<id>-<slug>.md
./humhub.py fetch <content-id|perma-url> --save --out <dir>
--save schreibt Markdown mit einem Herkunfts-Kopf (Quelle, Titel, Typ, Topics,
Stand, Abrufdatum). Zielverzeichnis ist standardmäßig resources/ im aktuellen
Projekt — dieses gehört üblicherweise in .gitignore (abgerufene Fremdinhalte
werden nicht committet).
Spaces
./humhub.py space-list # Spaces auflisten mit contentcontainer_id
Wiki
./humhub.py wiki-list ["filter"] # Wiki-Seiten auflisten (Titel-Filter optional)
./humhub.py wiki-get <id> # Wiki-Seite anzeigen (Inhalt + URL)
./humhub.py wiki-update <id> [datei|-] [--title ...] [--topics a,b] [--parent-id N]
./humhub.py wiki-create <container_id> "<titel>" [datei|-] [--topics a,b] [--parent-id N]
Posts
./humhub.py post-list <container_id> [--limit N]
./humhub.py post-create <container_id> [datei|-]
./humhub.py post-update <id> [datei|-]
Inhalte (Markdown) aus Datei oder - (stdin) übergeben — nicht als langes
Shell-Argument (Sonderzeichen). container_id akzeptiert eine numerische
Container-ID, einen Space-Slug oder eine Space-URL (resolve_container
löst Slug/URL selbst auf). Passende Container per space-list ermitteln, Seiten
per wiki-list / post-list.
Zugangsdaten
humhub.py bringt keinen Token mit. Jede/r hinterlegt ein eigenes
API-Token als Umgebungsvariable oder in einer dotenv-Datei (Reihenfolge:
~/.config/dokumentierer/.env, dann Datei im Arbeitsverzeichnis, dann bereits
gesetzte Env-Variablen). Siehe .env.example:
HUMHUB_API_TOKEN— REST-API-Token. Nur als berechtigter Benutzer erhältlich unter https://humhub.inmedias.it/rest/admin/index
Die Basis-URL (https://humhub.inmedias.it/api/v1) ist fest im Skript; für eine
andere Instanz BASE_URL oben in humhub.py anpassen.