Theme-Architektur: Wie Mosaio Liquid-Themes rendert
Vom Editor über den Build-Worker zur statischen Datei: die Render-Pipeline und die zwei Render-Modi, die jedes Theme kennen muss.
Mosaio-Themes sind an Shopify Liquid angelehnt, laufen aber in einer eigenen Static-Site-Pipeline: Der Editor schreibt in die Datenbank, ein Build-Worker rendert daraus statische HTML-Dateien, ein Webserver liefert sie aus. Die Template-Engine basiert auf LiquidJS – alle Standard-Tags und -Filter sind verfügbar, ergänzt um theme-spezifische Erweiterungen.
Die Pipeline
PageBuilder (Dashboard)
│ Sections hinzufügen, Einstellungen ändern, Inline-Editing
▼
Datenbank (Seitenversionen, Themes, Menüs, Datensätze …)
│ Job in der Warteschlange (page_published, theme_activated …)
▼
Website-Builder-Worker
│ lädt das Theme, rendert Liquid, backt Media-URLs ein,
│ injiziert Consent-Skripte, inlined Critical CSS
▼
/<domain>/index.html, ueber-uns.html, assets/…, sitemap.xml, robots.txt
▼
Statischer WebserverDie zwei Render-Modi
Dasselbe Template wird in zwei Modi gerendert. Fast jede Besonderheit des Systems lässt sich darauf zurückführen:
| Live-Build | Editor-/Vorschau-Render | |
|---|---|---|
| Ausgelöst durch | Worker-Job | PageBuilder-Iframe |
| Media-URLs | absolut, öffentlich (eingebacken) | relativ, geschützt |
| Consent-Skripte | injiziert, type="text/plain" bis zur Einwilligung | nie ausgeführt |
| Inline-Edit-Marker | nein | ja (data-lf, data-section-id …) |
request.design_mode | false | true |
Schlüsselbegriffe
| Begriff | Bedeutung |
|---|---|
| Section | Wiederverwendbarer HTML-Baustein mit Einstellungen, eine .liquid-Datei mit {% schema %} |
| Block | Wiederholbares Unterelement einer Section (Slide, FAQ-Eintrag, Karte) |
| Section Group | Header, Body oder Footer – Header und Footer gelten für alle Seiten |
| Theme Settings | Globale Konfiguration aus config/settings_schema.json |
| Preset | Vorausgefüllte Variante einer Section inklusive Blocks |
| Collection | Serverseitig injizierte Liste veröffentlichter Datensätze |
| Asset Manifest | Zuordnung Dateiname → gehashter Dateiname für Cache-Busting |
Die Starter-Themes (z. B. „frame“) sind die beste lebende Referenz. Exportiere eines unter Website → Themes → Exportieren und nutze es als Ausgangspunkt.
Unser Support antwortet in der Regel innerhalb eines Werktags.