Beim Erstellen von Templates reicht es nicht aus, nur Variablen, Funktionen oder Operatoren zu kennen. Ebenso wichtig ist es, wie ein Ausdruck im Template verarbeitet wird. Die verwendete Syntax entscheidet darüber, ob eine Anweisung nur ausgeführt, ein Wert ausgegeben oder eine Ausgabe automatisch escaped wird. Diese Unterscheidung ist für die Template-Entwicklung relevant, weil sie direkten Einfluss auf das erzeugte Ergebnis hat. Je nach Schreibweise erscheint ein Wert im HTML, wird nur intern verarbeitet oder unverändert ausgegeben. Dadurch bestimmt die Syntax nicht nur die Ausgabe selbst, sondern auch, ob Inhalte für den jeweiligen Kontext korrekt und sicher ausgegeben werden. Die verschiedenen Formen von Anweisungen helfen daher dabei, Template-Logik und Ausgabe sauber zu steuern. Sie legen fest, wann ein Ausdruck lediglich verarbeitet wird und wann sein Ergebnis im generierten Dokument erscheint. Gleichzeitig steuern sie das Escaping und damit den Umgang mit Sonderzeichen, HTML-Inhalten oder anderen Ausgabekontexten. Diese Seite beschreibt die verfügbaren Schreibweisen für Anweisungen und zeigt, wie sie sich auf Verarbeitung, Ausgabe und Escaping auswirken.Documentation Index
Fetch the complete documentation index at: https://dokumentation.websale.de/llms.txt
Use this file to discover all available pages before exploring further.
Anweisungen im Überblick
| Syntax | Beschreibung | Typische Verwendung |
|---|---|---|
{{ ... }} | Führt eine Anweisung aus, ohne eine Ausgabe zu erzeugen. | Variablen setzen, Hilfslogik ausführen. |
{{= … }} | Gibt einen Wert aus und ersetzt dabei HTML-Sonderzeichen. | Normale Ausgabe im HTML. |
{{! … !}} | Gibt einen Wert aus, ohne HTML-Sonderzeichen zu ersetzen. | Bereits aufbereitete Inhalte gezielt unverändert ausgeben. |
{{ autoescape “js” }} … {{ /autoescape }} | Wechselt den Escaping-Modus innerhalb eines Blocks. | Ausgabe in speziellen Kontexten, z.B. JavaScript |
Anweisungen ohne Ausgabe
Mit{{ ... }} wird eine Anweisung ausgeführt, ohne dass ihr Ergebnis direkt ausgegeben wird. Diese Schreibweise wird verwendet, wenn im Template etwas vorbereitet oder verarbeitet werden soll, ohne dass an dieser Stelle bereits Inhalt im generierten Dokument bzw. Seite erscheint.
Typische Anwendungsfälle sind das Setzen von Variablen, das Vorbereiten von Hilfswerten oder das Aufrufen von Logik, deren Ergebnis erst später benötigt wird.
Beispiel
In diesem Beispiel wird der Produktname in einer Variablen gespeichert. An dieser Stelle wird jedoch noch nichts ausgegeben.Verwendung
Diese Syntax ist sinnvoll, wenn ein Wert zunächst nur weiterverarbeitet oder für eine spätere Ausgabe vorbereitet werden soll. Sie sollte verwendet werden, wenn:- eine Variable gesetzt wird
- ein Wert zwischengespeichert wird
- eine Anweisung nur der Template-Logik dient
- an dieser Stelle keine direkte Ausgabe im HTML gewünscht ist
Ausgabe mit Escaping
Mit{{= … }} wird ein Wert ausgegeben und dabei automatisch escaped. Diese Schreibweise ist der Standard für die Ausgabe im Template, wenn Inhalte im HTML erscheinen sollen.
Einfache (') und doppelte (") Anführungszeichen innerhalb von {{= … }} sind gleichwertig. Der Unterschied wirkt sich nur auf das Syntax-Highlighting im Code-Editor aus.
Escaping sorgt dafür, dass Sonderzeichen nicht als HTML interpretiert werden. Dadurch bleibt die Ausgabe korrekt und Inhalte werden als Text behandelt.
Beispiel
$product.name beispielsweise den Wert
Verwendung
Diese Syntax sollte für normale Ausgaben im Template grundsätzlich bevorzugt werden. Sie sollte verwendet werden, wenn:- Text im HTML ausgegeben werden soll
- Inhalte aus Variablen ausgegeben werden
- nicht ausdrücklich gewünscht ist, dass HTML unverändert übernommen wird
- eine sichere Standardausgabe benötigt wird
{{= … }} in den meisten Fällen die richtige Wahl.
Escaping für einen Bereich festlegen
Mitautoescape kann für einen zusammenhängenden Bereich festgelegt werden, wie Ausgaben escaped werden sollen. Das ist vor allem dann relevant, wenn Inhalte nicht im normalen HTML-Kontext ausgegeben werden, sondern beispielsweise innerhalb von JavaScript.
Beispiel
$product.name zum Beispiel den Wert Damen-Jacke "Alpine" , wird daraus "Damen-Jacke \"Alpine\" , sodass die Anführungszeichen den JavaScript-String nicht unterbrechen.
Verwendung
Diese Syntax sollte verwendet werden, wenn die Ausgabe in einem speziellen Ausgabekontext erfolgt, für den ein anderer Escaping-Modus erforderlich ist. Das ist insbesondere sinnvoll, wenn Inhalte innerhalb von JavaScript, JSON oder vergleichbaren Kontexten ausgegeben werden.Ausgabe ohne Escaping
Mit{{! … !}} wird ein Wert unverändert ausgegeben. Es erfolgt kein automatisches Escaping. Die Ausgabe wird also genau so in das generierte Dokument übernommen, wie der Wert vorliegt.
Das ist nur dann sinnvoll, wenn der Inhalt bewusst ungeescaped ausgegeben werden soll, etwa weil er bereits korrekt als HTML formatiert wurde.
Beispiel
$product.name beispielsweise den Wert
Verwendung
Diese Syntax sollte nur gezielt und mit Vorsicht verwendet werden. Sie sollte verwendet werden, wenn:- Inhalte bewusst als HTML ausgegeben werden sollen
- der auszugebende Wert bereits korrekt aufbereitet ist
- kein zusätzliches Escaping mehr erfolgen darf
{{= … }} die richtige Wahl.