Logo de Cecil Cecil
Sur cette page

Configuration

Aperçu

La configuration du site web est définie dans un fichier YAML nommé cecil.yml ou config.yml, stocké à la racine :

<mywebsite>
└─ cecil.yml

Cecil propose de nombreuses options de configuration, mais ses valeurs par défaut sont souvent suffisantes. Un nouveau site ne nécessite que ces paramètres :

title: "My new Cecil site"
baseurl: https://mywebsite.com/
description: "Site description"

La documentation ci-dessous couvre toutes les options de configuration prises en charge par Cecil.

Options

title

Titre principal du site.

title: "<site title>"

baseline

Description courte (~ 20 caractères).

baseline: "<baseline>"

baseurl

URL de base.

baseurl: <url>

Exemple :

baseurl: http://localhost:8000/

canonicalurl

Si la valeur est true, la fonction url() renverra l’URL absolue (false par défaut).

canonicalurl: <true|false> # false by default

description

Description du site (~ 250 caractères).

description: "<description>"

Les menus sont utilisés pour créer des liens de navigation dans les templates.

Un menu est composé d’un identifiant unique et des propriétés des entrées (nom, URL, poids).

menus:
  <name>:
    - id: <unique-id>   # unique identifier (required)
      name: "<name>"    # name displayed in templates
      url: <url>        # relative or absolute URL
      weight: <integer> # integer value used to sort entries (lighter first)

Exemple :

menus:
  main:
    - id: about
      name: "About"
      url: /about/
      weight: 1
  footer:
    - id: author
      name: The author
      url: https://arnaudligny.fr
      weight: 99

Surcharger une entrée

Une entrée de menu de page peut être surchargée : utilisez l’ID de la page comme id.

Exemple :

menus:
  main:
    - id: index
      name: "My amazing homepage!"
      weight: 1

Désactiver une entrée

Une entrée de menu peut être désactivée avec enabled: false.

Exemple :

menus:
  main:
    - id: about
      enabled: false

taxonomies

Liste des vocabulaires, associant une valeur au pluriel à une valeur au singulier.

taxonomies:
  <plural>: <singular>

Exemple :

taxonomies:
  categories: category
  tags: tag

theme

Thème à utiliser, ou liste de thèmes.

theme: <theme> # theme name
# or
theme:
  - <theme1> # theme name
  - <theme2>

Exemples :

theme: hyde
theme:
  - serviceworker
  - hyde

date

Format de date et fuseau horaire.

date:
  format: <format>     # date format (optional, `F j, Y` by default)
  timezone: <timezone> # date timezone (optional, local time zone by default)

Exemple :

date:
  format: 'j F, Y'
  timezone: 'Europe/Paris'

language

Langue principale, définie par son code.

language: <code> # unique code (`en` by default)

Par défaut, seuls les chemins des pages des autres langues sont préfixés par leur code de langue, mais vous pouvez préfixer le chemin des pages de la langue principale avec l’option suivante :

#language: <code>
language:
  code: <code>
  prefix: true

languages

Options des langues disponibles, utilisées pour la localisation des pages et des templates.

languages:
  - code: <code>          # unique code (e.g.: `en`, `fr`, 'en-US', `fr-CA`)
    name: <name>          # human readable name (e.g.: `Français`)
    locale: <locale>      # locale code (`language_COUNTRY`, e.g.: `en_US`, `fr_FR`, `fr_CA`)
    enabled: <true|false> # enabled or not (`true` by default)

Exemple :

language: en
languages:
  - code: en
    name: English
    locale: en_EN
  - code: fr
    name: Français
    locale: fr_FR

Localiser

Pour localiser des options de configuration, vous devez les stocker sous la clé config de la langue.

Exemple :

title: "Cecil in english"
languages:
  - code: en
    name: English
    locale: en_US
  - code: fr
    name: Français
    locale: fr_FR
    config:
      title: "Cecil en français"

metatags

Les metatags sont des aides SEO et réseaux sociaux qui peuvent être injectées automatiquement dans le <head>, via le template partial metatags.html.twig.

Exemple :

<html lang="{{ site.language }}">
  <head>
    <meta charset="utf-8">
    {{ include('partials/metatags.html.twig') }}
  </head>
  <body>
    ...
  </body>
</html>

Ce template ajoute les balises meta suivantes :

  • Titre de page + titre du site, ou titre du site + baseline du site
  • Description de la page/du site
  • Mots-clés de la page/du site
  • Auteur de la page/du site
  • Directives des robots des moteurs de recherche (robots)
  • Liens de favicon
  • Liens de navigation (premier, précédent, suivant, dernier)
  • URL canonique
  • Liens alternatifs (ex. : flux RSS, autres langues)
  • Liens rel=me
  • Open Graph
  • Identifiant de profil Facebook
  • Twitter/X Card
  • Fediverse tag
  • Structured data (JSON-LD)

options metatags

Cecil utilise le front matter de la page pour alimenter les meta tags, avec repli sur les options du site si nécessaire.

title: "Page/Site title"              # used by title meta
description: "Page/Site description"  # used by description meta
tags: [tag1, tag2]                    # used by keywords meta
keywords: [keyword1, keyword2]        # obsolete
author:                               # used by author meta
  name: <name>                          # author name
  url: <url>                            # author URL
  email: <email>                        # author email
image: image.jpg                      # used by Open Graph and social networks cards
canonical:                            # used to override the generated canonical URL
  url: <URL>                            # absolute URL
  title: "<URL title>"                  # optional canonical title
social:                               # used by social networks meta
  twitter:                              # used by Twitter/X Card
    url: <URL>                            # used for `rel=me` link
    site: username                        # site username
    creator: username                     # page author username
  mastodon:                             # used by Mastodon meta
    url: <URL>                            # used for `rel=me` link
    creator: handle                       # page author account
  facebook:                             # used by Facebook meta
    url: <URL>                            # used for `rel=me` link
    id: 123456789                         # Facebook profile ID
    username: username                    # page author username

configuration metatags

metatags:
  title:                   # title options
    divider: " &middot; "    # string between page title and site title
    only: false              # displays page title only (`false` by default)
    pagination:              # pagination options
      shownumber: true         # displays page number in title (`true` by default)
      label: "Page %s"         # how to display page number (`Page %s` by default)
  robots: "index,follow"   # web crawlers directives (`index,follow` by default)
  favicon:                 # favicon options
    enabled: true            # includes favicon (`true` by default)
    image: favicon.png       # path to favicon image
    sizes:                   # sizes by device
      - "icon": [32, 57, 76, 96, 128, 192, 228]  # web browsers
      - "shortcut icon": [196]                   # Android
      - "apple-touch-icon": [120, 152, 180]      # iOS
  navigation: true         # includes previous and next links (`true` by default)
  image: true              # includes image (`true` by default)
  og: true                 # includes Open Graph meta tags (`true` by default)
  articles: "blog"         # articles' section (`blog` by default)
  twitter: true            # includes Twitter/X Card meta tags (`true` by default)
  mastodon: true           # includes Mastodon meta tags (`true` by default)
  data: false              # includes JSON-LD structured data (`false` by default)