Zum Inhalt springen

Obsidian Plugin

Das Orimora Obsidian Plugin (obsidian/) ermöglicht die Synchronisation zwischen deinem lokalen Obsidian-Vault und einer Orimora-Instanz.

Das Plugin ist noch nicht im Obsidian Community Plugins-Verzeichnis veröffentlicht. Manuelle Installation:

Terminal-Fenster
cd obsidian
yarn install
yarn build
# Build-Ausgabe in den Vault kopieren. Der Ordnername MUSS die Plugin-ID sein
# (obsidian-orimora), sonst lädt Obsidian das Plugin nicht.
mkdir -p <vault>/.obsidian/plugins/obsidian-orimora
cp dist/manifest.json dist/main.js <vault>/.obsidian/plugins/obsidian-orimora/

Aktiviere das Plugin unter Obsidian → Einstellungen → Community Plugins.

EinstellungBeschreibung
Orimora URLBasis-URL deiner Orimora-Instanz, z.B. https://wiki.example.com
API KeyEin kb_-API-Schlüssel aus Einstellungen → Entwickler
Standard-SammlungSammlung, in die Dokumente gepusht werden
Pull-OrdnerVault-relativer Ordner für gepullte Dokumente (Standard: Orimora)
Pull-SammlungSammlung, aus der gepullt wird (Standard: Standard-Sammlung)
Inhaltsverzeichnis entfernenTOC-Blöcke (Listen von [[#abschnitt]]-Links) vor dem Push entfernen
Frontmatter als Metadaten-Block synchronisierenNicht-Tag-Frontmatter beim Push in einen ## Metadaten-Block projizieren und beim Pull strippen (Standard an)

Sende eine einzelne Notiz oder einen ganzen Ordner an Orimora.

BefehlAktion
Push active file to OrimoraAktuelle Notiz pushen
Push folder to OrimoraAlle .md-Dateien im aktiven Ordner pushen
Check Orimora sync state of active noteMeldet, ob die offene Notiz synchron ist

Rechtsklick auf eine Datei oder einen Ordner für die gleichen Optionen.

Nach erfolgreichem Push erhält die Notiz Orimora-Frontmatter:

---
orimora_id: <document-uuid>
orimora_collection_id: <collection-uuid>
orimora_last_synced: 2025-01-01T12:00:00.000Z
orimora_revision: 12 # monoton — für exakte Drift-Erkennung
---

Das tags:-Frontmatter der Notiz synchronisiert bidirektional mit den Orimora-Tags des Dokuments — flach, ohne Namespaces. tags: Funktion, Methode, Aufsichtsrat wird zu drei Tags in Orimora.

  • Push: Die tags:-Menge wird an Orimora gesendet (angelegt-oder-wiederverwendet per Name). Eine Notiz ohne tags:-Schlüssel lässt ihre Tags unangetastet; ein leeres tags: löscht sie.
  • Pull: Orimoras Tags werden ins tags: zurückgeschrieben, nur wenn sich die Menge tatsächlich geändert hat (case-insensitiv), unter Erhalt deiner Schreibweise — Aufsichtsrat wird also nie stillschweigend umgeschrieben und die Datei nicht „gechurnt”. Restricted (ACL-verwaltete) Tags werden nie in den Vault geschrieben.

Mit aktivierter Option Frontmatter als Metadaten-Block synchronisieren (Standard) wird das übrige Nicht-Tag-Frontmatter (Status, Themen, eigene Felder, verweise_intern als Links, …) beim Push in eine ## Metadaten-Tabelle am Dokumentanfang projiziert, da Orimora keinen Pro-Dokument-Metadatenspeicher hat. Der Block wird bei jedem Push idempotent neu erzeugt und beim Pull wieder gestrippt, sodass dein Obsidian-Frontmatter die Quelle der Wahrheit bleibt. Schalte die Option aus, um das Altverhalten zu behalten (Frontmatter wird beim Push verworfen).

Für skriptbare/Headless-Pushes ohne die Obsidian-UI bringt das Paket einen Runner mit:

Terminal-Fenster
cd obsidian
yarn sync # pusht einen Vault gemäß konfigurierter Env (siehe obsidian/.env.example)

Zwei Pull-Modi stehen zur Verfügung:

Holt nur Dokumente, die seit orimora_last_synced geändert wurden. Beim ersten Lauf wird automatisch auf einen vollständigen ZIP-Snapshot zurückgefallen.

Befehl: Pull changed documents from Orimora (incremental)
Ribbon: Klick auf das ↓-Symbol

Lädt die gesamte Sammlung als ZIP-Archiv und überschreibt alle lokalen Dateien.

Befehl: Pull collection from Orimora (ZIP snapshot)

Statt der ganzen Sammlung gezielt einzelne Collection-Ordner pullen.

Befehl: Pull from Orimora (select folders…)

Wenn ein Dokument mit gleichem Titel bereits in Orimora existiert, bietet das Plugin drei Optionen:

  • Überschreiben — Bestehendes Dokument aktualisieren
  • Duplizieren — Neues Dokument mit anderem Titel erstellen
  • Abbrechen — Push für diese Datei abbrechen

Beim inkrementellen Pull prüft das Plugin, ob eine lokale Datei seit dem letzten Sync bearbeitet wurde. Wenn die lokale Datei neuer ist als sowohl der orimora_last_synced-Zeitstempel als auch das Remote-updatedAt, wird die lokale Datei übersprungen, um lokale Änderungen nicht zu überschreiben.

Übersprungene Dateien werden in der Pull-Zusammenfassung mit einem ⏭-Indikator angezeigt.

Die Statusleiste zeigt an, wenn Orimora eine neuere Revision als deine lokale Kopie hält — exakt verglichen über orimora_revision (nicht über Zeitstempel). Ein passiver ↓ neuer-Hinweis sagt dir, vor dem Bearbeiten zu pullen, und vermeidet versehentliche Konflikte.

[[WikiLinks]] werden anhand des orimora_id-Frontmatters der Vault-Dateien aufgelöst und in korrekte Hyperlinks in Orimora umgewandelt. Beim Pull werden Orimora-Dokumentlinks zurück in [[WikiLinks]] konvertiert.

Das Obsidian Plugin nutzt die Orimora REST API (alles unter /api/v1/, Bearer-Key-Auth):

EndpunktVerwendung
GET /api/v1/collectionsSammlungsliste laden
GET /api/v1/documents?collectionId=X&title=Y[&parentDocumentId=Z]Existenz-/Konfliktprüfung (Push)
GET /api/v1/documents?collectionId=X&updatedSince=ISO&format=markdownInkrementeller Pull (inkl. tags)
GET /api/v1/collections.export?id=X&format=zipVollständiger ZIP-Pull
POST /api/v1/documentsDokumente anlegen (mit tags)
PATCH /api/v1/documents/:idDokumente aktualisieren (mit tags)
POST /api/attachments.uploadBild-/Anhang-Upload (zweistufig)

Der Bild-Upload ist zweistufig: Das Plugin registriert zuerst den Anhang, lädt dann die Bytes zur zurückgegebenen URL hoch und schreibt den Markdown-Bildlink auf die öffentliche URL um.

API-Keys mit Lesen-Berechtigung reichen für Pull. Lesen + Schreiben wird für Push benötigt. Der title-Filter macht Existenzprüfungen zu einer einzigen begrenzten Anfrage (kein Full-Collection-Scan).