Wie ein Theme aufgebaut ist

Die Verzeichnisse eines Themes, die vier Pflichtdateien und was passiert, wenn eine davon fehlt.

Für Entwickler

Voraussetzungen

  • Recht: website:write

Ein Theme ist ein Verzeichnisbaum. Vier Dateien sind PFLICHT: `theme.json` (das Manifest), `config/settings_schema.json`, `config/settings_data.json` und `layout/theme.liquid`. Fehlt eine davon, lässt sich das Theme nicht laden — und zwar hart, nicht mit einem Rückfall.

Alle übrigen Verzeichnisse sind freiwillig und werden nachsichtig gelesen: fehlen sie, bleibt die entsprechende Sammlung eben leer.

`templates/*.json` — je Datei eine Seitenvorlage; der Schlüssel ist der Dateiname ohne Endung. `sections/<typ>.liquid` — die Abschnitte; daneben optional `sections/<typ>.schema.json` mit ihren Einstellungen. `snippets/*.liquid` — Teilstücke für `{% render %}`. `assets/*` — Dateien, die unter einer eigenen Adresse ausgeliefert werden; eine Datei mit der Endung `.liquid` wird davor noch gerendert. `locales/<code>.json` — die Übersetzungen; ein `.default` im Dateinamen wird abgeschnitten, aus `de.default.json` wird also `de`.

ACHTUNG bei den Assets: Sie werden als Text gelesen. Bilder, Schriften und andere Binärdateien gehören deshalb NICHT nach `assets/` — sie würden beschädigt. Bilder kommen über die Mediathek und stehen als Adresse in einer Einstellung.

Das Manifest `theme.json` führt `id`, `name`, `version` und `category`; dazu optional `description`, `preview`, `tags`, `default_locale` und `supported_locales`. Ohne `default_locale` gilt Deutsch.

Eine Prüfung der Struktur gibt es nicht: kein Schema für das Manifest, keine Liste verlangter Dateien, kein Linter. Was beim Schreiben geprüft wird, ist nur die Pfadhygiene — siehe den Artikel über das Bearbeiten des Codes.

Wo im Dashboard

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

Im Dashboard öffnen