Logo de Cecil Cecil
Sur cette page
18 octobre 2026

Cecil 9.18.0 : une fusion de configuration plus intelligente

Cecil 9.18.0 revoit la façon dont votre configuration est fusionnée avec celle par défaut et avec celle des thèmes. L’objectif : ne définir que ce que vous voulez modifier, et obtenir un résultat prévisible.

Configuration en couches

La configuration effective est désormais construite à partir de couches, chacune surchargeant les précédentes :

  1. configuration par défaut de Cecil
  2. configuration des thèmes
  3. configuration du site (cecil.yml)
  4. variables d’environnement (CECIL_*) et options de la ligne de commande

Les tableaux associatifs sont fusionnés clé par clé avec ceux par défaut : par exemple, ajouter un format à layouts.translations.formats ne supprime plus les chargeurs intégrés. Les thèmes peuvent également surcharger les valeurs par défaut intégrées, comme les pages par défaut, les générateurs et les formats de sortie.

Un tableau associatif peut être activé ou désactivé avec un simple booléen, sans perdre ses options :

cache: false # équivalent à `cache: {enabled: false}`

Listes de valeurs

Lorsque vous définissez une liste de valeurs (ex. : pages.ext, output.pagetypeformats ou assets.images.responsive.widths), elle remplace désormais la liste par défaut. Si un thème définit la même liste, vos valeurs sont ajoutées à celles du thème, car elles peuvent lui être nécessaires.

Pour ajuster une liste par défaut (ou d’un thème), utilisez un tableau associatif : true ajoute une valeur, false la retire.

output:
  pagetypeformats:
    homepage:
      rss: true   # ajoute RSS
      atom: false # retire Atom

Les formats de sortie sont fusionnés par name : - {name: rss, filename: feed} ne surcharge donc que le filename du format RSS.

Options obsolètes

Les options obsolètes sont désormais vérifiées avant la validation de la configuration, et sont toutes signalées en une fois, avec leur source et l’extrait à utiliser à la place :

Deprecated configuration option(s) in "cecil.yml":
- Option `frontmatter` must be moved to:
  ```
  pages:
    frontmatter: yaml
  ```
- Option `pages.body.format` is deprecated and must be removed.

Nouveau test enabled dans les templates

Un tableau associatif désactivé restant un tableau, utilisez le nouveau test enabled pour vérifier une option dans les templates :

{% if config.cache is enabled %}

Changements incompatibles

Vérifiez votre configuration avant de mettre à jour :

  • Une liste de valeurs définie dans plusieurs fichiers --config est désormais remplacée par la dernière, au lieu d’être concaténée.
  • Un site ne peut plus vider une liste d’un thème en la redéfinissant (homepage: []) : retirez chaque valeur avec false.
  • La configuration d’un thème surcharge désormais les pages par défaut, les générateurs et les formats de sortie intégrés.
  • {% if config.cache %} est vrai même lorsque le cache est désactivé avec cache: false : utilisez {% if config.cache is enabled %} à la place.

Exécutez cecil show:config pour afficher la configuration effective complète, valeurs par défaut incluses.

Consultez la documentation de configuration pour plus de détails, et mettez à jour Cecil pour profiter de cette version.

Notes de version sur GitHub