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>" menus
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) format: spécificateur de format de date PHPtimezone: voir les fuseaux horaires
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: " · " # 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)