Sortiert werden immer die Kinder eines Ordners untereinander. Drei Verfahren stehen zur Wahl:
options:
sort: manual # manual | alphabetical | date
sortDirection: asc # asc | desc
foldersFirst: first # first | last | mixedOrdner zuerst
Vor jedem Verfahren steht foldersFirst: first stellt die Ordner vor die Seiten, last dahinter,
mixed sortiert beide gemeinsam. Innerhalb der Ordner und innerhalb der Seiten gilt dann das
gewählte Verfahren.
manual — die Kaskade
Die Vorgabe. Vier Stufen, jede entscheidet nur, wo die vorige gleichstand:
| Stufe | Quelle | Beispiel |
|---|---|---|
| 1 | die order-Liste in der Konfiguration | order: { docs: [einstieg, setup] } |
| 2 | navOrder im Frontmatter | navOrder: 10 |
| 3 | die Nummer vor dem Datei- oder Verzeichnisnamen | 02 Setup.md |
| 4 | der Titel | Setup |
Wer auf einer Stufe keinen Wert hat, steht hinter allen, die einen haben. Eine Seite mit
navOrder kommt also vor jeder Seite ohne — egal, welche Nummer die andere im Dateinamen trägt.
Ohne order, navOrder und Nummern ergibt die Kaskade eine alphabetische Reihenfolge.
Die order-Liste
Die Reihenfolge an einer Stelle, statt verteilt auf viele Frontmatter-Blöcke:
options:
order:
"": [docs, blog, ueber] # die Wurzel
docs: [einstieg, setup, faq]- Der Schlüssel ist der Ordnerpfad;
""ist die Wurzel.docs,docs/,docs/indexunddocs.mdmeinen dasselbe. - Ein Eintrag ist das letzte Stück des Slugs (
einstieg) oder der Datei- bzw. Verzeichnisname (01 Einstieg); Groß- und Kleinschreibung zählt nicht. - Was nicht in der Liste steht, folgt danach, geordnet durch die Stufen 2 bis 4.
- Ein Eintrag, den es im Ordner nicht gibt, meldet der Bau einmal (9.2) — meist ein Tippfehler oder eine umbenannte Datei.
foldersFirstkommt vor der ListeMit der Vorgabe
foldersFirst: firststehen Ordner vor Seiten, auch wenn die Liste es anders sagt.ueberim Beispiel oben ist eine Seite und landet deshalb hinterdocsundblog, wo auch immer sie in der Liste steht. Soll die Liste allein gelten, gehörtfoldersFirst: mixeddazu.
navOrder
Eine Zahl, kleiner zuerst. Kommazahlen und negative Werte gehen, ebenso eine Zahl in
Anführungszeichen. In einer index.md setzt navOrder den Platz des Ordners unter seinen
Geschwistern. Tipp: in Zehnerschritten vergeben, dann passt später etwas dazwischen.
Nummern
01 Einstieg, 02-setup, 3_faq, 4. Anhang — eine Zahl am Anfang, danach -, _, . oder ein
Leerzeichen. Die Zahl wird als Zahl verglichen, 10 kommt nach 9. Ob sie im Titel sichtbar
bleibt, entscheidet stripNumericPrefix (2.1).
alphabetical
Nur der Titel. Verglichen wird natürlich — Teil 2 vor Teil 10 — und ohne Rücksicht auf Groß-
und Kleinschreibung oder Akzente.
Die Sprache entscheidet über die Buchstabenfolge. Das Plugin sortiert mit dem locale
aus der Quartz-Konfiguration: Mit de-DE steht Ärger neben Apfel, mit sv-SE hinter Zebra.
So sortiert jeder Rechner gleich, auf dem die Site gebaut wird. Auf einer mehrsprachigen Site sortiert
jeder Baum nach seiner Sprache: mit dem locale der Site, wenn es dieselbe Sprache ist, sonst mit dem
Sprachcode (8.3).
date
options:
sort: date
dateField: created # created | modified | published
sortDirection: desc # das Neueste zuerstDie Daten kommen von Quartz’ Plugin created-modified-date; welches Datum eine Seite hat, bestimmt dessen Konfiguration. Seiten ohne Datum stehen am Ende, bei gleichem Datum entscheidet der Titel.
Die Richtung
sortDirection: desc kehrt jede Stufe um, auch den Titel. Fehlende Werte bleiben trotzdem am
Ende: Ein Blog mit sort: date und desc listet die Beiträge ohne Datum hinter den datierten,
nicht davor.
Zwei Navigationen, zwei Reihenfolgen
Jeder Eintrag sortiert für sich. Ein Pager durch die Beiträge nach Datum und eine Seitenspalte in manueller Reihenfolge vertragen sich — sie lesen dann zwei verschieden sortierte Bäume (1.3).