Sur cette page
Organisation et règles de recherche
Organisation des fichiers
Types de templates
Il existe trois types de templates, layouts, components et autres templates : layouts sont utilisés pour afficher les pages, et chacun d'eux peut inclure des templates et components.
Convention de nommage
Les fichiers templates sont stockés dans le répertoire layouts/ et doivent être nommés selon la convention suivante :
layouts/(<section>/)<type>|<layout>.<format>(.<language>).twig <section>(facultatif)- La section de la page (ex. :
blog). <type>- Le type de page :
home(ouindex) pour homepage,listpour list,pagepour page, etc. (Voir Règles de recherche pour plus de détails). <layout>(facultatif)- Le nom de la layout personnalisée défini dans le front-matter de la page (par exemple :
layout: my-layout). <format>- Le format de sortie de la page rendue (par exemple :
html,rss,json,xml, etc.). <language>(facultatif)- La langue de la page (ex. :
fr).
Exemples :
layouts/home.html.twig # `type` est "homepage"
layouts/page.html.twig # `type` est "page"
layouts/page.html.fr.twig # `type` est "page" et `language` est "fr"
layouts/my-layout.html.twig # `layout` est "my-layout"
layouts/blog/list.html.twig # `section` est "blog"
layouts/blog/list.rss.twig # `section` est "blog" et `format` est "rss" <mon-site>
├─ ...
├─ layouts
| ├─ index.html.twig # Utilisé par le type "homepage"
| ├─ list.html.twig # Utilisé par les types "homepage" et "section"
| ├─ list.rss.twig # Utilisé par les types "homepage" et "section", pour le format de sortie RSS
| ├─ page.html.twig # Utilisé par le type "page"
| ├─ taxonomy
| | ├─ tags.html.twig # Utilisé par le type "vocabulary" de `tags` (liste des termes)
| | └─ tag.html.twig # Utilisé par le type "term" de `tags` (liste des pages)
| ├─ my-layout.html.twig # Utilisé par les pages avec `layout: my-layout` dans le front-matter
| ├─ ...
| └─ partials
| ├─ footer.html.twig # Template inclus
| └─ ...
└─ themes # Layouts et templates des thèmes
└─ ... Templates intégrés
Cecil est livré avec un ensemble de templates intégrés.
Règles de recherche
Dans la plupart des cas vous n'avez pas besoin de préciser la layout : Cecil sélectionne la layout la plus appropriée, en fonction du type de la page.
Par exemple, la sortie HTML de home page (index.md) sera rendue :
- avec
my-layout.html.twigsi la variablelayoutest définie sur "my-layout" (dans le préambule) - sinon, avec
index.html.twigsi le fichier existe - sinon, avec
home.html.twigsi le fichier existe - sinon, avec
list.html.twigsi le fichier existe
Toutes les règles sont détaillées ci-dessous, pour chaque type de page, par ordre de priorité.
Type homepage
<layout>.<format>.twigindex.<format>.twighome.<format>.twiglist.<format>.twig_default/<layout>.<format>.twig_default/index.<format>.twig_default/home.<format>.twig_default/list.<format>.twig_default/page.<format>.twig
Type page
<section>/<layout>.<format>.twig<layout>.<format>.twig<section>/page.<format>.twig_default/<layout>.<format>.twigpage.<format>.twig_default/page.<format>.twig
Type section
<layout>.<format>.twig<section>/index.<format>.twig<section>/list.<format>.twigsection/<section>.<format>.twig<parent>/index.<format>.twig,<parent>/list.<format>.twigetsection/<parent>.<format>.twig, pour chaque section parente d’une sous-section (la plus proche en premier)_default/section.<format>.twiglist.<format>.twig_default/list.<format>.twig
Type vocabulary
taxonomy/<plural>.<format>.twigvocabulary.<format>.twig_default/vocabulary.<format>.twig
Type term
taxonomy/<plural>/<term>.<format>.twigtaxonomy/<singular>.<format>.twigterm.<format>.twig_default/term.<format>.twig_default/list.<format>.twig