
Per scoprire quale template genera il markup per un determinato elemento, puoi utilizzare l’opzione integrata di debug di Twig. Questo parametro mostrerà i commenti HTML insieme all’output renderizzato, includendo gli hook di tema utilizzati, i nomi di file di template suggeriti e il file Twig esatto che viene usato per visualizzare una specifica sezione del tuo markup.


I filtri in Twig possono essere usati per modificare le variabili. I filtri sono separati dalla variabile con il simbolo della barra verticale. Possono avere argomenti opzionali tra parentesi. È possibile concatenare più filtri: l’output di un filtro viene applicato al successivo.
Esempio:
{{ content|safe_join(", ")|lower }}
A volte è necessario renderizzare un elemento prima di applicargli un filtro:


Twig fornisce una serie di funzioni utili che possono essere utilizzate direttamente nei template.
Il core di Drupal aggiunge alcune funzioni personalizzate specifiche per Drupal. Sono definite nella classe TwigExtension.


Dalla documentazione ufficiale di Twig: «I macro sono paragonabili alle funzioni nei linguaggi di programmazione tradizionali. Sono utili per inserire idiomi HTML usati di frequente in elementi riutilizzabili, in modo da non doversi ripetere».


Per rendere il theming in Drupal 8 il più efficiente possibile e fornire maggiori possibilità di personalizzazione nei template Twig, segui queste linee guida:


L’idea generale in Drupal 8 è che si vuole evitare di creare HTML direttamente nel codice PHP del proprio modulo personalizzato. L’HTML deve invece essere spostato nei template Twig. Per creare nuovi template Twig nel tuo modulo, segui questi passaggi.
Passo n. 1: Definire hook_theme nel file .module
Crea il file [module].module, se non esiste già, e aggiungi il codice che definisce ciascuno dei tuoi template Twig. La chiave di ogni elemento nell’array è ciò che dovrai usare per richiamare il template in seguito. Non usare trattini nel nome del file.


I template Twig possono essere estesi con la seguente sintassi -
{% extends 'html.twig' %}
Per maggiori dettagli consulta https://symfony.com/doc/current/templates.html#template-inheritance-and-layouts


I sottotemi, come qualsiasi altro tema, hanno una sola differenza: ereditano le risorse del tema genitore. Non ci sono limiti alle catene di ereditarietà che collegano i sottotemi ai loro genitori. Un sottotema può essere figlio di un altro sottotema e può essere ramificato e organizzato come si ritiene opportuno.


Classy è un tema base di Drupal 8 ed è anche il tema base utilizzato da Bartik e Seven. Il markup HTML presente in Classy (e nelle sue sottoteme) contiene classi CSS strutturate in modo simile alle convenzioni di denominazione CSS BEM e SMACSS.
Sebbene le convenzioni di naming in stile BEM / SMACSS sviluppate in Classy siano molto efficaci e offrano numerosi vantaggi, non sono adatte a ogni progetto. Chi non è interessato alle classi CSS di Classy può scegliere un altro tema base.


Documentate tutti i selettori di classe CSS presenti nel tema Classy di Drupal 8 RC 2
Formato:
.foo { }
.foo-bar { }
filename.html.twig / filename.css
