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

Community

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.