2013-06-22 16 views
6

Ich denke, die native Art der Verwaltung von Seiten von Jekyll, d. H. Durch Erstellen von .md-Datei/Ordner unter dem Stammordner, ist ein bisschen chaotisch.Zeige Seiten unter einem Ordner in Jekyll?

Also möchte ich jede Seite, die ich zeigen möchte, in den Ordner "Seiten" einfügen. Darüber hinaus würde ich diese Seiten wie eine kaskadierte Struktur: sagen, wenn meine Ordner die Struktur:

pages 
|-> parent1 
     |-> index.html 
     |-> son1.html 
     |-> son2.html 
|-> parent2 
     |-> index.html 

Dann in der Seiten-listing Seite, sollte es so etwas wie diese:

page listing 
* parent1 
    * son1 
    * son2 
* parent2 

Außerdem sollte die andere * .html-Datei, die sich nicht unter dem Ordner seiten befindet, nicht auf dieser Seitenauflistungsseite angezeigt werden.

Wie soll ich das tun?

Vielen Dank.

Antwort

1

Es gibt nichts, was Sie davon abhält. Im obigen Szenario wäre yourdomain.tld/pages/prent1/son1.html die URL der Datei parent1/son1.

Das Erstellen einer verschachtelten Auflistung wird jedoch komplizierter. Du könntest entweder diese Struktur in der YAML Front Matter entschlüsseln oder Posts verwenden.

pages 
|-> parent1 
    |-> _posts/ 
     |-> index.html 
     |-> son1.html 
     |-> son2.html 
|-> parent2 
    |->_posts 
     |-> index.html 

=> Auf diese Weise Ihre Dateien Beiträge in den Kategorien würden Parent1 und parent2 und Sie die Liste von Anzeigen der Kategorien und deren Inhalte erstellen können.

Wenn Sie wirklich eine Baumstruktur anzeigen möchten, ohne Posts und Kategorien zu verwenden, müssen Sie mehr schwarze Magie verwenden. Aber zum Glück bietet Liquid einen split Filter, den Sie verwenden könnten, um den Pfad der Site in Chunks aufzuteilen, z.

{% for page in site.pages %}    
    {{ page.url | split:'/' | join:'+'}} 
{% endfor %} 

Statt sie zu verbinden (dies rein für demon ist), möchten Sie würde ein Array füllen, die die Baumstruktur hält und dann später auf Iterierte über das Array den Verzeichnisbaum angezeigt werden soll. Es ist möglich, aber nicht einfach. Und ich denke nicht, dass etwas leicht verfügbar ist.

Wahrscheinlich ist das Schreiben eines Plugins einfacher.

Verwandte Themen