Welche Liquid-Tags es gibt — und welche abbrechen
Section und Schema als Plattform-Tags, dazu LiquidJS; fremde Form- und Style-Tags brechen ab.
Für EntwicklerVoraussetzungen
- Recht: website:write
Ein eigenes 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 Tags gibt es NICHT, und sie brechen die Seite mit einem Parse-Fehler ab: `{% form %}`, `{% style %}`, `{% stylesheet %}`, `{% javascript %}` und `{% paginate %}`. Wer ein Theme von einem anderen Anbieter übernimmt, stolpert hier zuerst.
Ein `{% schema %}…{% endschema %}`-Block wird zwar vom Parser verschluckt, definiert aber keine Editor-Felder. Das wirksame Schema eines Abschnitts steht in `sections/<typ>.schema.json` neben seiner Liquid-Datei.
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>{% 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.