Sur cette page
Pages
Ces options contrôlent la façon dont les pages sont chargées, triées, paginées, routées et générées.
pages.dir
Répertoire source des pages (pages par défaut).
pages:
dir: pages
pages.ext
Extensions des fichiers de pages.
pages:
ext: [md, markdown, mdown, mkdn, mkd, text, txt]
pages.exclude
Répertoires, chemins et noms de fichiers à exclure (accepte les globs, les chaînes et les expressions régulières).
pages:
exclude: ['vendor', 'node_modules', '*.scss', '/\.bck$/']
pages.prefix.separator
Liste des caractères utilisés comme séparateur entre un préfixe de nom de fichier (date ou weight) et le slug.
pages:
prefix:
separator: ['-', '_']
pages.sortby
Méthode de tri par défaut des collections.
pages:
sortby: date # `date`, `updated`, `title` ou `weight`
# ou
sortby:
variable: date # `date`, `updated`, `title` ou `weight`
desc_title: false # tri par titre décroissant
reverse: false # inverse l’ordre de tri
pages.pagination
La pagination est disponible pour les pages de liste (type homepage, section ou term).
pages:
pagination:
max: 5 # nombre maximum d’entrées par page
path: page # chemin de la page paginée
Désactiver la pagination
La pagination peut être désactivée :
pages:
pagination: false
Ou :
pages:
pagination:
enabled: false
pages.paths
Applique un path personnalisé à toutes les pages d’une section.
pages:
paths:
- section: <section’s ID>
path: <path of pages>
Variables de chemin
:year:month:day:section:slug
Exemple :
pages:
paths:
- section: Blog
path: :section/:year/:month/:day/:slug # ex. : /blog/2020/12/01/my-post/
# localized
languages:
- code: fr
name: Français
locale: fr_FR
config:
pages:
paths:
- section: Blog
path: blogue/:year/:month/:day/:slug # ex. : /blogue/2020/12/01/mon-billet/
pages.frontmatter
Format du front matter des pages (yaml par défaut, accepte aussi ini, toml et json).
pages:
frontmatter: yaml
pages.body
Options du corps des pages.
pages.body.toc
En-têtes utilisés pour construire la table des matières ([h2, h3] par défaut).
pages:
body:
toc: [h2, h3]
pages.body.anchors
Titres avec un lien d’ancre ([h2, h3] par défaut) : un élément <a class="heading-anchor" href="#<id>"> vide est ajouté à la fin de chacun de ces titres ayant un ID, pour être stylé par les templates (ex. : un # affiché au survol).
pages:
body:
anchors: [h2, h3] # false pour désactiver les ancres
pages.body.highlight
Active la coloration syntaxique du code (true par défaut).
pages:
body:
highlight: false # `false` pour désactiver la coloration syntaxique
Le moteur de coloration peut être changé avec l’option engine :
pages:
body:
highlight:
enabled: true # `true` par défaut
engine: tempest # `highlightjs` (par défaut) ou `tempest`
highlightjs: highlight.php, un portage PHP de highlight.js (plus de 190 langages, classes CSShljs-*)tempest: tempest/highlight, un moteur de coloration rapide côté serveur (langages du web : PHP, HTML, CSS, JavaScript, JSON, YAML, Twig, SQL, XML, etc., classes CSShl-*)
pages.body.images
Options de gestion des images.
pages:
body:
images:
formats: [] # ajoute des formats d’image alternatifs comme `source` (ex. `[avif, webp]`, tableau vide par défaut)
resize: 0 # redimensionne toutes les images à <width> (en pixels, `0` pour désactiver)
responsive: false # ajoute des variantes responsives à l’attribut `srcset` (`false` par défaut)
lazy: true # ajoute l’attribut `loading="lazy"` (`true` par défaut)
decoding: true # ajoute l’attribut `decoding="async"` (`true` par défaut)
caption: false # place l’image dans un élément <figure> et ajoute une <figcaption> contenant le titre (`false` par défaut)
placeholder: '' # remplit l’arrière-plan de <img> avant le chargement ('color' ou 'lqip', vide par défaut)
class: '' # définit une classe par défaut sur chaque image (vide par défaut)
dark_suffix: ~ # suffixe de l’image variante sombre (ex. `.dark`), désactivé par défaut
mobile_suffix: ~ # suffixe de l’image variante mobile (ex. `.mobile`), désactivé par défaut
mobile_media_query: '(max-width: 767px)' # media query de la `<source>` de la variante mobile
remote: # traitement des images distantes (mettre à `false` pour désactiver)
fallback: # chemin de l’image de secours, stockée dans le répertoire assets (vide par défaut)
pages.body.links
Options de gestion des liens.
pages:
body:
links:
embed:
enabled: false # transforme les liens en contenu embarqué si possible (`false` par défaut)
video: [mp4, webm] # extensions des fichiers vidéo
audio: [mp3, ogg, wav] # extensions des fichiers audio
external:
blank: false # si `true`, ouvre le lien externe dans un nouvel onglet
noopener: true # si `true`, ajoute `noopener` à l’attribut `rel`
noreferrer: true # si `true`, ajoute `noreferrer` à l’attribut `rel`
nofollow: false # si `true`, ajoute `nofollow` à l’attribut `rel`
pages.body.excerpt
Options de gestion des extraits.
pages:
body:
excerpt:
separator: excerpt|break # chaîne utilisée comme séparateur (`excerpt|break` par défaut)
capture: before # partie à capturer, `before` ou `after` le séparateur (`before` par défaut)
pages.default
Les pages par défaut sont des pages sans fichier de contenu (front matter uniquement), indexées par ID, chacune avec un path et quelques variables de front matter.
Cecil fournit des pages par défaut intégrées (à partir de templates intégrés) :
pages:
default:
index:
path: ''
title: Home
published: true
404:
path: 404
title: Page not found
layout: 404
uglyurl: true
published: true
excluded: true
robots:
path: robots
title: Robots.txt
layout: robots
output: txt
published: true
excluded: true
multilingual: false
sitemap:
path: sitemap
title: XML sitemap
layout: sitemap
output: xml
changefreq: monthly
priority: 0.5
published: true
excluded: true
multilingual: false
xsl/sitemap:
path: xsl/sitemap
layout: sitemap
output: xsl
uglyurl: true
published: true
excluded: true
xsl/atom:
path: xsl/atom
layout: feed
output: xsl
uglyurl: true
published: true
excluded: true
xsl/rss:
path: xsl/rss
layout: feed
output: xsl
uglyurl: true
published: false
excluded: true
Chaque page peut être :
- désactivée :
published: false - exclue des pages de liste :
excluded: true - exclue de la localisation :
multilingual: false
Vous pouvez aussi ajouter vos propres pages (un thème peut faire de même dans son config.yml) :
pages:
default:
code:
path: code
redirect: https://github.com/ArnaudLigny
Comme toute autre page, une page par défaut est listée (par exemple dans site.pages.showable, dans le sitemap, sur la page d’accueil) : utilisez excluded: true pour exclure des listes une page technique (index JSON, manifeste, etc.).
pages.generators
Cecil utilise les générateurs pour créer des pages supplémentaires (par ex. sitemap, flux, pagination, etc.) à partir de pages existantes, ou à partir d’autres sources comme le fichier de configuration ou des sources externes.
Voici la liste des générateurs fournis par Cecil, dans un ordre défini :
pages:
generators:
10: 'Cecil\Generator\DefaultPages'
30: 'Cecil\Generator\ExternalBody'
40: 'Cecil\Generator\Section'
50: 'Cecil\Generator\Taxonomy'
60: 'Cecil\Generator\Homepage'
70: 'Cecil\Generator\Pagination'
80: 'Cecil\Generator\Alias'
90: 'Cecil\Generator\Redirect'
pages.subsets
Les sous-ensembles servent à générer une partie de la collection de pages, selon un chemin, une langue ou un format de sortie spécifique, avec la commande :
cecil build --render-subset=<name>
pages:
subsets:
<name>:
path: <path> # chemin glob ou chaîne (ex. `blog/*`, `blog`)
language: <language> # code de langue (ex. `en`, `fr`)
output: <output> # format de sortie (ex. `html`, `atom`)
Exemple :
pages:
subsets:
blog_en:
path: blog
language: en
output: html
search_index:
path: '*'
output: json