Referenz
Vorlagensyntax
Alle Tags, Blöcke, Pfade und Schleifenvariablen, die Sie in einer Brevier-Vorlage verwenden können, und was sie ausgeben.
Auf dieser Seite
Eine Vorlage ist HTML oder Markdown mit {{ }}-Tags. Brevier setzt Ihre
JSON-Daten in die Tags ein, bevor es rendert. Die Syntax ist eine Teilmenge
von Handlebars
(ADR-027).
Einen ersten Überblick gibt Daten einsetzen.
Nicht unterstützt: Partials, {{{ }}}, inverse Abschnitte und Helper mit
Argumenten. Die Arbeit eines Helpers übernimmt ein
Formatierer: {{ preis | money }}.
Wert- und Kommentar-Tags
| Tag | Gibt aus |
|---|---|
{{ pfad }} |
Den Wert unter pfad, mit maskiertem Markup. Siehe Feldtypen. |
{{! Text }} |
Nichts. Ein Kommentar endet bei der ersten }}. |
{{!-- Text --}} |
Nichts. Dieser Kommentar darf }} enthalten. |
Ein senkrechter Strich hinter dem Pfad wendet einen
Formatierer an: {{ pfad | formatierer }}.
Formatierer laufen von links nach rechts.
Ein fehlendes Feld ist ein Fehler. Die Meldung nennt das Feld und die Zeile in der Vorlage.
Beispiel: Mit {"kunde": {"name": "Anna Berg"}} ergibt die Vorlage
<p>{{ kunde.name }}</p> den Text <p>Anna Berg</p>.
Blöcke
Jeder Block endet mit {{/name}}.
| Block | Wirkung |
|---|---|
#if |
Gibt seinen Inhalt aus, wenn der Wert gesetzt ist. {{#if betrag includeZero=true}} zählt die Zahl 0 als gesetzt. |
#unless |
Gibt seinen Inhalt aus, wenn der Wert nicht gesetzt ist. |
#each |
Wiederholt seinen Inhalt für jeden Eintrag einer Liste oder jeden Wert eines Objekts. |
#with |
Liest die Namen in seinem Inhalt aus dem Wert. |
#group |
Wiederholt seinen Inhalt für jede Folge von Zeilen mit gleichem Wert in einem Feld: {{#group zeilen.kategorie}}. |
else |
Beginnt den anderen Zweig von #if, #unless, #each oder #with. #group hat kein else. |
else if |
Eine weitere Bedingung nach #if oder #unless. else unless funktioniert ebenso. |
Nicht gesetzt sind: false, null, die Zahl 0, "", eine leere Liste
und ein fehlendes Feld. Ein leeres Objekt und der Text "0" sind gesetzt.
Mit includeZero=true ist 0 gesetzt. #with behandelt 0 immer als
gesetzt. Bei den anderen nicht gesetzten Werten läuft der else-Zweig von
#with.
Beispiel: {{#each zeilen}}<li>{{name}}</li>{{else}}<li>Keine Zeilen</li>{{/each}}
gibt ein <li> pro Zeile aus, bei einer leeren Liste Keine Zeilen.
Gruppen
#group beginnt eine neue Gruppe, sobald sich das Feld von einer Zeile zur
nächsten ändert. Es sortiert die Zeilen nicht.
Im Block liegen die Zeilen der Gruppe unter dem letzten Namen des Listenpfads:
{{#group zeilen.kategorie}}
<h2>{{ @key }}</h2>
{{#each zeilen}}<p>{{ name }}</p>{{/each}}
{{/group}}{{ @key }} ist der Feldwert der Gruppe als Text. Bei null und bei einem
fehlenden Feld ist er leer. Siehe
ADR-038.
Pfade
| Pfad | Liest |
|---|---|
a.b |
Das Feld b in a. |
[first name] |
Ein Feld, dessen Name ein Leerzeichen oder andere Sonderzeichen enthält. |
this |
Den aktuellen Eintrag in #each oder #with. this.a und ./a lesen ein Feld davon. |
../a |
Das Feld a eine Ebene höher. ../../a geht zwei Ebenen hoch. |
@root |
Die Daten der obersten Ebene. @root.a liest ein Feld davon. |
In #each wird ein einfacher Name, den der aktuelle Eintrag nicht hat, aus
den Daten der obersten Ebene gelesen. {{ this.a }} liest nur den Eintrag.
Schleifenvariablen
Diese Variablen gibt es in #each und #group. @key funktioniert in
einem #each über ein Objekt, nicht in einem #each über eine Liste.
| Variable | Wert |
|---|---|
@key |
Der Schlüssel eines Objekteintrags oder der Feldwert einer Gruppe. |
@index |
Die Position des Eintrags, ab 0 gezählt. |
@first |
True für den ersten Eintrag, False für die anderen. |
@last |
True für den letzten Eintrag, False für die anderen. |