Ich mache eine Glossarvorlage für eine Jekyll-Site, die auf Github Pages bereitgestellt wird.
Einträge werden aus einer _data/glossary.yml
Datei gezogen.
Ich möchte die Vorlage die Einträge alphabetisch anordnen, unabhängig von der Reihenfolge der Daten in glossary.yml
.Holen, Bearbeiten und Sortieren von Hash-Objektwerten mit Liquid
Die Verwendung von {% assign glossary = site.data.glossary | sort 'term' %}
gibt ein alphabetisch sortiertes Objekt zurück, das ich mit einer for
-Schleife durchlaufen kann.
Allerdings ist der sort
Filter Groß-und Kleinschreibung - Kleinbuchstaben Einträge werden nach allen Groß-oder Großbuchstaben sortiert.
Liquid 4.0.0 fügt einen sort_natural
Filter, der tut was ich will, aber Github Pages läuft derzeit 3.0.6, also brauche ich eine Abhilfe.
Meine Frage ist, wie kann ich:
- in einer Flüssig-Vorlage site.data.glossary holen?
- manipulieren Sie die String-Werte der ersten Karte jedes Eintrags?
- (d verwenden, um die
capitalize
String-Filter, um loszuwerden, der Groß-/Klein Diskrepanzen)
- (d verwenden, um die
- Art die ganze Karte, welche die lokal String gefilterten Werte mit?
- Bonus: Wenn ich noch die Source-String-Werte mit ihren ursprünglichen Fall für die endgültige Anzeige in der generierten HTML-Datei beibehalten können.
Zum Beispiel gegeben folgende data/glossary.yml
:
- term: apricot
loc: plastic
- term: Apple
loc: basket
- term: Banana
loc: basket
- term: bowtie
loc: closet
- term: Cat
loc: outside
Wie kann ich eine lokale Flüssigkeit Objektvariable erstellen, die sortiert und zeigt das folgende?:
- Apple-
- Korb
- Aprikose
- Kunststoff
- Banana
- Korb
- Bowtie
- Schrank
- Cat
- außerhalb
die Antwort schätzen, aber benutzerdefinierte Plug-Ins nicht arbeite für meinen Anwendungsfall (Bereitstellen und Generieren auf Github Pages). –
Ich bin mir sicher, dass du das nicht mit Flüssigkeit machen kannst. Du wirst auf Flüssigkeit 4 warten müssen ;-) –