Welche Liquid-Tags es gibt — und welche abbrechen
Genau ein eigenes Tag, dazu die von LiquidJS. Fünf Tags aus anderen Liquid-Welten brechen hier die Seite ab.
Für EntwicklerVoraussetzungen
- Recht: website:write
Das einzige EIGENE Tag ist `{% section "name" %}`. Es rendert `sections/<name>.liquid` mitten in der laufenden Vorlage. Der Name ist der DATEINAME, nicht die Kennung eines Abschnitts in einer Vorlage. Benutzt wird es in `layout/theme.liquid` für Kopf- und Fussbereich.
Aus LiquidJS stehen unter anderem zur Verfügung: `{% if %}`, `{% unless %}`, `{% case %}`, `{% for %}`, `{% assign %}`, `{% capture %}`, `{% render %}`, `{% include %}`, `{% liquid %}` und `{% comment %}`.
Diese fünf Tags gibt es NICHT, und sie brechen die Seite mit einem Parse-Fehler ab: `{% schema %}`, `{% form %}`, `{% style %}`, `{% stylesheet %}` und `{% javascript %}`. Wer ein Theme von einem anderen Anbieter übernimmt, stolpert hier zuerst.
Der wichtigste Unterschied zu anderen Liquid-Welten: Das Schema eines Abschnitts steht hier NICHT als `{% schema %}`-Block in der `.liquid`-Datei, sondern in einer eigenen Datei `sections/<typ>.schema.json` daneben.
Für CSS und JavaScript legen Sie Dateien in `assets/` und binden sie mit `asset_url` ein — oder Sie schreiben ein gewöhnliches `<style>`- beziehungsweise `<script>`-Element in die Vorlage.
Codebeispiele
{%- assign titel = restaurant.name | upcase -%}{%- capture anschrift -%}{{ restaurant.address_full }} · {{ restaurant.phone }}{%- endcapture -%}<h1>{{ titel }}</h1><p>{{ anschrift }}</p>{% for gericht in products limit: 2 %} <li class="{% cycle 'gerade', 'ungerade' %}">{{ forloop.index }}. {{ gericht.title }}</li>{% endfor %}{% unless analytics.enabled %}<p>Messung ist abgeschaltet.</p>{% endunless %}{% comment %}Dieser Text erscheint nirgends.{% endcomment %}{% raw %}{{ das hier wird nicht ausgewertet }}{% endraw %}<table>
{% tablerow gericht in products cols: 2 %}{{ gericht.title }}{% endtablerow %}
</table>{% schema %}{ "name": "Mein Abschnitt" }{% endschema %}{% style %}.hero { color: red; }{% endstyle %}{% stylesheet %}.hero { color: red; }{% endstylesheet %}{% javascript %}console.log('hallo'){% endjavascript %}{% form 'contact' %}{% endform %}{% paginate products by 12 %}{% endpaginate %}Siehe auch
- Das Schema eines AbschnittsAufbau der schema.json, die Felder eines Einstellungseintrags und die Falle mit den Vorgabewerten.
- Das Layout: layout/theme.liquidDie Hülle um jede Seite — mit content_for_layout und den fest eingebauten Abschnitten.
- Die eigenen Liquid-FilterSieben Filter kommen von TacticTable dazu — alle übrigen sind die von LiquidJS.
- Liquid von vorn: Ausgabe, Bedingungen, Schleifen, ZuweisungenDie vier Bausteine, aus denen jede Vorlage besteht — und die Stellen, an denen diese Engine sich anders verhält als das Liquid anderer Anbieter.