Sjablonen schrijven
SHIPM8-sjablonen gebruiken Handlebars als onderliggende engine. Alle Handlebars-functionaliteit werkt hier, en SHIPM8 voegt daar eigen opmaak- en transformatiehelpers aan toe.
Eenvoudige placeholders
Zet een veldnaam tussen dubbele accolades om de waarde ervan in te voegen.
Sjabloon
Gegevens
{ "vesselName": "Ocean Star", "port": "Rotterdam" }
Resultaat
Voyage confirmed for Ocean Star, calling at Rotterdam.
Itereren over lijsten
Gebruik #each om over een array te itereren. Binnen het blok verschuift de context naar elk item afzonderlijk.
Sjabloon
Gegevens
{
"portCalls": [
{ "port": "Amsterdam", "eta": "2024-03-10" },
{ "port": "Hamburg", "eta": "2024-03-13" },
{ "port": "Antwerp", "eta": "2024-03-15" }
]
}
Resultaat
Port rotation:
- Amsterdam ETA 2024-03-10
- Hamburg ETA 2024-03-13
- Antwerp ETA 2024-03-15
Buiten een lus reiken (root en parent)
Binnen een #each-blok verandert de scope naar het huidige item. Gebruik @root om het object op het hoogste niveau te bereiken, of ../ om één niveau omhoog te gaan naar de bovenliggende scope.
Root-selector
Parent-selector
Beide leveren hetzelfde resultaat op:
Vessel: Blue Marlin
Amsterdam — vessel: Blue Marlin
Hamburg — vessel: Blue Marlin
Antwerp — vessel: Blue Marlin
Helpers combineren (subexpressies)
Helpers kunnen in elkaar worden genest via haakjes — Handlebars noemt dit subexpressies. De binnenste expressie wordt als eerste uitgewerkt en het resultaat wordt doorgegeven aan de buitenste helper.
Met cargo.tonnage = 45000.500 formatteert dit het getal eerst naar 45000.500, en worden de overbodige nullen daarna weggehaald, zodat 45000.5 overblijft.
Zie de Handlebars-documentatie voor de volledige syntaxis van subexpressies.