Anstelle von HTML kann man den Blog-Beitrag auch mit Markdown- oder Textile-Tags schmücken. In diesem Fall muss man allerdings die Dateiendung anpassen, bei Markdown landet der Text beispielsweise in der Datei
»2013-02-12-currywurst.md
«
. Jekyll erkennt das Format selbstständig und übersetzt es in entsprechenden HTML-Code.
Wie der YAML-Vorspann aus
Listing 4
zeigt, soll Jekyll für die Posts das Layout aus der Datei
»_layouts/blogeintrag.html
«
verwenden. Deren Inhalt verrät
Listing 5
.
Listing 5
Das Layout für die Blog-Einträge
Das Layout basiert selbst wieder auf dem Standard-Layout
»default.html
«
. Jekyll verschachtelt hier also gleich zwei Layouts ineinander: An die Stelle des Platzhalters
»{{ content }}
«
aus
»default.html
«
setzt es den Inhalt des Layouts
»blogeintrag.html
«
. Dieses bringt selbst einen Platzhalter
»{{ content }}
«
mit, den Jekyll wiederum durch den Text des Blog-Beitrags austauscht.
Die Platzhalter
»{{page.titel}}
«
und
»{{page.beilage}}
«
ersetzt Jekyll schließlich noch durch die Texte, die der Blog-Beitrag im YAML Front Matter neben
»title
«
und
»beilage
«
vorgibt (siehe
Listing 4
). Wie hier im Beispiel darf man im Front Matter eines Blog-Beitrags beliebig viele eigene Bezeichner hinzufügen. Später im Layout bindet man dann den rechts daneben stehenden Text ein, indem man dem Bezeichner ein
»page.
«
voranstellt und das Ganze in geschweifte Klammern einfasst.
Abbildung 4
fasst noch einmal zusammen, wie Jekyll die einzelnen Platzhalter austauscht: In der
»default.html
«
landet an der Stelle
»{{content}}
«
der Inhalt von
»blogeintrag.html
«
. Dessen Platzhalter
»{{page.titel}}
«
ersetzt Jekyll durch den
»titel
«
des Blog-Beitrags, den Platzhalter
»{{content}}
«
analog durch den Text des Beitrags. Das Ergebnis speichert Jekyll in einer HTML-Datei, die den Namen des Beitrags trägt.
Damit erzeugt Jekyll jetzt für jeden Text im Verzeichnis
»_posts
«
eine neue HTML-Datei. Bei einem typischen Blog gibt es zusätzlich noch eine Übersichtsseite, die alle Beiträge auflistet. Diese Seite soll im Beispiel
»blog.html
«
heißen und der Einfachheit halber wieder direkt im Arbeitsverzeichnis liegen (sie wandert folglich später ins Hauptverzeichnis des Internetauftritts). Ihren Inhalt zeigt
Listing 6
.
Listing 6
Die Datei blog.html
Der Einfachheit halber steckt
Listing 6
alle Blog-Beiträge in eine Liste
»<ul>
«
. Das Gebilde:
{% for post in site.posts %}
sorgt dafür, dass Jekyll alle vorhandenen Blog-Beiträge durchläuft. Die Jekyll-Entwickler haben diese Platzhalternotation übrigens nicht selbst erfunden, sondern einfach das aus dem Online-Shop Shopify stammende Liquid Template System übernommen
[5]
. Generell rahmen zwei geschweifte Klammern
»{{ ... }}
«
einen Platzhalter ein, den später Jekyll durch HTML-Tags und Text ersetzt. Klammern mit Prozentzeichen
»{% ... %}
«
kennzeichnen hingegen Befehle, die Jekyll ausführt beziehungsweise auswertet.