Logo de Cecil Cecil
Sur cette page

Pages

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 glob, 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

pages.paths

Applique un path personnalisé à toutes les pages d’une section.

pages:
  paths:
    - section: <section’s ID>
      path: <path of pages>

Emplacements des 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.highlight

Active la coloration syntaxique du code (true par défaut).

pages:
  body:
    highlight: false # définissez à false pour désactiver la coloration syntaxique

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)

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]       # 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.virtual

Les pages virtuelles sont la meilleure façon de créer des pages sans contenu (front matter uniquement).

Elles consistent en une liste de pages avec un path et quelques variables de front matter.

Exemple :

pages:
  virtual:
    - path: code
      redirect: https://github.com/ArnaudLigny

pages.default

Les pages par défaut sont des pages créées automatiquement par Cecil (à partir de modèles intégrés) :

pages:
  default:
    index:
      path: ''
      title: Accueil
      published: true
    404:
      path: 404
      title: Page introuvable
      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: Plan de site XML
      layout: sitemap
      output: xml
      changefreq: monthly
      priority: 0.5
      published: true
      excluded: true
      multilingual: false
    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 :

  1. désactivée : published: false
  2. exclue des pages de liste : excluded: true
  3. exclue de la localisation : multilingual: false

pages.generators

Les générateurs servent à Cecil 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'
    20: 'Cecil\Generator\VirtualPages'
    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 à rendre 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