<?xml version="1.0" encoding="utf-8"?>
<?xml-stylesheet type="text/xsl" href="https://cecil.app/fr/xsl/atom.xsl" media="all"?>
<feed xmlns="http://www.w3.org/2005/Atom" xml:lang="fr">
  <id>https://cecil.app/fr/documentation/configuration/</id>
  <title>Cecil - Configuration</title>
  <subtitle><![CDATA[Cecil est une application PHP en ligne de commande qui fusionne des pages Markdown, des médias et des templates Twig afin de générer un site Web statique.]]></subtitle>
  <link href="https://cecil.app/fr/documentation/configuration/atom.xml" rel="self" type="application/atom+xml" />
  <link href="https://cecil.app/fr/documentation/configuration/" rel="alternate" type="text/html" />
  <updated>2026-10-07T22:51:28+00:00</updated>
  <author>
    <name>Cecil</name>
    <uri>https://cecil.app</uri>
  </author>
  <entry xml:lang="fr">
    <id>https://cecil.app/fr/documentation/configuration/site/</id>
    <title>Options du site</title>
    <published>2026-03-27T00:00:00+00:00</published>
    <updated>2026-10-05T00:00:00+00:00</updated>
    <link href="https://cecil.app/fr/documentation/configuration/site/" rel="alternate" type="text/html" />
    <content type="html">
      <![CDATA[<h1>Options du site</h1>
<h2 id="title">title</h2>
<p>Titre principal du site.</p>
<pre><code class="language-yaml hljs yaml" translate="no"><span class="hljs-attr">title:</span> <span class="hljs-string">"&lt;site title&gt;"</span></code></pre>
<h2 id="baseline">baseline</h2>
<p>Description courte (~ 20 caractères).</p>
<pre><code class="language-yaml hljs yaml" translate="no"><span class="hljs-attr">baseline:</span> <span class="hljs-string">"&lt;baseline&gt;"</span></code></pre>
<h2 id="baseurl">baseurl</h2>
<p>URL de base.</p>
<pre><code class="language-yaml hljs yaml" translate="no"><span class="hljs-attr">baseurl:</span> <span class="hljs-string">&lt;url&gt;</span></code></pre>
<p><em>Exemple :</em></p>
<pre><code class="language-yaml hljs yaml" translate="no"><span class="hljs-attr">baseurl:</span> <span class="hljs-string">http://localhost:8000/</span></code></pre>
<aside class="note note-important"><p><code translate="no">baseurl</code> doit se terminer par un slash final (<code translate="no">/</code>).</p></aside>
<h2 id="canonicalurl">canonicalurl</h2>
<p>Si la valeur est <code translate="no">true</code>, la fonction <a href="/fr/documentation/templates/reference/fonctions/#url"><code translate="no">url()</code></a> renverra l’URL absolue (<code translate="no">false</code> par défaut).</p>
<pre><code class="language-yaml hljs yaml" translate="no"><span class="hljs-attr">canonicalurl:</span> <span class="hljs-string">&lt;true|false&gt;</span> <span class="hljs-comment"># false by default</span></code></pre>
<h2 id="description">description</h2>
<p>Description du site (~ 250 caractères).</p>
<pre><code class="language-yaml hljs yaml" translate="no"><span class="hljs-attr">description:</span> <span class="hljs-string">"&lt;description&gt;"</span></code></pre>
<h2 id="menus">menus</h2>
<p>Les menus sont utilisés pour créer des <a href="/fr/documentation/templates/variables/#site-menus">liens de navigation dans les templates</a>.</p>
<p>Un menu est composé d’un identifiant unique et des propriétés des entrées (nom, URL, poids).</p>
<pre><code class="language-yaml hljs yaml" translate="no"><span class="hljs-attr">menus:</span>
  <span class="hljs-string">&lt;name&gt;:</span>
    <span class="hljs-bullet">-</span> <span class="hljs-attr">id:</span> <span class="hljs-string">&lt;unique-id&gt;</span>   <span class="hljs-comment"># unique identifier (required)</span>
      <span class="hljs-attr">name:</span> <span class="hljs-string">"&lt;name&gt;"</span>    <span class="hljs-comment"># name displayed in templates</span>
      <span class="hljs-attr">url:</span> <span class="hljs-string">&lt;url&gt;</span>        <span class="hljs-comment"># relative or absolute URL</span>
      <span class="hljs-attr">weight:</span> <span class="hljs-string">&lt;integer&gt;</span> <span class="hljs-comment"># integer value used to sort entries (lighter first)</span></code></pre>
<p><em>Exemple :</em></p>
<pre><code class="language-yaml hljs yaml" translate="no"><span class="hljs-attr">menus:</span>
  <span class="hljs-attr">main:</span>
    <span class="hljs-bullet">-</span> <span class="hljs-attr">id:</span> <span class="hljs-string">about</span>
      <span class="hljs-attr">name:</span> <span class="hljs-string">"About"</span>
      <span class="hljs-attr">url:</span> <span class="hljs-string">/about/</span>
      <span class="hljs-attr">weight:</span> <span class="hljs-number">1</span>
  <span class="hljs-attr">footer:</span>
    <span class="hljs-bullet">-</span> <span class="hljs-attr">id:</span> <span class="hljs-string">author</span>
      <span class="hljs-attr">name:</span> <span class="hljs-string">The</span> <span class="hljs-string">author</span>
      <span class="hljs-attr">url:</span> <span class="hljs-string">https://arnaudligny.fr</span>
      <span class="hljs-attr">weight:</span> <span class="hljs-number">99</span></code></pre>
<aside class="note note-info"><p>Un menu <code translate="no">main</code> est créé automatiquement avec l’entrée de la page d’accueil et toutes les entrées de sections (<a href="/fr/documentation/contenu/">Voir la gestion du contenu</a>).</p></aside>
<aside class="note note-tip"><p>Une page peut être ajoutée à un menu en définissant la variable <a href="/fr/documentation/contenu/front-matter/#menu"><code translate="no">menu</code></a> dans son front matter.</p></aside>
<h3 id="surcharger-une-entree">Surcharger une entrée</h3>
<p>Une entrée de menu de page peut être surchargée : utilisez l’ID de la page comme <code translate="no">id</code>.</p>
<p><em>Exemple :</em></p>
<pre><code class="language-yaml hljs yaml" translate="no"><span class="hljs-attr">menus:</span>
  <span class="hljs-attr">main:</span>
    <span class="hljs-bullet">-</span> <span class="hljs-attr">id:</span> <span class="hljs-string">index</span>
      <span class="hljs-attr">name:</span> <span class="hljs-string">"My amazing homepage!"</span>
      <span class="hljs-attr">weight:</span> <span class="hljs-number">1</span></code></pre>
<h3 id="desactiver-une-entree">Désactiver une entrée</h3>
<p>Une entrée de menu peut être désactivée avec <code translate="no">enabled: false</code>.</p>
<p><em>Exemple :</em></p>
<pre><code class="language-yaml hljs yaml" translate="no"><span class="hljs-attr">menus:</span>
  <span class="hljs-attr">main:</span>
    <span class="hljs-bullet">-</span> <span class="hljs-attr">id:</span> <span class="hljs-string">about</span>
      <span class="hljs-attr">enabled:</span> <span class="hljs-literal">false</span></code></pre>
<h2 id="taxonomies">taxonomies</h2>
<p>Liste des vocabulaires, associant une valeur au pluriel à une valeur au singulier.</p>
<pre><code class="language-yaml hljs yaml" translate="no"><span class="hljs-attr">taxonomies:</span>
  <span class="hljs-string">&lt;plural&gt;:</span> <span class="hljs-string">&lt;singular&gt;</span></code></pre>
<p><em>Exemple :</em></p>
<pre><code class="language-yaml hljs yaml" translate="no"><span class="hljs-attr">taxonomies:</span>
  <span class="hljs-attr">categories:</span> <span class="hljs-string">category</span>
  <span class="hljs-attr">tags:</span> <span class="hljs-string">tag</span></code></pre>
<p>Vous pouvez ensuite utiliser ces vocabulaires dans le <a href="/fr/documentation/contenu/front-matter/#taxonomie">front matter</a> de votre contenu.</p>
<aside class="note note-warning"><p>Depuis la <ins>version 8.37.0</ins>, les vocabulaires par défaut <code translate="no">category</code> et <code translate="no">tag</code> ont été supprimés. Vous devez les définir dans le fichier de configuration si vous souhaitez les utiliser.</p></aside>
<aside class="note note-tip"><p>Un vocabulaire peut être désactivé avec la valeur spéciale <code translate="no">disabled</code>. Exemple : <code translate="no">tags: disabled</code>.</p></aside>
<h2 id="theme">theme</h2>
<p>Thème à utiliser, ou liste de thèmes.</p>
<pre><code class="language-yaml hljs yaml" translate="no"><span class="hljs-attr">theme:</span> <span class="hljs-string">&lt;theme&gt;</span> <span class="hljs-comment"># theme name</span>
<span class="hljs-comment"># or</span>
<span class="hljs-attr">theme:</span>
  <span class="hljs-bullet">-</span> <span class="hljs-string">&lt;theme1&gt;</span> <span class="hljs-comment"># theme name</span>
  <span class="hljs-bullet">-</span> <span class="hljs-string">&lt;theme2&gt;</span></code></pre>
<aside class="note note-info"><p>Le premier thème surcharge les suivants, et ainsi de suite.</p></aside>
<p><em>Exemples :</em></p>
<pre><code class="language-yaml hljs yaml" translate="no"><span class="hljs-attr">theme:</span> <span class="hljs-string">hyde</span></code></pre>
<pre><code class="language-yaml hljs yaml" translate="no"><span class="hljs-attr">theme:</span>
  <span class="hljs-bullet">-</span> <span class="hljs-string">serviceworker</span>
  <span class="hljs-bullet">-</span> <span class="hljs-string">hyde</span></code></pre>
<aside class="note note-info"><p>Voir les <a href="https://github.com/Cecilapp?q=theme#org-repositories" target="_blank" rel="noopener noreferrer">thèmes sur GitHub</a> ou la <a href="https://cecil.app/themes/">section thèmes</a> du site.</p></aside>
<h2 id="date">date</h2>
<p>Format de date et fuseau horaire.</p>
<pre><code class="language-yaml hljs yaml" translate="no"><span class="hljs-attr">date:</span>
  <span class="hljs-attr">format:</span> <span class="hljs-string">&lt;format&gt;</span>     <span class="hljs-comment"># date format (optional, `F j, Y` by default)</span>
  <span class="hljs-attr">timezone:</span> <span class="hljs-string">&lt;timezone&gt;</span> <span class="hljs-comment"># date timezone (optional, local time zone by default)</span></code></pre>
<ul>
<li><code translate="no">format</code> : spécificateur de format de <a href="https://php.net/date" target="_blank" rel="noopener noreferrer">date PHP</a></li>
<li><code translate="no">timezone</code> : voir les <a href="https://php.net/timezones" target="_blank" rel="noopener noreferrer">fuseaux horaires</a></li>
</ul>
<p><em>Exemple :</em></p>
<pre><code class="language-yaml hljs yaml" translate="no"><span class="hljs-attr">date:</span>
  <span class="hljs-attr">format:</span> <span class="hljs-string">'j F, Y'</span>
  <span class="hljs-attr">timezone:</span> <span class="hljs-string">'Europe/Paris'</span></code></pre>
<h2 id="metatags">metatags</h2>
<p>Les <em>metatags</em> sont des aides SEO et réseaux sociaux qui peuvent être injectées automatiquement dans le <code translate="no">&lt;head&gt;</code>, via le template <a href="https://github.com/Cecilapp/Cecil/blob/main/resources/layouts/partials/metatags.html.twig" target="_blank" rel="noopener noreferrer"><code translate="no">partials/metatags.html.twig</code></a>.</p>
<p>Ce template ajoute les balises meta suivantes :</p>
<ul>
<li>Titre de page + titre du site, ou titre du site + baseline du site</li>
<li>Description de la page/du site</li>
<li>Mots-clés de la page/du site</li>
<li>Auteur de la page/du site</li>
<li>Directives des robots des moteurs de recherche (<em>robots</em>)</li>
<li>Liens de favicon</li>
<li>Liens de navigation (premier, précédent, suivant, dernier)</li>
<li>URL canonique</li>
<li>Liens alternatifs (ex. : flux RSS, autres langues)</li>
<li>Liens <a href="https://developer.mozilla.org/docs/Web/HTML/Reference/Attributes/rel/me" target="_blank" rel="noopener noreferrer"><code translate="no">rel=me</code></a></li>
<li><a href="https://ogp.me" target="_blank" rel="noopener noreferrer">Open Graph</a></li>
<li>Identifiant de profil Facebook</li>
<li><a href="https://developer.x.com/docs/x-for-websites/cards/guides/getting-started" target="_blank" rel="noopener noreferrer">Twitter/X Card</a></li>
<li><a href="https://blog.joinmastodon.org/2024/07/highlighting-journalism-on-mastodon/" target="_blank" rel="noopener noreferrer">Fediverse tag</a></li>
<li><a href="https://www.dublincore.org/specifications/dublin-core/dcmi-terms/" target="_blank" rel="noopener noreferrer">Dublin Core</a></li>
<li><a href="https://developers.google.com/search/docs/appearance/structured-data/intro-structured-data" target="_blank" rel="noopener noreferrer">Structured data</a> (JSON-LD)</li>
</ul>
<h3 id="options-metatags">options metatags</h3>
<p>Cecil utilise le front matter de la page pour alimenter les meta tags, avec repli sur les options du site si nécessaire.</p>
<pre><code class="language-yaml hljs yaml" translate="no"><span class="hljs-attr">title:</span> <span class="hljs-string">"Page/Site title"</span>              <span class="hljs-comment"># used by title meta</span>
<span class="hljs-attr">description:</span> <span class="hljs-string">"Page/Site description"</span>  <span class="hljs-comment"># used by description meta</span>
<span class="hljs-attr">tags:</span> <span class="hljs-string">[tag1,</span> <span class="hljs-string">tag2]</span>                    <span class="hljs-comment"># used by keywords meta</span>
<span class="hljs-attr">keywords:</span> <span class="hljs-string">[keyword1,</span> <span class="hljs-string">keyword2]</span>        <span class="hljs-comment"># obsolete</span>
<span class="hljs-attr">author:</span>                               <span class="hljs-comment"># used by author meta</span>
  <span class="hljs-attr">name:</span> <span class="hljs-string">&lt;name&gt;</span>                          <span class="hljs-comment"># author name</span>
  <span class="hljs-attr">url:</span> <span class="hljs-string">&lt;url&gt;</span>                            <span class="hljs-comment"># author URL</span>
  <span class="hljs-attr">email:</span> <span class="hljs-string">&lt;email&gt;</span>                        <span class="hljs-comment"># author email</span>
<span class="hljs-attr">image:</span> <span class="hljs-string">image.jpg</span>                      <span class="hljs-comment"># used by Open Graph and social networks cards</span>
<span class="hljs-attr">canonical:</span>                            <span class="hljs-comment"># used to override the generated canonical URL</span>
  <span class="hljs-attr">url:</span> <span class="hljs-string">&lt;URL&gt;</span>                            <span class="hljs-comment"># absolute URL</span>
  <span class="hljs-attr">title:</span> <span class="hljs-string">"&lt;URL title&gt;"</span>                  <span class="hljs-comment"># optional canonical title</span>
<span class="hljs-attr">social:</span>                               <span class="hljs-comment"># used by social networks meta</span>
  <span class="hljs-attr">twitter:</span>                              <span class="hljs-comment"># used by Twitter/X Card</span>
    <span class="hljs-attr">url:</span> <span class="hljs-string">&lt;URL&gt;</span>                            <span class="hljs-comment"># used for `rel=me` link</span>
    <span class="hljs-attr">site:</span> <span class="hljs-string">username</span>                        <span class="hljs-comment"># site username</span>
    <span class="hljs-attr">creator:</span> <span class="hljs-string">username</span>                     <span class="hljs-comment"># page author username</span>
  <span class="hljs-attr">mastodon:</span>                             <span class="hljs-comment"># used by Mastodon meta</span>
    <span class="hljs-attr">url:</span> <span class="hljs-string">&lt;URL&gt;</span>                            <span class="hljs-comment"># used for `rel=me` link</span>
    <span class="hljs-attr">creator:</span> <span class="hljs-string">handle</span>                       <span class="hljs-comment"># page author account</span>
  <span class="hljs-attr">facebook:</span>                             <span class="hljs-comment"># used by Facebook meta</span>
    <span class="hljs-attr">url:</span> <span class="hljs-string">&lt;URL&gt;</span>                            <span class="hljs-comment"># used for `rel=me` link</span>
    <span class="hljs-attr">id:</span> <span class="hljs-number">123456789</span>                         <span class="hljs-comment"># Facebook profile ID</span>
    <span class="hljs-attr">username:</span> <span class="hljs-string">username</span>                    <span class="hljs-comment"># page author username</span></code></pre>
<aside class="note note-tip"><p>Si besoin, <code translate="no">title</code> et <code translate="no">image</code> peuvent être surchargés :</p>
<pre><code class="language-twig hljs twig" translate="no"><span class="hljs-template-variable">{{ <span class="hljs-name">include</span><span class="hljs-params">('partials/metatags.html.twig', {title: 'Custom title', image: og_image})</span> }}</span></code></pre></aside>
<h3 id="configuration-metatags">configuration metatags</h3>
<pre><code class="language-yaml hljs yaml" translate="no"><span class="hljs-attr">metatags:</span>
  <span class="hljs-attr">title:</span>                   <span class="hljs-comment"># title options</span>
    <span class="hljs-attr">divider:</span> <span class="hljs-string">" &amp;middot; "</span>    <span class="hljs-comment"># string between page title and site title</span>
    <span class="hljs-attr">only:</span> <span class="hljs-literal">false</span>              <span class="hljs-comment"># displays page title only (`false` by default)</span>
    <span class="hljs-attr">pagination:</span>              <span class="hljs-comment"># pagination options</span>
      <span class="hljs-attr">shownumber:</span> <span class="hljs-literal">true</span>         <span class="hljs-comment"># displays page number in title (`true` by default)</span>
      <span class="hljs-attr">label:</span> <span class="hljs-string">"Page %s"</span>         <span class="hljs-comment"># how to display page number (`Page %s` by default)</span>
  <span class="hljs-attr">robots:</span> <span class="hljs-string">"index,follow"</span>   <span class="hljs-comment"># web crawlers directives (`index,follow` by default)</span>
  <span class="hljs-attr">favicon:</span>                 <span class="hljs-comment"># favicon options</span>
    <span class="hljs-attr">enabled:</span> <span class="hljs-literal">true</span>            <span class="hljs-comment"># includes favicon (`true` by default)</span>
    <span class="hljs-attr">image:</span> <span class="hljs-string">favicon.png</span>       <span class="hljs-comment"># path to favicon image</span>
    <span class="hljs-attr">sizes:</span>                   <span class="hljs-comment"># sizes by device</span>
      <span class="hljs-bullet">-</span> <span class="hljs-attr">"icon":</span> <span class="hljs-string">[32,</span> <span class="hljs-number">57</span><span class="hljs-string">,</span> <span class="hljs-number">76</span><span class="hljs-string">,</span> <span class="hljs-number">96</span><span class="hljs-string">,</span> <span class="hljs-number">128</span><span class="hljs-string">,</span> <span class="hljs-number">192</span><span class="hljs-string">,</span> <span class="hljs-number">228</span><span class="hljs-string">]</span>  <span class="hljs-comment"># web browsers</span>
      <span class="hljs-bullet">-</span> <span class="hljs-attr">"shortcut icon":</span> <span class="hljs-string">[196]</span>                   <span class="hljs-comment"># Android</span>
      <span class="hljs-bullet">-</span> <span class="hljs-attr">"apple-touch-icon":</span> <span class="hljs-string">[120,</span> <span class="hljs-number">152</span><span class="hljs-string">,</span> <span class="hljs-number">180</span><span class="hljs-string">]</span>      <span class="hljs-comment"># iOS</span>
  <span class="hljs-attr">navigation:</span> <span class="hljs-literal">true</span>         <span class="hljs-comment"># includes previous and next links (`true` by default)</span>
  <span class="hljs-attr">image:</span> <span class="hljs-literal">true</span>              <span class="hljs-comment"># includes image (`true` by default)</span>
  <span class="hljs-attr">og:</span> <span class="hljs-literal">true</span>                 <span class="hljs-comment"># includes Open Graph meta tags (`true` by default)</span>
  <span class="hljs-attr">articles:</span> <span class="hljs-string">"blog"</span>         <span class="hljs-comment"># articles' section (`blog` by default)</span>
  <span class="hljs-attr">twitter:</span> <span class="hljs-literal">true</span>            <span class="hljs-comment"># includes Twitter/X Card meta tags (`true` by default)</span>
  <span class="hljs-attr">mastodon:</span> <span class="hljs-literal">true</span>           <span class="hljs-comment"># includes Mastodon meta tags (`true` by default)</span>
  <span class="hljs-attr">dc:</span> <span class="hljs-literal">false</span>                <span class="hljs-comment"># includes Dublin Core meta tags (`false` by default)</span>
  <span class="hljs-attr">data:</span> <span class="hljs-literal">false</span>              <span class="hljs-comment"># includes JSON-LD structured data (`false` by default)</span></code></pre>
<h2 id="debug">debug</h2>
<p>Active le <em>mode debug</em>, utilisé pour afficher des informations de débogage comme des journaux très verbeux, le dump Twig, le profileur Twig, le sourcemap SCSS, etc.</p>
<pre><code class="language-yaml hljs yaml" translate="no"><span class="hljs-attr">debug:</span> <span class="hljs-literal">true</span></code></pre>
<p>Il existe deux autres façons d’activer le <em>mode debug</em> :</p>
<ol>
<li>Exécuter une commande avec l’option <code translate="no">-vvv</code></li>
<li>Définir la variable d’environnement <code translate="no">CECIL_DEBUG</code> à <code translate="no">true</code></li>
</ol>
<hr>]]>
    </content>
  </entry>
  <entry xml:lang="fr">
    <id>https://cecil.app/fr/documentation/configuration/langues/</id>
    <title>Langues</title>
    <published>2026-03-27T00:00:00+00:00</published>
    <updated>2026-10-05T00:00:00+00:00</updated>
    <link href="https://cecil.app/fr/documentation/configuration/langues/" rel="alternate" type="text/html" />
    <content type="html">
      <![CDATA[<h1>Langues</h1>
<h2 id="language">language</h2>
<p>Langue principale, définie par son code.</p>
<pre><code class="language-yaml hljs yaml" translate="no"><span class="hljs-attr">language:</span> <span class="hljs-string">&lt;code&gt;</span> <span class="hljs-comment"># unique code (`en` by default)</span></code></pre>
<p>Par défaut, seuls les chemins des pages des autres <a href="#languages">langues</a> 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 :</p>
<pre><code class="language-yaml hljs yaml" translate="no"><span class="hljs-comment">#language: &lt;code&gt;</span>
<span class="hljs-attr">language:</span>
  <span class="hljs-attr">code:</span> <span class="hljs-string">&lt;code&gt;</span>
  <span class="hljs-attr">prefix:</span> <span class="hljs-literal">true</span></code></pre>
<aside class="note note-info"><p>Quand <code translate="no">prefix</code> est défini à <code translate="no">true</code>, un alias est automatiquement créé pour la page d’accueil afin de rediriger de <code translate="no">/</code> vers <code translate="no">/&lt;code&gt;/</code>.</p></aside>
<h2 id="languages">languages</h2>
<p>Options des langues disponibles, utilisées pour la localisation des <a href="/fr/documentation/contenu/multilingue/">pages</a> et des <a href="/fr/documentation/templates/localisation/">templates</a>.</p>
<pre><code class="language-yaml hljs yaml" translate="no"><span class="hljs-attr">languages:</span>
  <span class="hljs-bullet">-</span> <span class="hljs-attr">code:</span> <span class="hljs-string">&lt;code&gt;</span>          <span class="hljs-comment"># unique code (e.g.: `en`, `fr`, 'en-US', `fr-CA`)</span>
    <span class="hljs-attr">name:</span> <span class="hljs-string">&lt;name&gt;</span>          <span class="hljs-comment"># human readable name (e.g.: `Français`)</span>
    <span class="hljs-attr">locale:</span> <span class="hljs-string">&lt;locale&gt;</span>      <span class="hljs-comment"># locale code (`language_COUNTRY`, e.g.: `en_US`, `fr_FR`, `fr_CA`)</span>
    <span class="hljs-attr">enabled:</span> <span class="hljs-string">&lt;true|false&gt;</span> <span class="hljs-comment"># enabled or not (`true` by default)</span></code></pre>
<p><em>Exemple :</em></p>
<pre><code class="language-yaml hljs yaml" translate="no"><span class="hljs-attr">language:</span> <span class="hljs-string">en</span>
<span class="hljs-attr">languages:</span>
  <span class="hljs-bullet">-</span> <span class="hljs-attr">code:</span> <span class="hljs-string">en</span>
    <span class="hljs-attr">name:</span> <span class="hljs-string">English</span>
    <span class="hljs-attr">locale:</span> <span class="hljs-string">en_US</span>
  <span class="hljs-bullet">-</span> <span class="hljs-attr">code:</span> <span class="hljs-string">fr</span>
    <span class="hljs-attr">name:</span> <span class="hljs-string">Français</span>
    <span class="hljs-attr">locale:</span> <span class="hljs-string">fr_FR</span></code></pre>
<aside class="note note-info"><p>Une <a href="/fr/documentation/configuration/codes-de-locale/">liste des codes de locale</a> est disponible si nécessaire.</p></aside>
<h3 id="localiser">Localiser</h3>
<p>Pour localiser des options de configuration, vous devez les stocker sous la clé <code translate="no">config</code> de la langue.</p>
<p><em>Exemple :</em></p>
<pre><code class="language-yaml hljs yaml" translate="no"><span class="hljs-attr">title:</span> <span class="hljs-string">"Cecil in english"</span>
<span class="hljs-attr">languages:</span>
  <span class="hljs-bullet">-</span> <span class="hljs-attr">code:</span> <span class="hljs-string">en</span>
    <span class="hljs-attr">name:</span> <span class="hljs-string">English</span>
    <span class="hljs-attr">locale:</span> <span class="hljs-string">en_US</span>
  <span class="hljs-bullet">-</span> <span class="hljs-attr">code:</span> <span class="hljs-string">fr</span>
    <span class="hljs-attr">name:</span> <span class="hljs-string">Français</span>
    <span class="hljs-attr">locale:</span> <span class="hljs-string">fr_FR</span>
    <span class="hljs-attr">config:</span>
      <span class="hljs-attr">title:</span> <span class="hljs-string">"Cecil en français"</span></code></pre>
<aside class="note note-info"><p>Dans les <a href="/fr/documentation/templates/">templates</a>, vous pouvez accéder à une option avec <code translate="no">{{ site.&lt;option&gt; }}</code>, par exemple <code translate="no">{{ site.title }}</code>.<br>
Si une option n’est pas disponible dans la langue actuelle (ex. : <code translate="no">fr</code>), elle revient à la valeur globale (ex. : <code translate="no">en</code>).</p></aside>]]>
    </content>
  </entry>
  <entry xml:lang="fr">
    <id>https://cecil.app/fr/documentation/configuration/pages/</id>
    <title>Pages</title>
    <published>2026-03-27T00:00:00+00:00</published>
    <updated>2026-10-05T00:00:00+00:00</updated>
    <link href="https://cecil.app/fr/documentation/configuration/pages/" rel="alternate" type="text/html" />
    <content type="html">
      <![CDATA[<h1>Pages</h1>
<h2 id="pages-dir">pages.dir</h2>
<p>Répertoire source des pages (<code translate="no">pages</code> par défaut).</p>
<pre><code class="language-yaml hljs yaml" translate="no"><span class="hljs-attr">pages:</span>
  <span class="hljs-attr">dir:</span> <span class="hljs-string">pages</span></code></pre>
<h2 id="pages-ext">pages.ext</h2>
<p>Extensions des fichiers de pages.</p>
<pre><code class="language-yaml hljs yaml" translate="no"><span class="hljs-attr">pages:</span>
  <span class="hljs-attr">ext:</span> <span class="hljs-string">[md,</span> <span class="hljs-string">markdown,</span> <span class="hljs-string">mdown,</span> <span class="hljs-string">mkdn,</span> <span class="hljs-string">mkd,</span> <span class="hljs-string">text,</span> <span class="hljs-string">txt]</span></code></pre>
<h2 id="pages-exclude">pages.exclude</h2>
<p>Répertoires, chemins et noms de fichiers à exclure (accepte les glob, les chaînes et les expressions régulières).</p>
<pre><code class="language-yaml hljs yaml" translate="no"><span class="hljs-attr">pages:</span>
  <span class="hljs-attr">exclude:</span> <span class="hljs-string">['vendor',</span> <span class="hljs-string">'node_modules'</span><span class="hljs-string">,</span> <span class="hljs-string">'*.scss'</span><span class="hljs-string">,</span> <span class="hljs-string">'/\.bck$/'</span><span class="hljs-string">]</span></code></pre>
<h2 id="pages-prefix-separator">pages.prefix.separator</h2>
<p>Liste des caractères utilisés comme séparateur entre un préfixe de nom de fichier (<code translate="no">date</code> ou <code translate="no">weight</code>) et le slug.</p>
<pre><code class="language-yaml hljs yaml" translate="no"><span class="hljs-attr">pages:</span>
  <span class="hljs-attr">prefix:</span>
    <span class="hljs-attr">separator:</span> <span class="hljs-string">['-',</span> <span class="hljs-string">'_'</span><span class="hljs-string">]</span></code></pre>
<h2 id="pages-sortby">pages.sortby</h2>
<p>Méthode de tri par défaut des collections.</p>
<pre><code class="language-yaml hljs yaml" translate="no"><span class="hljs-attr">pages:</span>
  <span class="hljs-attr">sortby:</span> <span class="hljs-string">date</span> <span class="hljs-comment"># `date`, `updated`, `title` ou `weight`</span>
  <span class="hljs-comment"># ou</span>
  <span class="hljs-attr">sortby:</span>
    <span class="hljs-attr">variable:</span> <span class="hljs-string">date</span>    <span class="hljs-comment"># `date`, `updated`, `title` ou `weight`</span>
    <span class="hljs-attr">desc_title:</span> <span class="hljs-literal">false</span> <span class="hljs-comment"># tri par titre décroissant</span>
    <span class="hljs-attr">reverse:</span> <span class="hljs-literal">false</span>    <span class="hljs-comment"># inverse l’ordre de tri</span></code></pre>
<h2 id="pages-pagination">pages.pagination</h2>
<p>La pagination est disponible pour les pages de liste (<em>type</em> <code translate="no">homepage</code>, <code translate="no">section</code> ou <code translate="no">term</code>).</p>
<pre><code class="language-yaml hljs yaml" translate="no"><span class="hljs-attr">pages:</span>
  <span class="hljs-attr">pagination:</span>
    <span class="hljs-attr">max:</span> <span class="hljs-number">5</span>     <span class="hljs-comment"># nombre maximum d’entrées par page</span>
    <span class="hljs-attr">path:</span> <span class="hljs-string">page</span> <span class="hljs-comment"># chemin de la page paginée</span></code></pre>
<h3 id="desactiver-la-pagination">Désactiver la pagination</h3>
<p>La pagination peut être désactivée :</p>
<pre><code class="language-yaml hljs yaml" translate="no"><span class="hljs-attr">pages:</span>
  <span class="hljs-attr">pagination:</span> <span class="hljs-literal">false</span></code></pre>
<h2 id="pages-paths">pages.paths</h2>
<p>Applique un <a href="/fr/documentation/contenu/front-matter/#variables-predefinies"><code translate="no">path</code></a> personnalisé à toutes les pages d’une <strong><em>section</em></strong>.</p>
<pre><code class="language-yaml hljs yaml" translate="no"><span class="hljs-attr">pages:</span>
  <span class="hljs-attr">paths:</span>
    <span class="hljs-bullet">-</span> <span class="hljs-attr">section:</span> <span class="hljs-string">&lt;section’s</span> <span class="hljs-string">ID&gt;</span>
      <span class="hljs-attr">path:</span> <span class="hljs-string">&lt;path</span> <span class="hljs-string">of</span> <span class="hljs-string">pages&gt;</span></code></pre>
<h3 id="emplacements-des-variables-de-chemin">Emplacements des variables de chemin</h3>
<ul>
<li><code translate="no">:year</code></li>
<li><code translate="no">:month</code></li>
<li><code translate="no">:day</code></li>
<li><code translate="no">:section</code></li>
<li><code translate="no">:slug</code></li>
</ul>
<p><em>Exemple :</em></p>
<pre><code class="language-yaml hljs yaml" translate="no"><span class="hljs-attr">pages:</span>
  <span class="hljs-attr">paths:</span>
    <span class="hljs-bullet">-</span> <span class="hljs-attr">section:</span> <span class="hljs-string">Blog</span>
      <span class="hljs-attr">path:</span> <span class="hljs-string">:section/:year/:month/:day/:slug</span> <span class="hljs-comment"># ex. : /blog/2020/12/01/my-post/</span>
<span class="hljs-comment"># localized</span>
<span class="hljs-attr">languages:</span>
  <span class="hljs-bullet">-</span> <span class="hljs-attr">code:</span> <span class="hljs-string">fr</span>
    <span class="hljs-attr">name:</span> <span class="hljs-string">Français</span>
    <span class="hljs-attr">locale:</span> <span class="hljs-string">fr_FR</span>
    <span class="hljs-attr">config:</span>
      <span class="hljs-attr">pages:</span>
        <span class="hljs-attr">paths:</span>
          <span class="hljs-bullet">-</span> <span class="hljs-attr">section:</span> <span class="hljs-string">Blog</span>
            <span class="hljs-attr">path:</span> <span class="hljs-string">blogue/:year/:month/:day/:slug</span> <span class="hljs-comment"># ex. : /blogue/2020/12/01/mon-billet/</span></code></pre>
<h2 id="pages-frontmatter">pages.frontmatter</h2>
<p>Format du front matter des pages (<code translate="no">yaml</code> par défaut, accepte aussi <code translate="no">ini</code>, <code translate="no">toml</code> et <code translate="no">json</code>).</p>
<pre><code class="language-yaml hljs yaml" translate="no"><span class="hljs-attr">pages:</span>
  <span class="hljs-attr">frontmatter:</span> <span class="hljs-string">yaml</span></code></pre>
<h2 id="pages-body">pages.body</h2>
<p>Options du corps des pages.</p>
<aside class="note note-info"><p>Pour savoir comment ces options influencent votre contenu, voir la documentation <em><a href="/fr/documentation/contenu/markdown/">Contenu &gt; Markdown</a></em>.</p></aside>
<h3 id="pages-body-toc">pages.body.toc</h3>
<p>En-têtes utilisés pour construire la table des matières (<code translate="no">[h2, h3]</code> par défaut).</p>
<pre><code class="language-yaml hljs yaml" translate="no"><span class="hljs-attr">pages:</span>
  <span class="hljs-attr">body:</span>
    <span class="hljs-attr">toc:</span> <span class="hljs-string">[h2,</span> <span class="hljs-string">h3]</span></code></pre>
<h3 id="pages-body-highlight">pages.body.highlight</h3>
<p>Active la coloration syntaxique du code (<code translate="no">true</code> par défaut).</p>
<pre><code class="language-yaml hljs yaml" translate="no"><span class="hljs-attr">pages:</span>
  <span class="hljs-attr">body:</span>
    <span class="hljs-attr">highlight:</span> <span class="hljs-literal">false</span> <span class="hljs-comment"># définissez à false pour désactiver la coloration syntaxique</span></code></pre>
<h3 id="pages-body-images">pages.body.images</h3>
<p>Options de gestion des images.</p>
<pre><code class="language-yaml hljs yaml" translate="no"><span class="hljs-attr">pages:</span>
  <span class="hljs-attr">body:</span>
    <span class="hljs-attr">images:</span>
      <span class="hljs-attr">formats:</span> <span class="hljs-string">[]</span>       <span class="hljs-comment"># ajoute des formats d’image alternatifs comme `source` (ex. `[avif, webp]`, tableau vide par défaut)</span>
      <span class="hljs-attr">resize:</span> <span class="hljs-number">0</span>         <span class="hljs-comment"># redimensionne toutes les images à &lt;width&gt; (en pixels, `0` pour désactiver)</span>
      <span class="hljs-attr">responsive:</span> <span class="hljs-literal">false</span> <span class="hljs-comment"># ajoute des variantes responsives à l’attribut `srcset` (`false` par défaut)</span>
      <span class="hljs-attr">lazy:</span> <span class="hljs-literal">true</span>        <span class="hljs-comment"># ajoute l’attribut `loading="lazy"` (`true` par défaut)</span>
      <span class="hljs-attr">decoding:</span> <span class="hljs-literal">true</span>    <span class="hljs-comment"># ajoute l’attribut `decoding="async"` (`true` par défaut)</span>
      <span class="hljs-attr">caption:</span> <span class="hljs-literal">false</span>    <span class="hljs-comment"># place l’image dans un élément &lt;figure&gt; et ajoute une &lt;figcaption&gt; contenant le titre (`false` par défaut)</span>
      <span class="hljs-attr">placeholder:</span> <span class="hljs-string">''</span>   <span class="hljs-comment"># remplit l’arrière-plan de &lt;img&gt; avant le chargement ('color' ou 'lqip', vide par défaut)</span>
      <span class="hljs-attr">class:</span> <span class="hljs-string">''</span>         <span class="hljs-comment"># définit une classe par défaut sur chaque image (vide par défaut)</span>
      <span class="hljs-attr">dark_suffix:</span> <span class="hljs-string">''</span>   <span class="hljs-comment"># suffixe de l’image variante sombre (ex. `.dark`), désactivé par défaut</span>
      <span class="hljs-attr">mobile_suffix:</span> <span class="hljs-string">''</span> <span class="hljs-comment"># suffixe de l’image variante mobile (ex. `.mobile`), désactivé par défaut</span>
      <span class="hljs-attr">mobile_media_query:</span> <span class="hljs-string">'(max-width: 767px)'</span> <span class="hljs-comment"># media query de la `&lt;source&gt;` de la variante mobile</span>
      <span class="hljs-attr">remote:</span>           <span class="hljs-comment"># traitement des images distantes (mettre à `false` pour désactiver)</span>
        <span class="hljs-attr">fallback:</span>         <span class="hljs-comment"># chemin de l’image de secours, stockée dans le répertoire assets (vide par défaut)</span></code></pre>
<aside class="note note-warning"><p>Depuis la version <ins>8.41.0</ins>, l’option <code translate="no">pages.body.images.resize</code> sert à redimensionner les images à une largeur précise, et non plus à activer la fonctionnalité de redimensionnement (activée systématiquement).</p></aside>
<aside class="note note-important"><p>Les options globales, comme les largeurs et tailles des images responsives, sont configurables dans la section <a href="/fr/documentation/configuration/assets/#assets-images"><code translate="no">assets.images</code></a>.</p></aside>
<aside class="note note-info"><p>Les images distantes sont téléchargées et converties en <em>Assets</em> pour être manipulées. Vous pouvez désactiver ce comportement en définissant l’option <code translate="no">pages.body.images.remote.enabled</code> à <code translate="no">false</code>.</p></aside>
<aside class="note note-tip"><p>Lorsque <code translate="no">dark_suffix</code> est défini (par ex. <code translate="no">dark_suffix: .dark</code>), Cecil cherche automatiquement une variante sombre de chaque image (par ex. <code translate="no">photo.dark.jpg</code> à côté de <code translate="no">photo.jpg</code>). Si elle est trouvée, l’image est entourée d’un élément <code translate="no">&lt;picture&gt;</code> avec une balise <code translate="no">&lt;source media="(prefers-color-scheme: dark)"&gt;</code> pour un basculement automatique clair/sombre. Cela fonctionne avec <code translate="no">formats</code> et <code translate="no">responsive</code>.</p>
<p>De la même manière, lorsque <code translate="no">mobile_suffix</code> est défini (par ex. <code translate="no">mobile_suffix: .mobile</code>), Cecil cherche une variante mobile de chaque image (par ex. <code translate="no">photo.mobile.jpg</code> à côté de <code translate="no">photo.jpg</code>) et ajoute une balise <code translate="no">&lt;source&gt;</code> avec la media query <code translate="no">mobile_media_query</code> (<code translate="no">(max-width: 767px)</code> par défaut). Si <code translate="no">dark_suffix</code> est également défini, la variante sombre de l’image mobile (par ex. <code translate="no">photo.mobile.dark.jpg</code>) est utilisée sur mobile en mode sombre. Les sources mobiles sont placées avant les sources sombres, afin que la variante mobile soit prioritaire.</p></aside>
<h3 id="pages-body-links">pages.body.links</h3>
<p>Options de gestion des liens.</p>
<pre><code class="language-yaml hljs yaml" translate="no"><span class="hljs-attr">pages:</span>
  <span class="hljs-attr">body:</span>
    <span class="hljs-attr">links:</span>
      <span class="hljs-attr">embed:</span>
        <span class="hljs-attr">enabled:</span> <span class="hljs-literal">false</span>     <span class="hljs-comment"># transforme les liens en contenu embarqué si possible (`false` par défaut)</span>
        <span class="hljs-attr">video:</span> <span class="hljs-string">[mp4,</span> <span class="hljs-string">webm]</span> <span class="hljs-comment"># extensions des fichiers vidéo</span>
        <span class="hljs-attr">audio:</span> <span class="hljs-string">[mp3]</span>       <span class="hljs-comment"># extensions des fichiers audio</span>
      <span class="hljs-attr">external:</span>
        <span class="hljs-attr">blank:</span> <span class="hljs-literal">false</span>     <span class="hljs-comment"># si `true`, ouvre le lien externe dans un nouvel onglet</span>
        <span class="hljs-attr">noopener:</span> <span class="hljs-literal">true</span>   <span class="hljs-comment"># si `true`, ajoute `noopener` à l’attribut `rel`</span>
        <span class="hljs-attr">noreferrer:</span> <span class="hljs-literal">true</span> <span class="hljs-comment"># si `true`, ajoute `noreferrer` à l’attribut `rel`</span>
        <span class="hljs-attr">nofollow:</span> <span class="hljs-literal">false</span>  <span class="hljs-comment"># si `true`, ajoute `nofollow` à l’attribut `rel`</span></code></pre>
<h3 id="pages-body-excerpt">pages.body.excerpt</h3>
<p>Options de gestion des extraits.</p>
<pre><code class="language-yaml hljs yaml" translate="no"><span class="hljs-attr">pages:</span>
  <span class="hljs-attr">body:</span>
    <span class="hljs-attr">excerpt:</span>
      <span class="hljs-attr">separator:</span> <span class="hljs-string">excerpt|break</span> <span class="hljs-comment"># chaîne utilisée comme séparateur (`excerpt|break` par défaut)</span>
      <span class="hljs-attr">capture:</span> <span class="hljs-string">before</span>          <span class="hljs-comment"># partie à capturer, `before` ou `after` le séparateur (`before` par défaut)</span></code></pre>
<h2 id="pages-virtual">pages.virtual</h2>
<p>Les pages virtuelles sont la meilleure façon de créer des pages sans contenu (<strong>front matter uniquement</strong>).</p>
<p>Elles consistent en une liste de pages avec un <code translate="no">path</code> et quelques variables de front matter.</p>
<p><em>Exemple :</em></p>
<pre><code class="language-yaml hljs yaml" translate="no"><span class="hljs-attr">pages:</span>
  <span class="hljs-attr">virtual:</span>
    <span class="hljs-bullet">-</span> <span class="hljs-attr">path:</span> <span class="hljs-string">code</span>
      <span class="hljs-attr">redirect:</span> <span class="hljs-string">https://github.com/ArnaudLigny</span></code></pre>
<h2 id="pages-default">pages.default</h2>
<p>Les pages par défaut sont des pages créées automatiquement par Cecil (à partir de modèles intégrés) :</p>
<pre><code class="language-yaml hljs yaml" translate="no"><span class="hljs-attr">pages:</span>
  <span class="hljs-attr">default:</span>
    <span class="hljs-attr">index:</span>
      <span class="hljs-attr">path:</span> <span class="hljs-string">''</span>
      <span class="hljs-attr">title:</span> <span class="hljs-string">Accueil</span>
      <span class="hljs-attr">published:</span> <span class="hljs-literal">true</span>
    <span class="hljs-attr">404:</span>
      <span class="hljs-attr">path:</span> <span class="hljs-number">404</span>
      <span class="hljs-attr">title:</span> <span class="hljs-string">Page</span> <span class="hljs-string">introuvable</span>
      <span class="hljs-attr">layout:</span> <span class="hljs-number">404</span>
      <span class="hljs-attr">uglyurl:</span> <span class="hljs-literal">true</span>
      <span class="hljs-attr">published:</span> <span class="hljs-literal">true</span>
      <span class="hljs-attr">excluded:</span> <span class="hljs-literal">true</span>
    <span class="hljs-attr">robots:</span>
      <span class="hljs-attr">path:</span> <span class="hljs-string">robots</span>
      <span class="hljs-attr">title:</span> <span class="hljs-string">Robots.txt</span>
      <span class="hljs-attr">layout:</span> <span class="hljs-string">robots</span>
      <span class="hljs-attr">output:</span> <span class="hljs-string">txt</span>
      <span class="hljs-attr">published:</span> <span class="hljs-literal">true</span>
      <span class="hljs-attr">excluded:</span> <span class="hljs-literal">true</span>
      <span class="hljs-attr">multilingual:</span> <span class="hljs-literal">false</span>
    <span class="hljs-attr">sitemap:</span>
      <span class="hljs-attr">path:</span> <span class="hljs-string">sitemap</span>
      <span class="hljs-attr">title:</span> <span class="hljs-string">Plan</span> <span class="hljs-string">de</span> <span class="hljs-string">site</span> <span class="hljs-string">XML</span>
      <span class="hljs-attr">layout:</span> <span class="hljs-string">sitemap</span>
      <span class="hljs-attr">output:</span> <span class="hljs-string">xml</span>
      <span class="hljs-attr">changefreq:</span> <span class="hljs-string">monthly</span>
      <span class="hljs-attr">priority:</span> <span class="hljs-number">0.5</span>
      <span class="hljs-attr">published:</span> <span class="hljs-literal">true</span>
      <span class="hljs-attr">excluded:</span> <span class="hljs-literal">true</span>
      <span class="hljs-attr">multilingual:</span> <span class="hljs-literal">false</span>
    <span class="hljs-attr">xsl/atom:</span>
      <span class="hljs-attr">path:</span> <span class="hljs-string">xsl/atom</span>
      <span class="hljs-attr">layout:</span> <span class="hljs-string">feed</span>
      <span class="hljs-attr">output:</span> <span class="hljs-string">xsl</span>
      <span class="hljs-attr">uglyurl:</span> <span class="hljs-literal">true</span>
      <span class="hljs-attr">published:</span> <span class="hljs-literal">true</span>
      <span class="hljs-attr">excluded:</span> <span class="hljs-literal">true</span>
    <span class="hljs-attr">xsl/rss:</span>
      <span class="hljs-attr">path:</span> <span class="hljs-string">xsl/rss</span>
      <span class="hljs-attr">layout:</span> <span class="hljs-string">feed</span>
      <span class="hljs-attr">output:</span> <span class="hljs-string">xsl</span>
      <span class="hljs-attr">uglyurl:</span> <span class="hljs-literal">true</span>
      <span class="hljs-attr">published:</span> <span class="hljs-literal">false</span>
      <span class="hljs-attr">excluded:</span> <span class="hljs-literal">true</span></code></pre>
<aside class="note note-info"><p>La structure est presque identique à celle de <a href="#pages-virtual"><code translate="no">pages.virtual</code></a>, à l’exception de la clé nommée.</p></aside>
<p>Chaque page peut être :</p>
<ol>
<li>désactivée : <code translate="no">published: false</code></li>
<li>exclue des pages de liste : <code translate="no">excluded: true</code></li>
<li>exclue de la localisation : <code translate="no">multilingual: false</code></li>
</ol>
<aside class="note note-tip"><p>Depuis la version 8.68.0, vous pouvez surcharger la page <code translate="no">robots.txt</code> par défaut en créant une page avec le même <code translate="no">path</code> :</p>
<p><em>pages/robots.md</em></p>
<pre><code class="language-yaml hljs yaml" translate="no"><span class="hljs-meta">---</span>
<span class="hljs-attr">layout:</span> <span class="hljs-string">robots</span>
<span class="hljs-attr">output:</span> <span class="hljs-string">txt</span>
<span class="hljs-meta">---</span>
<span class="hljs-attr">User-agent:</span> <span class="hljs-string">AI-bot</span>
<span class="hljs-attr">Disallow:</span> <span class="hljs-string">/</span></code></pre></aside>
<h2 id="pages-generators">pages.generators</h2>
<p>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.</p>
<p>Voici la liste des générateurs fournis par Cecil, dans un ordre défini :</p>
<pre><code class="language-yaml hljs yaml" translate="no"><span class="hljs-attr">pages:</span>
  <span class="hljs-attr">generators:</span>
    <span class="hljs-attr">10:</span> <span class="hljs-string">'Cecil\Generator\DefaultPages'</span>
    <span class="hljs-attr">20:</span> <span class="hljs-string">'Cecil\Generator\VirtualPages'</span>
    <span class="hljs-attr">30:</span> <span class="hljs-string">'Cecil\Generator\ExternalBody'</span>
    <span class="hljs-attr">40:</span> <span class="hljs-string">'Cecil\Generator\Section'</span>
    <span class="hljs-attr">50:</span> <span class="hljs-string">'Cecil\Generator\Taxonomy'</span>
    <span class="hljs-attr">60:</span> <span class="hljs-string">'Cecil\Generator\Homepage'</span>
    <span class="hljs-attr">70:</span> <span class="hljs-string">'Cecil\Generator\Pagination'</span>
    <span class="hljs-attr">80:</span> <span class="hljs-string">'Cecil\Generator\Alias'</span>
    <span class="hljs-attr">90:</span> <span class="hljs-string">'Cecil\Generator\Redirect'</span></code></pre>
<aside class="note note-tip"><p>Vous pouvez étendre Cecil avec un <a href="/fr/documentation/developpeurs/etendre/#generateur-de-pages">générateur de pages</a>.</p></aside>
<h2 id="pages-subsets">pages.subsets</h2>
<p>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 :</p>
<pre><code class="language-bash hljs bash" translate="no">cecil build --render-subset=&lt;name&gt;</code></pre>
<pre><code class="language-yaml hljs yaml" translate="no"><span class="hljs-attr">pages:</span>
  <span class="hljs-attr">subsets:</span>
    <span class="hljs-string">&lt;name&gt;:</span>
      <span class="hljs-attr">path:</span> <span class="hljs-string">&lt;path&gt;</span> <span class="hljs-comment"># chemin glob ou chaîne (ex. `blog/*`, `blog`)</span>
      <span class="hljs-attr">language:</span> <span class="hljs-string">&lt;language&gt;</span> <span class="hljs-comment"># code de langue (ex. `en`, `fr`)</span>
      <span class="hljs-attr">output:</span> <span class="hljs-string">&lt;output&gt;</span> <span class="hljs-comment"># format de sortie (ex. `html`, `atom`)</span></code></pre>
<p><em>Exemple :</em></p>
<pre><code class="language-yaml hljs yaml" translate="no"><span class="hljs-attr">pages:</span>
  <span class="hljs-attr">subsets:</span>
    <span class="hljs-attr">blog_en:</span>
      <span class="hljs-attr">path:</span> <span class="hljs-string">blog</span>
      <span class="hljs-attr">language:</span> <span class="hljs-string">en</span>
      <span class="hljs-attr">output:</span> <span class="hljs-string">html</span>
    <span class="hljs-attr">search_index:</span>
      <span class="hljs-attr">path:</span> <span class="hljs-string">'*'</span>
      <span class="hljs-attr">output:</span> <span class="hljs-string">json</span></code></pre>
<hr>]]>
    </content>
  </entry>
  <entry xml:lang="fr">
    <id>https://cecil.app/fr/documentation/configuration/donnees-et-statiques/</id>
    <title>Données et fichiers statiques</title>
    <published>2026-03-27T00:00:00+00:00</published>
    <updated>2026-10-05T00:00:00+00:00</updated>
    <link href="https://cecil.app/fr/documentation/configuration/donnees-et-statiques/" rel="alternate" type="text/html" />
    <content type="html">
      <![CDATA[<h1>Données et fichiers statiques</h1>
<h2 id="donnees">Données</h2>
<p>Emplacement des fichiers de données et types d’extensions pris en charge.</p>
<p>Formats pris en charge : YAML, JSON, XML et CSV.</p>
<h3 id="data-dir">data.dir</h3>
<p>Répertoire source des données (<code translate="no">data</code> par défaut).</p>
<pre><code class="language-yaml hljs yaml" translate="no"><span class="hljs-attr">data:</span>
  <span class="hljs-attr">dir:</span> <span class="hljs-string">data</span></code></pre>
<h3 id="data-ext">data.ext</h3>
<p>Tableau des extensions de fichiers.</p>
<pre><code class="language-yaml hljs yaml" translate="no"><span class="hljs-attr">data:</span>
  <span class="hljs-attr">ext:</span> <span class="hljs-string">[yaml,</span> <span class="hljs-string">yml,</span> <span class="hljs-string">json,</span> <span class="hljs-string">xml,</span> <span class="hljs-string">csv]</span></code></pre>
<h3 id="data-load">data.load</h3>
<p>Active la collection <code translate="no">site.data</code> (<code translate="no">true</code> par défaut).</p>
<pre><code class="language-yaml hljs yaml" translate="no"><span class="hljs-attr">data:</span>
  <span class="hljs-attr">load:</span> <span class="hljs-literal">true</span></code></pre>
<hr>
<h2 id="fichiers-statiques">Fichiers statiques</h2>
<p>Gestion des fichiers statiques copiés (PDF, polices, etc.).</p>
<aside class="note note-important"><p>Vous devez placer les fichiers d’assets, utilisés par <a href="/fr/documentation/assets/#asset"><code translate="no">asset()</code></a>, dans le <a href="/fr/documentation/configuration/assets/#assets-dir"><code translate="no">répertoire assets</code></a> afin d’éviter des copies de fichiers inutiles.</p></aside>
<h3 id="static-dir">static.dir</h3>
<p>Répertoire source des fichiers statiques (<code translate="no">static</code> par défaut).</p>
<pre><code class="language-yaml hljs yaml" translate="no"><span class="hljs-attr">static:</span>
  <span class="hljs-attr">dir:</span> <span class="hljs-string">static</span></code></pre>
<h3 id="static-target">static.target</h3>
<p>Répertoire vers lequel les fichiers statiques sont copiés (<code translate="no">root</code> par défaut).</p>
<pre><code class="language-yaml hljs yaml" translate="no"><span class="hljs-attr">static:</span>
  <span class="hljs-attr">target:</span> <span class="hljs-string">''</span></code></pre>
<h3 id="static-exclude">static.exclude</h3>
<p>Liste des fichiers exclus. Accepte les glob, les chaînes et les expressions régulières.</p>
<pre><code class="language-yaml hljs yaml" translate="no"><span class="hljs-attr">static:</span>
  <span class="hljs-attr">exclude:</span> <span class="hljs-string">['sass',</span> <span class="hljs-string">'scss'</span><span class="hljs-string">,</span> <span class="hljs-string">'*.scss'</span><span class="hljs-string">,</span> <span class="hljs-string">'package*.json'</span><span class="hljs-string">,</span> <span class="hljs-string">'node_modules'</span><span class="hljs-string">]</span></code></pre>
<aside class="note note-tip"><p>Si vous utilisez <a href="https://icons.getbootstrap.com" target="_blank" rel="noopener noreferrer">Bootstrap Icons</a>, vous pouvez exclure <code translate="no">node_modules</code> sauf <code translate="no">node_modules/bootstrap-icons</code> avec une expression régulière :</p>
<pre><code class="language-yaml hljs yaml" translate="no"><span class="hljs-attr">exclude:</span> <span class="hljs-string">['sass',</span> <span class="hljs-string">'scss'</span><span class="hljs-string">,</span> <span class="hljs-string">'*.scss'</span><span class="hljs-string">,</span> <span class="hljs-string">'package*.json'</span><span class="hljs-string">,</span> <span class="hljs-string">'#node_modules/(?!bootstrap-icons)#'</span><span class="hljs-string">]</span></code></pre></aside>
<h3 id="static-load">static.load</h3>
<p>Active la collection <code translate="no">site.static</code> (<code translate="no">false</code> par défaut).</p>
<pre><code class="language-yaml hljs yaml" translate="no"><span class="hljs-attr">static:</span>
  <span class="hljs-attr">load:</span> <span class="hljs-literal">false</span></code></pre>
<h3 id="static-mounts">static.mounts</h3>
<p>Permet de copier des fichiers ou répertoires spécifiques vers une destination spécifique.</p>
<pre><code class="language-yaml hljs yaml" translate="no"><span class="hljs-attr">static:</span>
  <span class="hljs-attr">mounts:</span> <span class="hljs-string">[]</span></code></pre>
<h3 id="exemple-de-static">exemple de static</h3>
<pre><code class="language-yaml hljs yaml" translate="no"><span class="hljs-attr">static:</span>
  <span class="hljs-attr">dir:</span> <span class="hljs-string">docs</span>
  <span class="hljs-attr">target:</span> <span class="hljs-string">docs</span>
  <span class="hljs-attr">exclude:</span> <span class="hljs-string">['sass',</span> <span class="hljs-string">'*.scss'</span><span class="hljs-string">,</span> <span class="hljs-string">'/\.bck$/'</span><span class="hljs-string">]</span>
  <span class="hljs-attr">load:</span> <span class="hljs-literal">true</span>
  <span class="hljs-attr">mounts:</span>
    <span class="hljs-bullet">-</span> <span class="hljs-attr">source/path/file.ext:</span> <span class="hljs-string">dest/path/file.ext</span>
    <span class="hljs-bullet">-</span> <span class="hljs-attr">node_modules/bootstrap-icons/font/fonts:</span> <span class="hljs-string">fonts</span></code></pre>]]>
    </content>
  </entry>
  <entry xml:lang="fr">
    <id>https://cecil.app/fr/documentation/configuration/assets/</id>
    <title>Assets</title>
    <published>2026-03-27T00:00:00+00:00</published>
    <updated>2026-10-05T00:00:00+00:00</updated>
    <link href="https://cecil.app/fr/documentation/configuration/assets/" rel="alternate" type="text/html" />
    <content type="html">
      <![CDATA[<h1>Assets</h1>
<p>Gestion des ressources (images, fichiers CSS et JS).</p>
<h2 id="assets-dir">assets.dir</h2>
<p>Répertoire source des ressources (<code translate="no">assets</code> par défaut).</p>
<pre><code class="language-yaml hljs yaml" translate="no"><span class="hljs-attr">assets:</span>
  <span class="hljs-attr">dir:</span> <span class="hljs-string">assets</span></code></pre>
<h2 id="assets-target">assets.target</h2>
<p>Répertoire où les fichiers de ressources distants et redimensionnés sont enregistrés (<code translate="no">root</code> par défaut).</p>
<pre><code class="language-yaml hljs yaml" translate="no"><span class="hljs-attr">assets:</span>
  <span class="hljs-attr">target:</span> <span class="hljs-string">''</span></code></pre>
<h2 id="assets-fingerprint">assets.fingerprint</h2>
<p>Active le fingerprinting (cache busting) pour les fichiers de ressources (<code translate="no">true</code> par défaut).</p>
<pre><code class="language-yaml hljs yaml" translate="no"><span class="hljs-attr">assets:</span>
  <span class="hljs-attr">fingerprint:</span> <span class="hljs-literal">true</span></code></pre>
<h2 id="assets-compile">assets.compile</h2>
<p>Active la compilation des fichiers <a href="https://sass-lang.com" target="_blank" rel="noopener noreferrer">Sass</a> (<code translate="no">true</code> par défaut). Voir la <a href="https://scssphp.github.io/scssphp/docs/#output-formatting" target="_blank" rel="noopener noreferrer">documentation de scssphp</a> pour les détails des options.</p>
<pre><code class="language-yaml hljs yaml" translate="no"><span class="hljs-attr">assets:</span>
  <span class="hljs-attr">compile:</span>
    <span class="hljs-attr">style:</span> <span class="hljs-string">expanded</span>      <span class="hljs-comment"># style de compilation (`expanded` ou `compressed`, `expanded` par défaut)</span>
    <span class="hljs-attr">import:</span> <span class="hljs-string">[sass,</span> <span class="hljs-string">scss]</span> <span class="hljs-comment"># liste des chemins importés (`[sass, scss, node_modules]` par défaut)</span>
    <span class="hljs-attr">sourcemap:</span> <span class="hljs-literal">false</span>     <span class="hljs-comment"># active les sourcemaps en mode debug (`false` par défaut)</span>
    <span class="hljs-attr">variables:</span> <span class="hljs-string">[]</span>        <span class="hljs-comment"># liste de variables préconfigurées (vide par défaut)</span></code></pre>
<aside class="note note-info"><p><code translate="no">sourcemap</code> sert à déboguer la compilation SCSS (<a href="/fr/documentation/configuration/site/#debug">mode debug</a> requis).</p></aside>
<h2 id="assets-minify">assets.minify</h2>
<p>Active la minification CSS et JS (<code translate="no">true</code> par défaut).</p>
<pre><code class="language-yaml hljs yaml" translate="no"><span class="hljs-attr">assets:</span>
  <span class="hljs-attr">minify:</span> <span class="hljs-literal">true</span></code></pre>
<h2 id="assets-images">assets.images</h2>
<p>Gestion des images.</p>
<pre><code class="language-yaml hljs yaml" translate="no"><span class="hljs-attr">assets:</span>
  <span class="hljs-attr">images:</span>
    <span class="hljs-attr">optimize:</span> <span class="hljs-literal">false</span> <span class="hljs-comment"># active l’optimisation d’images avec JpegOptim, Optipng, Pngquant 2, SVGO 1, Gifsicle, cwebp, avifenc (`false` par défaut)</span>
    <span class="hljs-attr">quality:</span> <span class="hljs-number">75</span>     <span class="hljs-comment"># qualité d’image pour `optimize` et `resize` (`75` par défaut)</span>
    <span class="hljs-attr">responsive:</span>
      <span class="hljs-attr">widths:</span> <span class="hljs-string">[480,</span> <span class="hljs-number">640</span><span class="hljs-string">,</span> <span class="hljs-number">768</span><span class="hljs-string">,</span> <span class="hljs-number">1024</span><span class="hljs-string">,</span> <span class="hljs-number">1366</span><span class="hljs-string">,</span> <span class="hljs-number">1600</span><span class="hljs-string">,</span> <span class="hljs-number">1920</span><span class="hljs-string">]</span> <span class="hljs-comment"># largeurs d’image pour l’attribut `srcset`</span>
      <span class="hljs-attr">sizes:</span>
        <span class="hljs-attr">default:</span> <span class="hljs-string">'100vw'</span> <span class="hljs-comment"># attribut `sizes` par défaut (`100vw` par défaut)</span></code></pre>
<h2 id="assets-images-cdn">assets.images.cdn</h2>
<p>L’URL des ressources image peut être facilement remplacée par une <code translate="no">url</code> de CDN fournie.</p>
<pre><code class="language-yaml hljs yaml" translate="no"><span class="hljs-attr">assets:</span>
  <span class="hljs-attr">images:</span>
    <span class="hljs-attr">cdn:</span>
      <span class="hljs-attr">enabled:</span> <span class="hljs-literal">false</span>  <span class="hljs-comment"># active Image CDN (`false` par défaut)</span>
      <span class="hljs-attr">canonical:</span> <span class="hljs-literal">true</span> <span class="hljs-comment"># `image_url` est canonique (au lieu d’un chemin relatif) (`true` par défaut)</span>
      <span class="hljs-attr">remote:</span> <span class="hljs-literal">true</span>    <span class="hljs-comment"># prend aussi en charge les images non locales (`true` par défaut)</span>
      <span class="hljs-attr">account:</span> <span class="hljs-string">'xxxx'</span> <span class="hljs-comment"># compte du fournisseur</span>
      <span class="hljs-attr">url:</span> <span class="hljs-string">'https://provider.tld/%account%/%image_url%?w=%width%&amp;q=%quality%&amp;format=%format%'</span></code></pre>
<p><code translate="no">url</code> est un modèle qui contient des variables :</p>
<ul>
<li><code translate="no">%account%</code> remplacé par l’option <code translate="no">assets.images.cdn.account</code></li>
<li><code translate="no">%image_url%</code> remplacé par l’URL canonique de l’image ou par <code translate="no">path</code></li>
<li><code translate="no">%width%</code> remplacé par la largeur de l’image</li>
<li><code translate="no">%quality%</code> remplacé par l’option <code translate="no">assets.images.quality</code></li>
<li><code translate="no">%format%</code> remplacé par le format de l’image</li>
</ul>
<p>Voir les <a href="/fr/documentation/assets/fournisseurs-cdn/"><strong>fournisseurs CDN</strong></a>.</p>
<h2 id="assets-remote-useragent">assets.remote.useragent</h2>
<p>User agent utilisé pour télécharger les ressources distantes.</p>
<pre><code class="language-yaml hljs yaml" translate="no"><span class="hljs-attr">assets:</span>
  <span class="hljs-attr">remote:</span>
    <span class="hljs-attr">useragent:</span>
      <span class="hljs-attr">default:</span> <span class="hljs-string">&lt;string&gt;</span> <span class="hljs-comment"># user agent par défaut</span>
      <span class="hljs-attr">useragent1:</span> <span class="hljs-string">&lt;string&gt;</span>
      <span class="hljs-attr">useragent2:</span> <span class="hljs-string">&lt;string&gt;</span></code></pre>]]>
    </content>
  </entry>
  <entry xml:lang="fr">
    <id>https://cecil.app/fr/documentation/configuration/layouts/</id>
    <title>Layouts</title>
    <published>2026-03-27T00:00:00+00:00</published>
    <updated>2026-10-05T00:00:00+00:00</updated>
    <link href="https://cecil.app/fr/documentation/configuration/layouts/" rel="alternate" type="text/html" />
    <content type="html">
      <![CDATA[<h1>Layouts</h1>
<p>Options des templates.</p>
<h2 id="layouts-dir">layouts.dir</h2>
<p>Répertoire source des templates (<code translate="no">layouts</code> par défaut).</p>
<pre><code class="language-yaml hljs yaml" translate="no"><span class="hljs-attr">layouts:</span>
  <span class="hljs-attr">dir:</span> <span class="hljs-string">layouts</span></code></pre>
<h2 id="layouts-autoescape">layouts.autoescape</h2>
<p>Surcharge l’option Twig <code translate="no">autoescape</code> (<code translate="no">false</code> par défaut).</p>
<p>Si la valeur est <code translate="no">null</code>, Cecil applique une stratégie basée sur l’extension du nom de template :</p>
<ul>
<li><code translate="no">*.js.twig</code> -&gt; <code translate="no">js</code></li>
<li><code translate="no">*.css.twig</code> -&gt; <code translate="no">css</code></li>
<li><code translate="no">*.html.twig</code> et <code translate="no">*.twig</code> -&gt; <code translate="no">html</code></li>
<li>toute autre extension -&gt; <code translate="no">false</code></li>
</ul>
<pre><code class="language-yaml hljs yaml" translate="no"><span class="hljs-attr">layouts:</span>
  <span class="hljs-attr">autoescape:</span> <span class="hljs-literal">false</span>  <span class="hljs-comment"># désactive l’échappement automatique (par défaut)</span>
  <span class="hljs-comment">#autoescape: null  # utilise la stratégie automatique Cecil selon l’extension du template</span>
  <span class="hljs-comment">#autoescape: html</span>
  <span class="hljs-comment">#autoescape: js</span></code></pre>
<h2 id="layouts-images">layouts.images</h2>
<p>Options de gestion des images.</p>
<pre><code class="language-yaml hljs yaml" translate="no"><span class="hljs-attr">layouts:</span>
  <span class="hljs-attr">images:</span>
    <span class="hljs-attr">formats:</span> <span class="hljs-string">[]</span>       <span class="hljs-comment"># utilisé par la fonction `html` : ajoute des formats d’image alternatifs comme `source` (ex. `[avif, webp]`, tableau vide par défaut)</span>
    <span class="hljs-attr">responsive:</span> <span class="hljs-literal">false</span> <span class="hljs-comment"># utilisé par la fonction `html` : ajoute des images responsives ('width' ou 'density', `false` par défaut)</span>
    <span class="hljs-attr">placeholder:</span> <span class="hljs-string">''</span>   <span class="hljs-comment"># utilisé par la fonction `html` : remplit l’arrière-plan de l’image avant son chargement (`color` ou `lqip`, désactivé par défaut)</span>
    <span class="hljs-attr">dark_suffix:</span> <span class="hljs-string">''</span>   <span class="hljs-comment"># suffixe de l’image variante sombre (ex. `.dark`), désactivé par défaut</span>
    <span class="hljs-attr">mobile_suffix:</span> <span class="hljs-string">''</span> <span class="hljs-comment"># suffixe de l’image variante mobile (ex. `.mobile`), désactivé par défaut</span>
    <span class="hljs-attr">mobile_media_query:</span> <span class="hljs-string">'(max-width: 767px)'</span> <span class="hljs-comment"># media query de la `&lt;source&gt;` de la variante mobile</span></code></pre>
<h2 id="layouts-translations">layouts.translations</h2>
<p>Options de gestion des traductions.</p>
<pre><code class="language-yaml hljs yaml" translate="no"><span class="hljs-attr">layouts:</span>
  <span class="hljs-attr">translations:</span>
    <span class="hljs-attr">dir:</span> <span class="hljs-string">translations</span> <span class="hljs-comment"># répertoire source des traductions (`translations` par défaut)</span>
    <span class="hljs-attr">formats:</span>          <span class="hljs-comment"># formats de traduction pris en charge</span>
      <span class="hljs-attr">yaml:</span>
        <span class="hljs-attr">loader:</span> <span class="hljs-string">Symfony\Component\Translation\Loader\YamlFileLoader</span>
        <span class="hljs-attr">ext:</span> <span class="hljs-string">[yml,</span> <span class="hljs-string">yaml]</span>
      <span class="hljs-attr">mo:</span>
        <span class="hljs-attr">loader:</span> <span class="hljs-string">Symfony\Component\Translation\Loader\MoFileLoader</span>
        <span class="hljs-attr">ext:</span> <span class="hljs-string">[mo]</span></code></pre>
<p>Chaque format de traduction définit :</p>
<ul>
<li><code translate="no">loader</code> : classe du chargeur de traduction Symfony</li>
<li><code translate="no">ext</code> : une ou plusieurs extensions de fichier associées à ce format</li>
</ul>
<h2 id="layouts-components">layouts.components</h2>
<p>Options des <a href="/fr/documentation/templates/composants/">composants de template</a>.</p>
<pre><code class="language-yaml hljs yaml" translate="no"><span class="hljs-attr">layouts:</span>
  <span class="hljs-attr">components:</span>
    <span class="hljs-attr">dir:</span> <span class="hljs-string">components</span> <span class="hljs-comment"># répertoire source des composants (`components` par défaut)</span>
    <span class="hljs-attr">ext:</span> <span class="hljs-string">twig</span>       <span class="hljs-comment"># extension des fichiers de composants (`twig` par défaut)</span></code></pre>
<h2 id="layouts-sections">layouts.sections</h2>
<p>Associe une section aux layouts d’une autre section : le nom associé est utilisé à la place de <code translate="no">&lt;section&gt;</code> par les <a href="/fr/documentation/templates/regles-de-recherche/#regles-de-recherche">règles de recherche</a> de la section et de ses pages.</p>
<pre><code class="language-yaml hljs yaml" translate="no"><span class="hljs-attr">layouts:</span>
  <span class="hljs-attr">sections:</span>
    <span class="hljs-attr">news:</span> <span class="hljs-string">blog</span> <span class="hljs-comment"># la section « news » est rendue avec `blog/list.html.twig` et ses pages avec `blog/page.html.twig`</span></code></pre>
<aside class="note note-tip"><p>Une <a href="/fr/documentation/contenu/pages/#sous-section">sous-section</a> se replie déjà sur les layouts de ses sections parentes : aucune association n’est nécessaire pour cela.</p></aside>
<hr>]]>
    </content>
  </entry>
  <entry xml:lang="fr">
    <id>https://cecil.app/fr/documentation/configuration/sortie/</id>
    <title>Sortie</title>
    <published>2026-03-27T00:00:00+00:00</published>
    <updated>2026-10-05T00:00:00+00:00</updated>
    <link href="https://cecil.app/fr/documentation/configuration/sortie/" rel="alternate" type="text/html" />
    <content type="html">
      <![CDATA[<h1>Sortie</h1>
<p>Définit où et dans quel format les pages sont rendues.</p>
<h2 id="output-dir">output.dir</h2>
<p>Répertoire où les fichiers de pages rendues sont enregistrés (<code translate="no">_site</code> par défaut).</p>
<pre><code class="language-yaml hljs yaml" translate="no"><span class="hljs-attr">output:</span>
  <span class="hljs-attr">dir:</span> <span class="hljs-string">_site</span></code></pre>
<h2 id="output-formats">output.formats</h2>
<p>Liste de définition des formats de sortie, utilisés pour rendre les pages (par ex. HTML, Atom, RSS, JSON, XML, etc.).</p>
<pre><code class="language-yaml hljs yaml" translate="no"><span class="hljs-attr">output:</span>
  <span class="hljs-attr">formats:</span>
    <span class="hljs-bullet">-</span> <span class="hljs-attr">name:</span> <span class="hljs-string">&lt;name&gt;</span>            <span class="hljs-comment"># nom du format, par ex. `html` (requis)</span>
      <span class="hljs-attr">mediatype:</span> <span class="hljs-string">&lt;media</span> <span class="hljs-string">type&gt;</span> <span class="hljs-comment"># type MIME, ex. `text/html` (facultatif)</span>
      <span class="hljs-attr">subpath:</span> <span class="hljs-string">&lt;sub</span> <span class="hljs-string">path&gt;</span>     <span class="hljs-comment"># sous-chemin, ex. `amp` dans `path/amp/index.html` (facultatif)</span>
      <span class="hljs-attr">filename:</span> <span class="hljs-string">&lt;file</span> <span class="hljs-string">name&gt;</span>   <span class="hljs-comment"># nom du fichier, ex. `index` dans `path/index.html` (facultatif)</span>
      <span class="hljs-attr">extension:</span> <span class="hljs-string">&lt;extension&gt;</span>  <span class="hljs-comment"># extension du fichier, ex. `html` dans `path/index.html` (requis)</span>
      <span class="hljs-attr">exclude:</span> <span class="hljs-string">[&lt;variable&gt;]</span>   <span class="hljs-comment"># n’applique pas ce format aux pages identifiées par les variables listées, ex. `[redirect, paginated]` (facultatif)</span></code></pre>
<p>Ces formats sont utilisés dans la configuration <a href="#output-pagetypeformats"><code translate="no">output.pagetypeformats</code></a> et dans la variable de page <a href="/fr/documentation/contenu/front-matter/#output"><code translate="no">output</code></a>.</p>
<h3 id="formats-par-defaut">Formats par défaut</h3>
<p>Cecil fournit quelques <a href="https://github.com/Cecilapp/Cecil/blob/main/config/base.php#L81-L162" target="_blank" rel="noopener noreferrer">formats par défaut</a>, qui peuvent être surchargés dans le fichier de configuration : <code translate="no">html</code> (par défaut), <code translate="no">atom</code>, <code translate="no">rss</code>, <code translate="no">json</code>, <code translate="no">xml</code>, <code translate="no">txt</code>, <code translate="no">amp</code>, <code translate="no">js</code>, <code translate="no">webmanifest</code>, <code translate="no">xsl</code>, <code translate="no">jsonfeed</code>, <code translate="no">iframe</code>, <code translate="no">oembed</code>.</p>
<h2 id="output-pagetypeformats">output.pagetypeformats</h2>
<p>Il n’est pas nécessaire de définir la variable <code translate="no">output</code> pour chaque page, car Cecil applique automatiquement les formats définis pour chaque type de page (<code translate="no">homepage</code>, <code translate="no">page</code>, <code translate="no">section</code>, <code translate="no">vocabulary</code> et <code translate="no">term</code>).</p>
<pre><code class="language-yaml hljs yaml" translate="no"><span class="hljs-attr">output:</span>
  <span class="hljs-attr">pagetypeformats:</span>
    <span class="hljs-attr">page:</span> <span class="hljs-string">[&lt;format&gt;]</span>
    <span class="hljs-attr">homepage:</span> <span class="hljs-string">[&lt;format&gt;]</span>
    <span class="hljs-attr">section:</span> <span class="hljs-string">[&lt;format&gt;]</span>
    <span class="hljs-attr">vocabulary:</span> <span class="hljs-string">[&lt;format&gt;]</span>
    <span class="hljs-attr">term:</span> <span class="hljs-string">[&lt;format&gt;]</span></code></pre>
<p>Plusieurs formats peuvent être définis pour un même type de page. Par exemple, le type de page <code translate="no">section</code> peut être rendu automatiquement en HTML et Atom :</p>
<pre><code class="language-yaml hljs yaml" translate="no"><span class="hljs-attr">output:</span>
  <span class="hljs-attr">pagetypeformats:</span>
    <span class="hljs-attr">section:</span> <span class="hljs-string">[html,</span> <span class="hljs-string">atom]</span></code></pre>
<aside class="note note-info"><p>Pour rendre une page, <a href="/fr/documentation/templates/regles-de-recherche/#regles-de-recherche">Cecil recherche un template</a> nommé <code translate="no">&lt;layout&gt;.&lt;format&gt;.twig</code> (ex. <code translate="no">page.html.twig</code>).</p></aside>
<h2 id="exemple-de-output">exemple de output</h2>
<pre><code class="language-yaml hljs yaml" translate="no"><span class="hljs-attr">output:</span>
  <span class="hljs-attr">dir:</span> <span class="hljs-string">_site</span>
  <span class="hljs-attr">formats:</span>
    <span class="hljs-bullet">-</span> <span class="hljs-attr">name:</span> <span class="hljs-string">html</span>
      <span class="hljs-attr">mediatype:</span> <span class="hljs-string">text/html</span>
      <span class="hljs-attr">filename:</span> <span class="hljs-string">index</span>
      <span class="hljs-attr">extension:</span> <span class="hljs-string">html</span>
    <span class="hljs-bullet">-</span> <span class="hljs-attr">name:</span> <span class="hljs-string">atom</span>
      <span class="hljs-attr">mediatype:</span> <span class="hljs-string">application/xml</span>
      <span class="hljs-attr">filename:</span> <span class="hljs-string">atom</span>
      <span class="hljs-attr">extension:</span> <span class="hljs-string">xml</span>
      <span class="hljs-attr">exclude:</span> <span class="hljs-string">[redirect,</span> <span class="hljs-string">paginated]</span>
  <span class="hljs-attr">pagetypeformats:</span>
    <span class="hljs-attr">page:</span> <span class="hljs-string">[html]</span>
    <span class="hljs-attr">homepage:</span> <span class="hljs-string">[html,</span> <span class="hljs-string">atom]</span>
    <span class="hljs-attr">section:</span> <span class="hljs-string">[html,</span> <span class="hljs-string">atom]</span>
    <span class="hljs-attr">vocabulary:</span> <span class="hljs-string">[html]</span>
    <span class="hljs-attr">term:</span> <span class="hljs-string">[html,</span> <span class="hljs-string">atom]</span></code></pre>
<h2 id="post-process">Post-process</h2>
<p>Vous pouvez étendre les capacités de Cecil avec un <a href="/fr/documentation/developpeurs/etendre/#post-processeur-de-rendu">post-processeur de sortie</a> pour modifier les fichiers de sortie après leur génération.</p>
<hr>]]>
    </content>
  </entry>
  <entry xml:lang="fr">
    <id>https://cecil.app/fr/documentation/configuration/cache/</id>
    <title>Cache</title>
    <published>2026-03-27T00:00:00+00:00</published>
    <updated>2026-10-05T00:00:00+00:00</updated>
    <link href="https://cecil.app/fr/documentation/configuration/cache/" rel="alternate" type="text/html" />
    <content type="html">
      <![CDATA[<h1>Cache</h1>
<p>Options de cache.</p>
<h2 id="cache-enabled">cache.enabled</h2>
<p>Le cache est activé par défaut (<code translate="no">true</code>), mais vous pouvez le désactiver avec :</p>
<pre><code class="language-yaml hljs yaml" translate="no"><span class="hljs-attr">cache:</span>
  <span class="hljs-attr">enabled:</span> <span class="hljs-literal">false</span></code></pre>
<aside class="note note-warning"><p>Il n’est pas recommandé de désactiver le cache pour des raisons de performance.</p></aside>
<h2 id="cache-dir">cache.dir</h2>
<p>Répertoire où les fichiers de cache sont stockés (<code translate="no">.cache</code> par défaut).</p>
<pre><code class="language-yaml hljs yaml" translate="no"><span class="hljs-attr">cache:</span>
  <span class="hljs-attr">dir:</span> <span class="hljs-string">'.cache'</span></code></pre>
<aside class="note note-info"><p>Le répertoire de cache est relatif au répertoire du site, mais vous pouvez utiliser un chemin absolu : cela peut être utile pour stocker le cache dans un répertoire partagé.</p></aside>
<h2 id="cache-assets">cache.assets</h2>
<p>Options du cache des ressources.</p>
<h3 id="cache-assets-ttl">cache.assets.ttl</h3>
<p>Temps de vie du cache des ressources en secondes (<code translate="no">null</code> par défaut = aucune expiration).</p>
<pre><code class="language-yaml hljs yaml" translate="no"><span class="hljs-attr">cache:</span>
  <span class="hljs-attr">assets:</span>
    <span class="hljs-attr">ttl:</span> <span class="hljs-string">~</span></code></pre>
<h3 id="cache-assets-remote-ttl">cache.assets.remote.ttl</h3>
<p>Temps de vie du cache des ressources distantes en secondes (7 jours par défaut).</p>
<pre><code class="language-yaml hljs yaml" translate="no"><span class="hljs-attr">cache:</span>
  <span class="hljs-attr">assets:</span>
    <span class="hljs-attr">remotes:</span>
      <span class="hljs-attr">ttl:</span> <span class="hljs-number">604800</span> <span class="hljs-comment"># 7 jours</span></code></pre>
<h2 id="cache-templates">cache.templates</h2>
<p>Désactive le cache des templates avec <code translate="no">false</code> (<code translate="no">true</code> par défaut).</p>
<pre><code class="language-yaml hljs yaml" translate="no"><span class="hljs-attr">cache:</span>
  <span class="hljs-attr">templates:</span> <span class="hljs-literal">true</span></code></pre>
<aside class="note note-info"><p>Voir la <a href="/fr/documentation/templates/cache/">documentation du cache des templates</a> pour plus de détails.</p></aside>
<h2 id="cache-translations">cache.translations</h2>
<p>Désactive le cache des traductions avec <code translate="no">false</code> (<code translate="no">true</code> par défaut).</p>
<pre><code class="language-yaml hljs yaml" translate="no"><span class="hljs-attr">cache:</span>
  <span class="hljs-attr">translations:</span> <span class="hljs-literal">true</span></code></pre>
<hr>]]>
    </content>
  </entry>
  <entry xml:lang="fr">
    <id>https://cecil.app/fr/documentation/configuration/serveur/</id>
    <title>Serveur et optimisation</title>
    <published>2026-03-27T00:00:00+00:00</published>
    <updated>2026-10-05T00:00:00+00:00</updated>
    <link href="https://cecil.app/fr/documentation/configuration/serveur/" rel="alternate" type="text/html" />
    <content type="html">
      <![CDATA[<h1>Serveur et optimisation</h1>
<h2 id="serveur">Serveur</h2>
<h3 id="server-headers">server.headers</h3>
<p>Vous pouvez définir des <a href="https://developer.mozilla.org/docs/Glossary/Response_header" target="_blank" rel="noopener noreferrer">en-têtes HTTP</a> personnalisés, utilisés par le serveur d’aperçu local.</p>
<aside class="note note-warning"><p>Depuis la version <ins>8.38.0</ins>, l’option <code translate="no">headers</code> a été déplacée dans la section <code translate="no">server.headers</code>.</p></aside>
<pre><code class="language-yaml hljs yaml" translate="no"><span class="hljs-attr">server:</span>
  <span class="hljs-attr">headers:</span>
    <span class="hljs-bullet">-</span> <span class="hljs-attr">path:</span> <span class="hljs-string">&lt;path&gt;</span> <span class="hljs-comment"># chemin relatif, préfixé par un slash. Prend en charge le joker "*".</span>
      <span class="hljs-attr">headers:</span>
        <span class="hljs-bullet">-</span> <span class="hljs-attr">key:</span> <span class="hljs-string">&lt;key&gt;</span>
          <span class="hljs-attr">value:</span> <span class="hljs-string">"&lt;value&gt;"</span></code></pre>
<aside class="note note-tip"><p>C’est utile pour tester une <a href="https://developer.mozilla.org/docs/Web/HTTP/CSP" target="_blank" rel="noopener noreferrer">Content Security Policy</a> ou <code translate="no">Cache-Control</code> personnalisée.</p></aside>
<p><em>Exemple :</em></p>
<pre><code class="language-yaml hljs yaml" translate="no"><span class="hljs-attr">server:</span>
  <span class="hljs-attr">headers:</span>
    <span class="hljs-bullet">-</span> <span class="hljs-attr">path:</span> <span class="hljs-string">/*</span>
      <span class="hljs-attr">headers:</span>
        <span class="hljs-bullet">-</span> <span class="hljs-attr">key:</span> <span class="hljs-string">X-Frame-Options</span>
          <span class="hljs-attr">value:</span> <span class="hljs-string">"SAMEORIGIN"</span>
        <span class="hljs-bullet">-</span> <span class="hljs-attr">key:</span> <span class="hljs-string">X-XSS-Protection</span>
          <span class="hljs-attr">value:</span> <span class="hljs-string">"1; mode=block"</span>
        <span class="hljs-bullet">-</span> <span class="hljs-attr">key:</span> <span class="hljs-string">X-Content-Type-Options</span>
          <span class="hljs-attr">value:</span> <span class="hljs-string">"nosniff"</span>
        <span class="hljs-bullet">-</span> <span class="hljs-attr">key:</span> <span class="hljs-string">Content-Security-Policy</span>
          <span class="hljs-attr">value:</span> <span class="hljs-string">"default-src 'self'; object-src 'self'; img-src 'self'"</span>
        <span class="hljs-bullet">-</span> <span class="hljs-attr">key:</span> <span class="hljs-string">Strict-Transport-Security</span>
          <span class="hljs-attr">value:</span> <span class="hljs-string">"max-age=31536000; includeSubDomains; preload"</span>
    <span class="hljs-bullet">-</span> <span class="hljs-attr">path:</span> <span class="hljs-string">/assets/*</span>
      <span class="hljs-attr">headers:</span>
        <span class="hljs-bullet">-</span> <span class="hljs-attr">key:</span> <span class="hljs-string">Cache-Control</span>
          <span class="hljs-attr">value:</span> <span class="hljs-string">"public, max-age=31536000"</span>
    <span class="hljs-bullet">-</span> <span class="hljs-attr">path:</span> <span class="hljs-string">/foo.html</span>
      <span class="hljs-attr">headers:</span>
        <span class="hljs-bullet">-</span> <span class="hljs-attr">key:</span> <span class="hljs-string">Foo</span>
          <span class="hljs-attr">value:</span> <span class="hljs-string">"bar"</span></code></pre>
<hr>
<h2 id="optimisation">Optimisation</h2>
<p>Les options d’optimisation permettent d’activer la compression des fichiers de sortie : HTML, CSS, JavaScript et images.</p>
<pre><code class="language-yaml hljs yaml" translate="no"><span class="hljs-attr">optimize:</span>
  <span class="hljs-attr">enabled:</span> <span class="hljs-literal">false</span>     <span class="hljs-comment"># active l’optimisation des fichiers (`false` par défaut)</span>
  <span class="hljs-attr">html:</span>
    <span class="hljs-attr">enabled:</span> <span class="hljs-literal">true</span>    <span class="hljs-comment"># active l’optimisation des fichiers HTML</span>
    <span class="hljs-attr">ext:</span> <span class="hljs-string">[html,</span> <span class="hljs-string">htm]</span>   <span class="hljs-comment"># extensions de fichiers prises en charge</span>
  <span class="hljs-attr">css:</span>
    <span class="hljs-attr">enabled:</span> <span class="hljs-literal">true</span>    <span class="hljs-comment"># active l’optimisation des fichiers CSS</span>
    <span class="hljs-attr">ext:</span> <span class="hljs-string">[css]</span>         <span class="hljs-comment"># extensions de fichiers prises en charge</span>
  <span class="hljs-attr">js:</span>
    <span class="hljs-attr">enabled:</span> <span class="hljs-literal">true</span>    <span class="hljs-comment"># active l’optimisation des fichiers JavaScript</span>
    <span class="hljs-attr">ext:</span> <span class="hljs-string">[js]</span>          <span class="hljs-comment"># extensions de fichiers prises en charge</span>
  <span class="hljs-attr">images:</span>
    <span class="hljs-attr">enabled:</span> <span class="hljs-literal">true</span>    <span class="hljs-comment"># active l’optimisation des fichiers images</span>
    <span class="hljs-attr">ext:</span> <span class="hljs-string">[jpeg,</span> <span class="hljs-string">jpg,</span> <span class="hljs-string">png,</span> <span class="hljs-string">gif,</span> <span class="hljs-string">webp,</span> <span class="hljs-string">svg,</span> <span class="hljs-string">avif]</span> <span class="hljs-comment"># extensions de fichiers prises en charge</span></code></pre>
<p>Cette option est désactivée par défaut et peut être activée via :</p>
<pre><code class="language-yaml hljs yaml" translate="no"><span class="hljs-attr">optimize:</span> <span class="hljs-literal">true</span></code></pre>
<p>Une fois l’option globale activée, les 4 types de fichiers seront traités.<br>
Il est possible de désactiver chacun d’eux via <code translate="no">enabled: false</code> et de modifier l’extension des fichiers traités via <code translate="no">ext</code>.</p>
<aside class="note note-tip"><p>Il est également possible d’activer cette option via la CLI lors de l’utilisation des commandes "build" et "serve" avec l’option <code translate="no">--optimize</code>.</p></aside>
<aside class="note note-important"><p>Le compresseur d’<strong>images</strong> utilisera les binaires suivants s’ils sont présents sur le système : <a href="https://github.com/tjko/jpegoptim" target="_blank" rel="noopener noreferrer">JpegOptim</a>, <a href="http://optipng.sourceforge.net/" target="_blank" rel="noopener noreferrer">Optipng</a>, <a href="https://pngquant.org/" target="_blank" rel="noopener noreferrer">Pngquant 2</a>, <a href="https://github.com/svg/svgo" target="_blank" rel="noopener noreferrer">SVGO</a>, <a href="http://www.lcdf.org/gifsicle/" target="_blank" rel="noopener noreferrer">Gifsicle</a>, <a href="https://developers.google.com/speed/webp/docs/cwebp" target="_blank" rel="noopener noreferrer">cwebp</a> et <a href="https://github.com/AOMediaCodec/libavif" target="_blank" rel="noopener noreferrer">avifenc</a>.</p></aside>
<hr>]]>
    </content>
  </entry>
  <entry xml:lang="fr">
    <id>https://cecil.app/fr/documentation/configuration/surcharge/</id>
    <title>Surcharge de configuration</title>
    <published>2026-03-27T00:00:00+00:00</published>
    <updated>2026-10-05T00:00:00+00:00</updated>
    <link href="https://cecil.app/fr/documentation/configuration/surcharge/" rel="alternate" type="text/html" />
    <content type="html">
      <![CDATA[<h1>Surcharge de configuration</h1>
<h2 id="variables-d-environnement">Variables d’environnement</h2>
<p>La configuration peut être surchargée via des <a href="https://en.wikipedia.org/wiki/Environment_variable" target="_blank" rel="noopener noreferrer">variables d’environnement</a>.</p>
<p>Au démarrage, Cecil essaie également de charger un fichier <code translate="no">.env</code> depuis le chemin du site courant (le répertoire de travail actuel, ou l’argument <code translate="no">&lt;path&gt;</code> s’il est fourni).</p>
<ul>
<li>Si le fichier <code translate="no">.env</code> n’existe pas, Cecil continue normalement.</li>
<li>Les variables déjà définies par le shell/système sont conservées.</li>
</ul>
<p>Chaque nom de variable d’environnement doit être préfixé par <code translate="no">CECIL_</code> et la clé de configuration doit être en majuscules.</p>
<p>Par exemple, la commande suivante définit le <code translate="no">baseurl</code> du site :</p>
<pre><code class="language-bash hljs bash" translate="no"><span class="hljs-built_in">export</span> CECIL_BASEURL=<span class="hljs-string">"https://example.com/"</span></code></pre>
<p>Vous pouvez stocker la même valeur dans un fichier <code translate="no">.env</code> à la racine du projet :</p>
<pre><code class="language-dotenv" translate="no">CECIL_BASEURL="https://example.com/"
CECIL_TITLE="Mon site Cecil"</code></pre>
<h2 id="option-cli">Option CLI</h2>
<p>Vous pouvez combiner plusieurs fichiers de configuration avec l’option <code translate="no">--config</code> (priorité de gauche à droite) :</p>
<pre><code class="language-bash hljs bash" translate="no">php cecil.phar --config config-1.yml,config-2.yml</code></pre>]]>
    </content>
  </entry>
  <entry xml:lang="fr">
    <id>https://cecil.app/fr/documentation/configuration/codes-de-locale/</id>
    <title>Codes de locale</title>
    <published>2020-12-19T00:00:00+00:00</published>
    <updated>2026-10-02T00:00:00+00:00</updated>
    <link href="https://cecil.app/fr/documentation/configuration/codes-de-locale/" rel="alternate" type="text/html" />
    <content type="html">
      <![CDATA[<h1>Codes de locale</h1>
<p>Codes de locale disponibles (<code translate="no">language_COUNTRY</code>) utilisés par l’option <a href="/fr/documentation/configuration/langues/#languages"><code translate="no">languages</code></a>.</p>
<table>
<thead>
<tr>
<th>Locale</th>
<th>Code</th>
</tr>
</thead>
<tbody>
<tr>
<td>Albanais (Albanie)</td>
<td>sq_AL</td>
</tr>
<tr>
<td>Albanais</td>
<td>sq</td>
</tr>
<tr>
<td>Arabe (Algérie)</td>
<td>ar_DZ</td>
</tr>
<tr>
<td>Arabe (Bahreïn)</td>
<td>ar_BH</td>
</tr>
<tr>
<td>Arabe (Égypte)</td>
<td>ar_EG</td>
</tr>
<tr>
<td>Arabe (Irak)</td>
<td>ar_IQ</td>
</tr>
<tr>
<td>Arabe (Jordanie)</td>
<td>ar_JO</td>
</tr>
<tr>
<td>Arabe (Koweït)</td>
<td>ar_KW</td>
</tr>
<tr>
<td>Arabe (Liban)</td>
<td>ar_LB</td>
</tr>
<tr>
<td>Arabe (Libye)</td>
<td>ar_LY</td>
</tr>
<tr>
<td>Arabe (Maroc)</td>
<td>ar_MA</td>
</tr>
<tr>
<td>Arabe (Oman)</td>
<td>ar_OM</td>
</tr>
<tr>
<td>Arabe (Qatar)</td>
<td>ar_QA</td>
</tr>
<tr>
<td>Arabe (Arabie saoudite)</td>
<td>ar_SA</td>
</tr>
<tr>
<td>Arabe (Soudan)</td>
<td>ar_SD</td>
</tr>
<tr>
<td>Arabe (Syrie)</td>
<td>ar_SY</td>
</tr>
<tr>
<td>Arabe (Tunisie)</td>
<td>ar_TN</td>
</tr>
<tr>
<td>Arabe (Émirats arabes unis)</td>
<td>ar_AE</td>
</tr>
<tr>
<td>Arabe (Yémen)</td>
<td>ar_YE</td>
</tr>
<tr>
<td>Arabe</td>
<td>ar</td>
</tr>
<tr>
<td>Biélorusse (Biélorussie)</td>
<td>be_BY</td>
</tr>
<tr>
<td>Biélorusse</td>
<td>be</td>
</tr>
<tr>
<td>Bulgare (Bulgarie)</td>
<td>bg_BG</td>
</tr>
<tr>
<td>Bulgare</td>
<td>bg</td>
</tr>
<tr>
<td>Catalan (Espagne)</td>
<td>ca_ES</td>
</tr>
<tr>
<td>Catalan</td>
<td>ca</td>
</tr>
<tr>
<td>Chinois (Chine)</td>
<td>zh_CN</td>
</tr>
<tr>
<td>Chinois (Hong Kong)</td>
<td>zh_HK</td>
</tr>
<tr>
<td>Chinois (Singapour)</td>
<td>zh_SG</td>
</tr>
<tr>
<td>Chinois (Taïwan)</td>
<td>zh_TW</td>
</tr>
<tr>
<td>Chinois</td>
<td>zh</td>
</tr>
<tr>
<td>Croate (Croatie)</td>
<td>hr_HR</td>
</tr>
<tr>
<td>Croate</td>
<td>hr</td>
</tr>
<tr>
<td>Tchèque (République tchèque)</td>
<td>cs_CZ</td>
</tr>
<tr>
<td>Tchèque</td>
<td>cs</td>
</tr>
<tr>
<td>Danois (Danemark)</td>
<td>da_DK</td>
</tr>
<tr>
<td>Danois</td>
<td>da</td>
</tr>
<tr>
<td>Néerlandais (Belgique)</td>
<td>nl_BE</td>
</tr>
<tr>
<td>Néerlandais (Pays-Bas)</td>
<td>nl_NL</td>
</tr>
<tr>
<td>Néerlandais</td>
<td>nl</td>
</tr>
<tr>
<td>Anglais (Australie)</td>
<td>en_AU</td>
</tr>
<tr>
<td>Anglais (Canada)</td>
<td>en_CA</td>
</tr>
<tr>
<td>Anglais (Inde)</td>
<td>en_IN</td>
</tr>
<tr>
<td>Anglais (Irlande)</td>
<td>en_IE</td>
</tr>
<tr>
<td>Anglais (Malte)</td>
<td>en_MT</td>
</tr>
<tr>
<td>Anglais (Nouvelle-Zélande)</td>
<td>en_NZ</td>
</tr>
<tr>
<td>Anglais (Philippines)</td>
<td>en_PH</td>
</tr>
<tr>
<td>Anglais (Singapour)</td>
<td>en_SG</td>
</tr>
<tr>
<td>Anglais (Afrique du Sud)</td>
<td>en_ZA</td>
</tr>
<tr>
<td>Anglais (Royaume-Uni)</td>
<td>en_GB</td>
</tr>
<tr>
<td>Anglais (États-Unis)</td>
<td>en_US</td>
</tr>
<tr>
<td>Anglais</td>
<td>en</td>
</tr>
<tr>
<td>Estonien (Estonie)</td>
<td>et_EE</td>
</tr>
<tr>
<td>Estonien</td>
<td>et</td>
</tr>
<tr>
<td>Finnois (Finlande)</td>
<td>fi_FI</td>
</tr>
<tr>
<td>Finnois</td>
<td>fi</td>
</tr>
<tr>
<td>Français (Belgique)</td>
<td>fr_BE</td>
</tr>
<tr>
<td>Français (Canada)</td>
<td>fr_CA</td>
</tr>
<tr>
<td>Français (France)</td>
<td>fr_FR</td>
</tr>
<tr>
<td>Français (Luxembourg)</td>
<td>fr_LU</td>
</tr>
<tr>
<td>Français (Suisse)</td>
<td>fr_CH</td>
</tr>
<tr>
<td>Français</td>
<td>fr</td>
</tr>
<tr>
<td>Allemand (Autriche)</td>
<td>de_AT</td>
</tr>
<tr>
<td>Allemand (Allemagne)</td>
<td>de_DE</td>
</tr>
<tr>
<td>Allemand (Luxembourg)</td>
<td>de_LU</td>
</tr>
<tr>
<td>Allemand (Suisse)</td>
<td>de_CH</td>
</tr>
<tr>
<td>Allemand</td>
<td>de</td>
</tr>
<tr>
<td>Grec (Chypre)</td>
<td>el_CY</td>
</tr>
<tr>
<td>Grec (Grèce)</td>
<td>el_GR</td>
</tr>
<tr>
<td>Grec</td>
<td>el</td>
</tr>
<tr>
<td>Hébreu (Israël)</td>
<td>iw_IL</td>
</tr>
<tr>
<td>Hébreu</td>
<td>iw</td>
</tr>
<tr>
<td>Hindi (Inde)</td>
<td>hi_IN</td>
</tr>
<tr>
<td>Hongrois (Hongrie)</td>
<td>hu_HU</td>
</tr>
<tr>
<td>Hongrois</td>
<td>hu</td>
</tr>
<tr>
<td>Islandais (Islande)</td>
<td>is_IS</td>
</tr>
<tr>
<td>Islandais</td>
<td>is</td>
</tr>
<tr>
<td>Indonésien (Indonésie)</td>
<td>in_ID</td>
</tr>
<tr>
<td>Indonésien</td>
<td>in</td>
</tr>
<tr>
<td>Irlandais (Irlande)</td>
<td>ga_IE</td>
</tr>
<tr>
<td>Irlandais</td>
<td>ga</td>
</tr>
<tr>
<td>Italien (Italie)</td>
<td>it_IT</td>
</tr>
<tr>
<td>Italien (Suisse)</td>
<td>it_CH</td>
</tr>
<tr>
<td>Italien</td>
<td>it</td>
</tr>
<tr>
<td>Japonais (Japon)</td>
<td>ja_JP</td>
</tr>
<tr>
<td>Japonais (Japon,JP)</td>
<td>ja_JP_JP</td>
</tr>
<tr>
<td>Japonais</td>
<td>ja</td>
</tr>
<tr>
<td>Coréen (Corée du Sud)</td>
<td>ko_KR</td>
</tr>
<tr>
<td>Coréen</td>
<td>ko</td>
</tr>
<tr>
<td>Letton (Lettonie)</td>
<td>lv_LV</td>
</tr>
<tr>
<td>Letton</td>
<td>lv</td>
</tr>
<tr>
<td>Lituanien (Lituanie)</td>
<td>lt_LT</td>
</tr>
<tr>
<td>Lituanien</td>
<td>lt</td>
</tr>
<tr>
<td>Macédonien (Macédoine)</td>
<td>mk_MK</td>
</tr>
<tr>
<td>Macédonien</td>
<td>mk</td>
</tr>
<tr>
<td>Malais (Malaisie)</td>
<td>ms_MY</td>
</tr>
<tr>
<td>Malais</td>
<td>ms</td>
</tr>
<tr>
<td>Maltais (Malte)</td>
<td>mt_MT</td>
</tr>
<tr>
<td>Maltais</td>
<td>mt</td>
</tr>
<tr>
<td>Norvégien (Norvège)</td>
<td>no_NO</td>
</tr>
<tr>
<td>Norvégien (Norvège, Nynorsk)</td>
<td>no_NO_NY</td>
</tr>
<tr>
<td>Norvégien</td>
<td>no</td>
</tr>
<tr>
<td>Polonais (Pologne)</td>
<td>pl_PL</td>
</tr>
<tr>
<td>Polonais</td>
<td>pl</td>
</tr>
<tr>
<td>Portugais (Brésil)</td>
<td>pt_BR</td>
</tr>
<tr>
<td>Portugais (Portugal)</td>
<td>pt_PT</td>
</tr>
<tr>
<td>Portugais</td>
<td>pt</td>
</tr>
<tr>
<td>Roumain (Roumanie)</td>
<td>ro_RO</td>
</tr>
<tr>
<td>Roumain</td>
<td>ro</td>
</tr>
<tr>
<td>Russe (Russie)</td>
<td>ru_RU</td>
</tr>
<tr>
<td>Russe</td>
<td>ru</td>
</tr>
<tr>
<td>Serbe (Bosnie-Herzégovine)</td>
<td>sr_BA</td>
</tr>
<tr>
<td>Serbe (Monténégro)</td>
<td>sr_ME</td>
</tr>
<tr>
<td>Serbe (Serbie et Monténégro)</td>
<td>sr_CS</td>
</tr>
<tr>
<td>Serbe (Serbie)</td>
<td>sr_RS</td>
</tr>
<tr>
<td>Serbe</td>
<td>sr</td>
</tr>
<tr>
<td>Slovaque (Slovaquie)</td>
<td>sk_SK</td>
</tr>
<tr>
<td>Slovaque</td>
<td>sk</td>
</tr>
<tr>
<td>Slovène (Slovénie)</td>
<td>sl_SI</td>
</tr>
<tr>
<td>Slovène</td>
<td>sl</td>
</tr>
<tr>
<td>Espagnol (Argentine)</td>
<td>es_AR</td>
</tr>
<tr>
<td>Espagnol (Bolivie)</td>
<td>es_BO</td>
</tr>
<tr>
<td>Espagnol (Chili)</td>
<td>es_CL</td>
</tr>
<tr>
<td>Espagnol (Colombie)</td>
<td>es_CO</td>
</tr>
<tr>
<td>Espagnol (Costa Rica)</td>
<td>es_CR</td>
</tr>
<tr>
<td>Espagnol (République dominicaine)</td>
<td>es_DO</td>
</tr>
<tr>
<td>Espagnol (Équateur)</td>
<td>es_EC</td>
</tr>
<tr>
<td>Espagnol (Salvador)</td>
<td>es_SV</td>
</tr>
<tr>
<td>Espagnol (Guatemala)</td>
<td>es_GT</td>
</tr>
<tr>
<td>Espagnol (Honduras)</td>
<td>es_HN</td>
</tr>
<tr>
<td>Espagnol (Mexique)</td>
<td>es_MX</td>
</tr>
<tr>
<td>Espagnol (Nicaragua)</td>
<td>es_NI</td>
</tr>
<tr>
<td>Espagnol (Panama)</td>
<td>es_PA</td>
</tr>
<tr>
<td>Espagnol (Paraguay)</td>
<td>es_PY</td>
</tr>
<tr>
<td>Espagnol (Pérou)</td>
<td>es_PE</td>
</tr>
<tr>
<td>Espagnol (Porto Rico)</td>
<td>es_PR</td>
</tr>
<tr>
<td>Espagnol (Espagne)</td>
<td>es_ES</td>
</tr>
<tr>
<td>Espagnol (États-Unis)</td>
<td>es_US</td>
</tr>
<tr>
<td>Espagnol (Uruguay)</td>
<td>es_UY</td>
</tr>
<tr>
<td>Espagnol (Venezuela)</td>
<td>es_VE</td>
</tr>
<tr>
<td>Espagnol</td>
<td>es</td>
</tr>
<tr>
<td>Suédois (Suède)</td>
<td>sv_SE</td>
</tr>
<tr>
<td>Suédois</td>
<td>sv</td>
</tr>
<tr>
<td>Thaï (Thaïlande)</td>
<td>th_TH</td>
</tr>
<tr>
<td>Thaï (Thaïlande,TH)</td>
<td>th_TH_TH</td>
</tr>
<tr>
<td>Thaï</td>
<td>th</td>
</tr>
<tr>
<td>Turc (Turquie)</td>
<td>tr_TR</td>
</tr>
<tr>
<td>Turc</td>
<td>tr</td>
</tr>
<tr>
<td>Ukrainien (Ukraine)</td>
<td>uk_UA</td>
</tr>
<tr>
<td>Ukrainien</td>
<td>uk</td>
</tr>
<tr>
<td>Vietnamien (Vietnam)</td>
<td>vi_VN</td>
</tr>
<tr>
<td>Vietnamien</td>
<td>vi</td>
</tr>
</tbody>
</table>]]>
    </content>
  </entry>
</feed>
