Frontend

Der Vault wird über eine eigene Quartz-4-Instanz als statische Website verfuegbar. Primaere Nutzung: Smartphone/Tablet am Boot.

Wo liegt das Frontend?

/var/www/quartz-mercruiser/        ← isolierte Quartz-Instanz
├── content/                       → Symlink auf /var/www/mercruiser-3.0-lx
├── quartz.config.ts               ← Site-Identitaet, Farben, Plugins
├── quartz.layout.ts               ← Explorer, Graph, Sidebars
├── package.json                   ← npm-Scripts (Ports)
├── public/                        ← Build-Output (statisch)
└── README.md                      ← Frontend-Doku

Parallel und unabhaengig von /var/www/vault/ (anderes Projekt, Port 4444 — nicht anfassen).

Wie starten?

cd /var/www/quartz-mercruiser
npm run dev

Dann oeffnen: http://localhost:4445.

Ports:

  • 4445 — HTTP-Server
  • 4446 — WebSocket fuer Hot-Reload (Port 3001 ist anderweitig belegt)

Static Build fuer Deploy:

npm run build
# Output in /var/www/quartz-mercruiser/public/

PWA-Installation (Phase 2)

Noch nicht fertig. Phase 2 ergaenzt:

  • Service Worker fuer Offline-Cache
  • manifest.json fuer Installation auf Homescreen
  • Caching-Strategy fuer Markdown-Seiten und Bilder

Bis dahin laeuft die Site nur online.

Deploy (Phase noch offen)

Geplant: Nginx reverse-proxy auf den statischen Build, eigene Domain (z. B. boat.<eigene-domain>.de). Konkretes Setup folgt mit Phase 2/3.

Wie werden Inhalte gerendert?

  • Quartz liest die Markdown-Dateien aus content/ (Symlink auf diesen Vault).
  • Frontmatter, Wikilinks, Tabellen, Code-Bloecke werden via Plugins (ObsidianFlavoredMarkdown, GitHubFlavoredMarkdown, Latex, SyntaxHighlighting, TableOfContents, CrawlLinks, Search, ContentIndex) verarbeitet.
  • Ergebnis: statisches HTML pro Datei, plus zentrale contentIndex.json fuer die clientseitige Volltextsuche.

Eingeschlossene und ausgeschlossene Inhalte

ignorePatterns in quartz.config.ts schliesst aus:

  • private/, templates/, .obsidian/, .git/, logs/, scripts/
  • 01_manual/ocr_raw/ und 01_manual/diagramme/raw/ (gross, nicht relevant fuer den Web-Bezug)
  • Personendaten-Dateien: **/dokumente/zulassung*, **/dokumente/*personendaten*, **/dokumente/*nicht_anonymisiert*

Konvention im Vault: alle Dokumente vor Ablage anonymisieren (siehe README).

Suche

Clientseitig via FlexSearch. Verifiziert:

Offen: Bindestrich-Teilenummern wie 18-0682. Siehe offene_fragen Abschnitt Frontend.

Troubleshooting

Symlink kaputt (content/ zeigt ins Leere):

cd /var/www/quartz-mercruiser
rm content && ln -s /var/www/mercruiser-3.0-lx content

Port 4445 belegt durch anderen Dienst:

ss -tlnp | grep :4445
# in package.json andere Ports setzen

Build-Fehler bad indentation of a mapping entry: YAML-Frontmatter im Vault enthaelt unquotierte Sonderzeichen (?, :). Im Markdown reparieren, neu bauen.

Dev-Server startet nicht (EADDRINUSE :::3001): WebSocket-Port-Konflikt. In package.json ist --wsPort 4446 gesetzt; falls fehlt, ergaenzen.

Verwandte Inhalte