Quartz lädt das Plugin als reine Komponente. Aus jedem Eintrag in der quartz.config.yaml, der
einen layout-Block hat, wird eine eigene Instanz mit ihren eigenen Optionen. Ein Eintrag ohne
layout-Block verschwindet dabei nicht: Quartz stellt jede Komponente, die keine Stelle nennt, an
die Vorgabe ihres Manifests — bei diesem Plugin links, mit priority: 15. Beim Bau jeder Seite
läuft dann derselbe Ablauf:
- Frontmatter prüfen — Ist die Box auf dieser Seite ausgeblendet? Wurde ein anderes Schnipsel
gewählt? Hat die Seite eine Sprache, für die
byLangetwas kennt? - Quelle bestimmen —
htmlaus der Konfiguration hat Vorrang, sonst die Datei ausdirundfile. - Datei lesen — Der Pfad muss innerhalb von
dirliegen. Gelesen wird mit Zwischenspeicher: neu geladen nur, wenn sich die Änderungszeit geändert hat. - Markdown umwandeln — Endet die Datei auf
.md, wird sie zu HTML. Auch das Ergebnis wird zwischengespeichert. - Platzhalter ersetzen — Seiten- und Site-Werte werden eingesetzt und dabei maskiert.
- Ausgeben — Ein
divmit der Klasselayout-box, wahlweise mit Überschrift oder als aufklappbaresdetails.
Warum das Nachladen ohne Neustart geht
Schritt 3 fragt bei jedem Rendern die Änderungszeit der Datei ab. Ist sie dieselbe wie beim letzten Mal, kommt der Inhalt aus dem Zwischenspeicher; ist sie neuer, wird gelesen.
Damit greift eine Änderung am Schnipsel im Modus --serve sofort, und es braucht dafür keinen
Dateibeobachter, den jemand einrichten und wieder abräumen müsste. Im normalen Bau kostet dasselbe
Verfahren pro Seite genau eine Abfrage beim Dateisystem — messbar, aber neben dem Rest eines Baus
ohne Gewicht.
Was daraus folgt
Der Zwischenspeicher hängt an der Änderungszeit, nicht am Inhalt. Wer eine Datei mit demselben Zeitstempel zurückschreibt — etwa beim Zurückspielen aus einem Archiv —, sieht die alte Fassung, bis die Zeit sich ändert.
Reine Komponente, kein Transformer
Das Plugin greift nicht in die Inhaltspipeline ein. Es sieht keine Notiz, verändert keinen Text und läuft nicht über den Vault. Es wird nur gefragt, wenn Quartz das Layout einer Seite zusammensetzt.
Das ist der Grund, warum ein Markdown-Schnipsel keine Wikilinks auflöst: Die Stelle, an der Quartz so etwas tut, hat die Box längst hinter sich.