Zum Inhalt springen

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)
  1. 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.
  2. Trage in Kirby die Verbindung in site/config/config.php ein — 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
    ];
  3. Ö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.
  4. 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).

Entweder der Kirby-CLI-Command:

Terminal-Fenster
kirby orimora:sync

oder die secret-geschützte Route (nach Setzen von orimora.sync.routeKey):

Terminal-Fenster
curl -fsS "https://deine-site.example/orimora/sync?key=<routeKey>"

Klone das Repository orimora-kirby-importer nach site/plugins/orimora-sync (oder klone es woanders und symlinke es dorthin):

Terminal-Fenster
git clone https://github.com/Orimora-app/orimora-kirby-importer site/plugins/orimora-sync

Das gebaute Panel-Asset ist mit-committet, es läuft also direkt — kein Build und kein composer install zum Betrieb nötig.

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

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.

  • 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.php konfiguriert (Panel-editierbare Verbindung ist v2).