Kirby
Das Orimora-Sync-Kirby-Plugin importiert die veröffentlichten Dokumente einer Ordnerfreigabe in Kirby-Pages — nach demselben Browse-Import-(Pull-)Muster wie das WordPress-Plugin: ein nur-lesendes Ordnerfreigabe-Token authentifiziert nur-lesende Aufrufe an Orimora, und du mappst jede Orimora-Kollektion auf eine Kirby-Parent-Page + ein Template. Orimora bleibt die Quelle; das Kirby-spezifische Wissen (Feldformat, Escaping) lebt im Plugin.
Orimora ──Pull-API (Bearer kb_…)──▶ Kirby-Plugin ──▶ Kirby-Pages (Quelle) (Adapter)So funktioniert es
Abschnitt betitelt „So funktioniert es“- Gib in Orimora eine Kollektion frei (Kollektions-Menü → „Mit einem Dienst verbinden”,
Ziel CMS), um ein nur-lesendes, nur-veröffentlichtes Token (
kb_…) zu erzeugen. - Trage in Kirby die Verbindung in
site/config/config.phpein — das Token ist ein Secret und bleibt daher in der Config, nie in Panel-editierbarem Content:return ['orimora.sync.url' => 'https://wiki.example.com','orimora.sync.token' => 'kb_…','orimora.sync.routeKey' => '…zufall…', // optional: aktiviert die Cron-Route]; - Öffne im Panel Orimora im Menü: lade die freigegebenen Kollektionen, mappe jede auf eine Kirby-Parent-Page + Template + Status und speichere das Mapping. Die Ziel-Parent-Pages und -Templates müssen in deiner Kirby-Site bereits existieren.
- Klicke Jetzt synchronisieren — oder fahre es headless. Jedes veröffentlichte Dokument wird eine Page unter seiner gemappten Parent-Page; ein Re-Sync überschreibt Titel + Body der Pages, die das Plugin besitzt, und in Orimora entfernte/unveröffentlichte Dokumente werden auf unlisted gesetzt (nie gelöscht).
Headless-Sync (Cron)
Abschnitt betitelt „Headless-Sync (Cron)“Entweder der Kirby-CLI-Command:
kirby orimora:syncoder die secret-geschützte Route (nach Setzen von orimora.sync.routeKey):
curl -fsS "https://deine-site.example/orimora/sync?key=<routeKey>"Installation (aus dem Quellcode)
Abschnitt betitelt „Installation (aus dem Quellcode)“Klone das Repository orimora-kirby-importer
nach site/plugins/orimora-sync (oder klone es woanders und symlinke es dorthin):
git clone https://github.com/Orimora-app/orimora-kirby-importer site/plugins/orimora-syncDas gebaute Panel-Asset ist mit-committet, es läuft also direkt — kein Build und kein composer install zum Betrieb nötig.
Sicherheit
Abschnitt betitelt „Sicherheit“- Das Token liegt in
config.php, nie in einer Panel-editierbaren Content-Datei — es bleibt aus Backups und Versionskontrolle heraus. Die Panel-UI sieht nur, ob eine Verbindung konfiguriert ist. - Die Vertrauensgrenze ist ausgehend: das Plugin ruft Orimora nur mit dem nur-lesenden, nur-veröffentlichten Token. Es kann weder nach Orimora schreiben noch Entwürfe offenlegen.
- Separator-Sicherheit. Inhalte werden über die Kirby Page-API geschrieben, deren Serializer
den Feld-Separator
----automatisch escaped — ein Markdown-Body mit----(Thematic Breaks, Tabellen, Setext-Überschriften) kann keine fremden Kirby-Felder injizieren (Klasse der Advisory GHSA-x5mr-p6v4-wp93). - Panel-API-Routen sind durch Kirbys Auth geschützt; die Cron-Route durch einen timing-sicheren Schlüsselvergleich.
Quelle der Wahrheit (vs. WordPress)
Abschnitt betitelt „Quelle der Wahrheit (vs. WordPress)“Anders als beim WordPress-Plugin — wo das CMS Slug/Status/SEO besitzt — besitzt hier Orimora Titel + Body, und ein Re-Sync überschreibt sie. Behandle importierte Kirby-Pages als nur-lesende Spiegel und kommuniziere das deinen Redakteuren.
v1-Grenzen (bewusst)
Abschnitt betitelt „v1-Grenzen (bewusst)“- Flacher Baum — die Dokumente eines Ordners landen auf einer Ebene unter der Parent-Page (Verschachtelung ist v2).
- Bilder bleiben absolute URLs im Markdown (lokaler Sideload ist v2).
- Full-Pull pro Sync (nicht inkrementell) — das hält die Orphan-Erkennung korrekt.
- Eine Ordnerfreigabe, Verbindung in
config.phpkonfiguriert (Panel-editierbare Verbindung ist v2).
Siehe auch
Abschnitt betitelt „Siehe auch“- WordPress — dasselbe Browse-Import-Muster für WordPress
- Statische Seiten über die Pull-API — einen Ordner in jeden Markdown-SSG ziehen
- REST-API Überblick — der Pull-API-Kontrakt