Motore dei temi
I temi del sito dell'organizzazione sono resi con Jinja2. I file del tema sono caricati come asset del tema.
Sintassi Jinja di base:
{{ variabile }} {# stampa un valore #}
{{ oggetto.attributo }} {# accesso per attributo #}
{{ oggetto['chiave'] }} {# accesso per chiave #}
{% if condizione %}...{% endif %}
{% for item in lista %}...{% endfor %}
{{ valore | filtro }}
Pagine di questa sezione:
- Creare un tema — installare la CLI, sviluppare in locale, pubblicare versioni
- Variabili di contesto — cosa è disponibile in ogni pagina
- Oggetti e attributi — i campi degli oggetti (
campaign,page, ...) - Campi personalizzati —
campaign.customfields - Tag e filtri —
{% section %},format_money,format_date, ... - Sezioni e impostazioni —
theme,sections,section
Struttura di un tema
I file di un tema sono organizzati in cartelle, e la cartella determina il ruolo del file:
| percorso | ruolo |
|---|---|
manifest.json | nome, slug, versione, autore |
layout/*.html | il documento HTML completo, con content_for_layout |
sections/*.html | blocchi componibili, ognuno con il suo {% schema %} |
snippets/*.html | frammenti riusabili, inclusi con {% include %} |
templates/*.json | composizione delle pagine: quali sezioni, in quale ordine |
templates/**/*.html | pagine non componibili, come l'area sostenitore |
config/settings_schema.json | quali impostazioni globali il tema espone |
config/settings_data.json | i valori di quelle impostazioni |
assets/* | CSS, JavaScript, font |
I temi contengono solo file di testo: le immagini si caricano nella libreria media dell'organizzazione e si selezionano dalle impostazioni.