Seiteneigenschaften

Jede Datei, die einen Block mit Seiteneigenschaften enthält, wird von Herbie als gültige Seite betrachtet. Der Block mit den Seiteneigenschaften muss am Anfang der Datei stehen und zwischen zwei Linien aus drei Minuszeichen gültiges YAML enthalten. Das tönt etwas kompliziert, ist aber ganz einfach. Hier ist ein Beispiel:

---
title: Mit der eigenen Website durchstarten
layout: default.html
---

Als Seiteneigenschaften kannst du vordefinierte Variablen (siehe Referenz unten) oder eigene Variablen nutzen. Diese Variablen sind dann in allen Layoutdateien als Seiten-Variable verfügbar. Einige Variablen sind auch auf der gleichen Seite als Shortcodes verfügbar (mehr dazu später). Hier ist ein Beispiel:

# In Layoutdateien
{{ page.title }}
{{ page.layout }}

# In Seitendateien 
[page.title]
[page.layout]

Vordefinierte Variablen

Es gibt einige vordefinierte (=reservierte) Variablen, die vom System verwendet werden und die du im Seiteneigenschaften-Block einer Seite mit einem Wert belegen kannst.

Variable Beschreibung Typ
title

Der Titel der Seite.

string
layout

Definiert das Layout, mit welchem die Seite angezeigt werden soll. Gib das Layout inklusive Dateiendung an. Layout-Dateien müssen im Ordner site/layouts/ abgelegt sein.

string
format

Der Formatierer, z.B. Markdown oder Textile. Wird von Herbie abhängig von der Dateiendung vorgefüllt. Eine Datei mit der Endung .md bekommt den Markdown-Formatierer, eine mit der Endung .textile den Textile-Formatierer.

string
date

Das Datum der Seite. Dies ist ein explizit gesetztes Datum oder das Modifikationsdatum der Datei.

string
keep_extension

Gibt an, ob für die URL die Dateiendung angezeigt werden soll

bool
menu

Wird in Navigationen wie Sitemap oder Breadcrumbs als Text angezeigt. Wenn leer, wird der normale Seitentitel angezeigt.

string
content_type

Definiert den Content-Type der Seite. Damit werden die HTTP Headers vor der Ausgabe der Seite korrekt gesetzt.

string
authors

Der oder die Autoren des Posts.

array
categories

Eine oder mehrere Kategorien, denen der Post zugeordnet ist.

array
tags

Ein oder mehrere Tags, denen der Post zugeordnet ist.

array
path

Der Pfad zur entsprechenden Datei. Wird von Herbie automatisch vorgefüllt.

string
nocache

Das Caching der Seite wird deaktiviert, falls dieses Flag gesetzt ist.

bool
hidden

Steuert die Sichtbarkeit einer Seite in Menüs.

bool
twig

Wenn diese Flag gesetzt ist, werden die Inhalte der Seite zusätzlich (und zuerst) mit Twig gerendert.

bool
<NAME>

Beliebig viele eigene Variablen.

mixed

Eigene Variablen

Jede eigene Variable im Seiteneigenschaften-Block, die nicht vordefiniert ist, wird von Herbie automatisch erkannt und in den Layoutdateien und in den Seiteninhalten zur Verfügung gestellt. Wenn du zum Beispiel eine Variable class deklarierst, kannst du diese in der Layoutdatei abrufen und zum Setzen einer CSS-Klasse nutzen.

In den Seiteneigenschaften deklarierst du den Wert der Variablen:

---
title: Willkommen auf meiner Homepage!
class: home
---

In den Seiteninhalten selber kannst du auf diese Variablen wie zugreifen:

[page.title]
[page.layout]

Und im Layout gibst du die Variablen aus:

<!DOCTYPE HTML>
<html>
<head>
    <title>{{ page.title }}</title>
</head>
<body class="{{ page.class }}">
    ...
</body>
</html>

Damit weisst du schon, wie du Seitenvariablen einsetzen und mit weiteren eigenen Variablen anreichern kannst.