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

80 lines
3.0 KiB
Markdown

---
name: humhub
description: 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".
version: 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:
```bash
./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:
```bash
./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
```bash
./humhub.py space-list # Spaces auflisten mit contentcontainer_id
```
### Wiki
```bash
./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
```bash
./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.