Files
claude-plugins/plugins/humhub/skills/humhub/SKILL.md
T
skoandClaude Opus 4.8 04886d73f5 humhub: fetch-Befehl + space-list/resolve_container ins Plugin
- 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>
2026-08-05 06:03:41 +02:00

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> ...

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:

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.