← Zurück zum Portfolio

Current View

Ein Obsidian-Plugin, das den Ansichtsmodus von Notizen automatisch nach Regeln statt manuell steuert.

  • TypeScript
  • Obsidian API
  • GitHub Actions
  • semantic-release

Problem

Obsidian öffnet jede Notiz im zuletzt genutzten Ansichtsmodus (Reading, Live Preview, Source) – unabhängig davon, worum es sich bei der Notiz handelt. Templates, Tagesnotizen, fertige Dokumentation und aktive Arbeitsnotizen brauchen aber eigentlich unterschiedliche Modi, und das manuell bei jeder Datei umzuschalten ist auf Dauer Reibung, die niemand braucht.

Kontext & Rahmenbedingungen

Community-Plugin für Obsidian, entwickelt und alleine gepflegt in TypeScript gegen die öffentliche Obsidian-Plugin-API. Muss sich in den bestehenden Plugin-Review-Prozess der Obsidian Community einfügen und mit anderen verbreiteten Plugins (z.B. Notebook Navigator) zusammenspielen, ohne deren interne Implementierung anzufassen.

Meine Verantwortung

Alleiniger Autor und Maintainer: Konzept, Implementierung, Release-Pipeline, Dokumentation und Community-Support (Issues/Feature-Requests) von der ersten Version bis heute.

Lösungsweg & Architektur

  • Regel-Engine mit vier Regeltypen: Frontmatter, Dateipfad/RegEx-Pattern, Tag und Ordner
  • Feste Prioritätsreihenfolge bei Konflikten: Frontmatter > Dateipattern > Tag > Ordner > Obsidian-Standard – bei Ordnerregeln gewinnt die am tiefsten verschachtelte
  • Debounce-Timeout konfigurierbar, um hektisches Umschalten bei schnellem Notiz-Wechsel zu verhindern
  • Sichtbare Lock-Icons in Datei-Explorer und Notebook Navigator, plus Quick-Lock direkt aus dem Kontextmenü
  • Release-Prozess über GitHub Actions und semantic-release, inklusive Beta-Kanal über BRAT für Vorab-Tests

Wichtige Entscheidungen & Trade-offs

  • Explizite Prioritätsreihenfolge statt "spezifischste Regel gewinnt" – nachvollziehbarer für Nutzer, auch wenn es weniger flexibel ist
  • Integration mit Notebook Navigator ausschließlich über dessen offizielle Plugin-API (ab v1.2.0) statt über interne Strukturen – stabiler bei Updates, dafür an ältere Navigator-Versionen nicht rückwärtskompatibel
  • Frontmatter-Schlüssel ist konfigurierbar, damit das Plugin sich an bestehende Vault-Konventionen anpasst statt umgekehrt

Ergebnis

Über alle GitHub-Releases hinweg wurden die Plugin-Assets bislang rund 18.434 Mal heruntergeladen (Live-Zahl direkt von der GitHub-Releases-API dieser Seite).

Was ich heute anders machen würde

Regeltypen (Frontmatter, Pattern, Tag, Ordner) und die Prioritätslogik sind über mehrere Minor-Releases hinweg gewachsen statt von Anfang an vollständig geplant gewesen zu sein. Im Nachhinein hätte ich das Prioritätsmodell und die Konfigurierbarkeit des Frontmatter-Keys von Release 1.0 an fest eingeplant, statt es schrittweise nachzuziehen.

Links