Zum Hauptinhalt springen

Vorlagen schreiben

SHIPM8-Vorlagen laufen auf Handlebars. Jede Handlebars-Funktion funktioniert hier, und SHIPM8 legt eigene Helfer zum Formatieren und Umformen darüber.

Einfache Platzhalter

Setzen Sie einen Feldnamen in doppelte geschweifte Klammern, um seinen Wert einzufügen.

Vorlage

Voyage confirmed for {{vesselName}}, calling at {{port}}.

Daten

{ "vesselName": "Ocean Star", "port": "Rotterdam" }

Ergebnis

Voyage confirmed for Ocean Star, calling at Rotterdam.

Über Listen laufen

Mit #each laufen Sie über ein Array. Innerhalb des Blocks wechselt der Kontext auf das jeweilige Element.

Vorlage

Port rotation:
{{#each portCalls}}
- {{port}} ETA {{eta}}
{{/each}}

Daten

{
"portCalls": [
{ "port": "Amsterdam", "eta": "2024-03-10" },
{ "port": "Hamburg", "eta": "2024-03-13" },
{ "port": "Antwerp", "eta": "2024-03-15" }
]
}

Ergebnis

Port rotation:
- Amsterdam ETA 2024-03-10
- Hamburg ETA 2024-03-13
- Antwerp ETA 2024-03-15

Aus einer Schleife herausgreifen (root und parent)

In einem #each-Block zeigt der Kontext auf das aktuelle Element. Mit @root kommen Sie an das oberste Datenobjekt, mit ../ gehen Sie eine Ebene nach oben zum übergeordneten Kontext.

Root-Zugriff

Vessel: {{vesselName}}
{{#each portCalls}}
{{port}} — vessel: {{@root.vesselName}}
{{/each}}

Parent-Zugriff

Vessel: {{vesselName}}
{{#each portCalls}}
{{port}} — vessel: {{../vesselName}}
{{/each}}

Beides liefert dasselbe Ergebnis:

Vessel: Blue Marlin
Amsterdam — vessel: Blue Marlin
Hamburg — vessel: Blue Marlin
Antwerp — vessel: Blue Marlin

Helfer verschachteln (Unterausdrücke)

Helfer lassen sich mit Klammern ineinander schachteln — Handlebars nennt das Unterausdrücke (sub-expressions). Der innere Ausdruck wird zuerst ausgewertet, sein Ergebnis geht an den äußeren Helfer.

{{leastDecimals (numberFormat cargo.tonnage 'F03')}}

Bei cargo.tonnage = 45000.500 wird die Zahl erst zu 45000.500 formatiert, dann die überflüssige Null entfernt — Ergebnis: 45000.5.

Die vollständige Syntax für Unterausdrücke steht in der Handlebars-Dokumentation.