- 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>
80 lines
3.0 KiB
Markdown
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.
|