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
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
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
Parent-Zugriff
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.
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.