1. Twig-Template-LogikDiese Sektion wird nur auf der Route /de/childtheme-demo eingeblendet — gesteuert durch Twig if-Bedingung im default.html.twig.
Aktuelle Route: {{ page.route }}Template-Datei: user/themes/splexus-custom/templates/default.html.twigPartial: templates/partials/childtheme-demo.html.twig
2. Frontmatter-Variablen in TwigWerte aus dem Seiten-Frontmatter (YAML-Header der .md-Datei) koennen direkt im Template ausgelesen werden:
page.header.demo_titel Mein Demo-Titel aus dem Frontmatter
page.header.demo_farbe #8428DF
page.header.demo_zahl 42
page.title Child-Theme Demo
3. Eigenes CSSAlle Styles auf dieser Seite kommen aus user/themes/splexus-custom/css/custom.css — komplett frei gestaltbar, ueberschreibt Quark 2.
CSS Gradient
Glassmorphism (backdrop-filter)
Neon-Text-Effekt
3D-Card mit transform
4. Eigenes JavaScriptDie JS-Datei demo-feature.js wird nur auf dieser Seite geladen (route-spezifisch, siehe splexus-custom.php).
Klick mich —Zaehler: 0 Box umschalten Diese Box wird durch JS ein/ausgeblendet.
Aktuelle Zeit: --:--:--
5. Taxonomien & CollectionsTwig kann auf alle Grav-Daten zugreifen — Seiten, Taxonomien, Collections:
Seiten-Sprache: {{ grav.language.getActive }}Site-Titel: {{ site.title }}Seiten-Tags: grav child-theme twig css javascript Alle Seiten (top 5): 6. Theme-Settings aus YAMLDas Child-Theme erbt alle Quark-2-Settings und kann eigene hinzufuegen:
theme_var('accent-color') #8428DF
theme_var('theme-mode') auto
7. Partials & IncludesJedes Partial kann ueber {% include 'partials/...' %} eingebunden werden — sowohl vom Parent-Theme als auch eigene:
Verfuegbare Partials (Quark 2): base, navigation, footer, logo, breadcrumbs, hero, pagination, messages, metadata, theme-toggle, sidebar, archives, taxonomylistEigene Partials (splexus-custom): childtheme-demo.html.twig (dieses Partial hier)Splexus-Partials (bereits vorhanden): splexus-banner, splexus-form, splexus-svgs, splexus-tabellen, splexus-kalender, splexus-animationen, splexus-diagramme, splexus-flex-objects
8. Security-Gate & HTML/JS in TwigIm Markdown-Content werden <script>, <iframe>, <style> vom Grav-Security-Gate escaped. Im Twig-Partial sind sie erlaubt:
Regel: Alles was HTML/JS/CSS enthaelt → ins Twig-Partial, nicht ins Markdown.Ausnahme: <video> und <audio> werden direkt gerendert.Code-Beispiele: In Markdown als [text] mit eckigen Klammern statt Twig-Syntax schreiben.
9. MehrsprachigkeitGrav unterstuetzt Mehrsprachigkeit. Twig kann die aktive Sprache abfragen:
Aktive Sprache: {{ grav.language.getActive }}Default-Sprache: {{ grav.config.site.default_lang }}Unterstuetzte Sprachen: {{ grav.config.languages.supported|join(', ') }}
ZusammenfassungFeature Moeglich? Wo? Twig-Templates ja templates/*.twigEigenes CSS ja css/custom.css oder inline in TwigEigenes JavaScript ja js/*.js oder inline in TwigRoute-spezifische Includes ja {% if page.route == '...' %}Frontmatter-Variablen ja {{ page.header.feld }}Taxonomien/Collections ja {{ page.taxonomy }}, {{ pages.children }}Theme-Settings (YAML) ja {{ theme_var('setting') }}Partials/Includes ja {% include 'partials/...' %}Mehrsprachigkeit ja {{ grav.language.getActive }}CDN-Frameworks (React, Vue, Tailwind) ja ueber <script> im Twig-Template Child-Theme-Inheritance ja config.yaml stream prefixes
Child-Theme „splexus-custom" — alle Möglichkeiten Diese Seite demonstriert, was mit dem Grav Child-Theme splexus-custom (basierend auf Quark 2) möglich ist. Das Theme erbt alle Funktionen von Quark 2 und fügt eigene Templates, CSS, JavaScript und Partials hinzu.
Was ist ein Child-Theme? Ein Child-Theme erbt alle Dateien vom Parent-Theme (Quark 2) — Templates, CSS, JS, Fonts, Bilder. Nur die Dateien, die du im Child-Theme-Ordner ablegst, überschreiben die Parent-Version. Das macht Updates sicher: Quark 2 kann aktualisiert werden, ohne dass deine Anpassungen verloren gehen.
Datei-Struktur user/themes/splexus-custom/
├── splexus-custom.php ← PHP-Klasse (erbt von Quark2)
├── splexus-custom.yaml ← Theme-Settings
├── blueprints.yaml ← Admin-Konfiguration
├── config.yaml ← Stream-Prefixe (Vererbung)
├── css/
│ └── custom.css ← Eigene Styles (überschreibt Quark 2)
├── js/
│ └── demo-feature.js ← Eigenes JavaScript
├── templates/
│ ├── default.html.twig ← Haupt-Template (überschreibt Quark 2)
│ └── partials/
│ └── childtheme-demo.html.twig ← Eigenes Partial
└── images/ ← Eigene BilderWas wird unten auf dieser Seite gezeigt? Die interaktive Demo unten wird durch ein Twig-Partial gerendert (childtheme-demo.html.twig), das nur auf dieser Route geladen wird. Es zeigt:
Twig-Template-Logik — Route-spezifische IncludesFrontmatter-Variablen — Werte aus dem YAML-Header in Twig auslesenEigenes CSS — Gradients, Glassmorphism, Neon-Effekte, 3D-CardsEigenes JavaScript — Counter, Toggle, Live-Clock, Scroll-ObserverTaxonomien & Collections — Zugriff auf Seiten, Tags, KategorienTheme-Settings — YAML-Konfiguration in Twig verwendenPartials & Includes — Wiederverwendbare Template-BlöckeSecurity-Gate — Wie man HTML/JS/CSS in Twig statt Markdown einbindetMehrsprachigkeit — Sprachabfragen in TwigZusammenfassung — Tabelle aller FeaturesAlle interaktiven Elemente unten sind live ausprozierbar — klicke die Buttons, beobachte die Uhr, scrolle durch die Sektionen.