Die Liquid-Umgebung: wie streng sie ist

Unbekannte Variablen und Filter sind still, unbekannte Tags brechen ab — und ausgegeben wird ohne Maskierung.

Für Entwickler

Voraussetzungen

  • Recht: website:write

Gerendert wird mit LiquidJS. Für jede Anfrage entsteht eine frische Umgebung; es gibt keinen Vorlagen-Zwischenspeicher.

Unbekannte VARIABLEN sind erlaubt und rendern leer. Unbekannte FILTER sind erlaubt und reichen den Wert unverändert durch. Unbekannte TAGS dagegen brechen ab — ein `{% schema %}` in einer Abschnittsdatei lässt die Seite mit einem Parse-Fehler stehen.

Es wird NICHT automatisch maskiert. Was in `{{ … }}` steht, geht roh in die Seite. Das ist Absicht, damit Vorlagen HTML erzeugen können — und es macht den Filter `escape` zu Ihrer Pflicht, sobald Sie einen Wert ausgeben, den jemand anders eingetippt hat. Für Adressen gibt es zusätzlich `safe_url`.

Wahrheitswerte folgen den Regeln von JavaScript: Eine leere Zeichenkette ist falsch, `0` ist falsch. Das weicht vom Liquid anderer Anbieter ab, wo beides wahr wäre.

`{% render %}` und `{% include %}` finden ein Teilstück aus `snippets/` unter drei Schreibweisen: `"button"`, `"button.liquid"` und `"snippets/button"`. Ein Zugriff auf das Dateisystem des Servers ist dabei nicht möglich — nachgesehen wird ausschliesslich in den Teilstücken des Themes.

Sandkasten im engeren Sinn gibt es nicht: keine Begrenzung der Renderdauer, keine Schleifengrenze, keine verbotenen Tags. Was begrenzt wird, sind die Schreibvorgänge — siehe den Artikel über das Bearbeiten des Codes.

Wo im Dashboard

/restaurant/[slug]/website/themes/[id]/code

Im Dashboard öffnen