<?xml version="1.0" encoding="utf-8"?>
<?xml-stylesheet type="text/xsl" href="https://cecilapp.github.io/theme-flexsearch/fr/xsl/atom.xsl" media="all"?>
<feed xmlns="http://www.w3.org/2005/Atom" xml:lang="fr">
  <id>https://cecilapp.github.io/theme-flexsearch/fr/</id>
  <title>FlexSearch</title>
  <subtitle><![CDATA[Demo of the FlexSearch component theme for Cecil.]]></subtitle>
  <link href="https://cecilapp.github.io/theme-flexsearch/fr/atom.xml" rel="self" type="application/atom+xml" />
  <link href="https://cecilapp.github.io/theme-flexsearch/fr/" rel="alternate" type="text/html" />
  <updated>2026-10-20T02:19:12+00:00</updated>
  <author>
    <name>FlexSearch</name>
    <uri>https://cecilapp.github.io/theme-flexsearch/</uri>
  </author>
  <entry xml:lang="fr">
    <id>https://cecilapp.github.io/theme-flexsearch/fr/docs/configuration/</id>
    <title>Configuration</title>
    <published>2026-10-20T02:19:06+00:00</published>
    <link href="https://cecilapp.github.io/theme-flexsearch/fr/docs/configuration/" rel="alternate" type="text/html" />
    <content type="html">
      <![CDATA[<h1>Configuration</h1>
<p>La recherche se configure dans la section <code translate="no">flexsearch</code> de la configuration du site.</p>
<h2 id="sections-indexees">Sections indexées</h2>
<p>Les sections indexées sont listées sous <code translate="no">flexsearch.sections</code>, dans l’ordre des groupes de résultats. Par défaut, toutes les sections racines du site sont indexées.</p>
<h3 id="limite">Limite</h3>
<p>L’option <code translate="no">limit</code> définit le nombre maximum de résultats affichés dans un groupe.</p>
<h3 id="decoupage-des-pages">Découpage des pages</h3>
<p>Par défaut, chaque page est découpée en un enregistrement par titre <code translate="no">&lt;h2&gt;</code> et <code translate="no">&lt;h3&gt;</code>, lié à son ancre. Utilisez <code translate="no">split: false</code> pour indexer un seul enregistrement par page, comme pour les articles de blog.</p>
<h3 id="date">Date</h3>
<p>Utilisez <code translate="no">date: true</code> pour afficher la date de la page dans les résultats, à la place du fil d’Ariane.</p>
<h2 id="options-de-recherche">Options de recherche</h2>
<p>L’option <code translate="no">tokenize</code> définit la correspondance des mots (<code translate="no">strict</code>, <code translate="no">forward</code>, <code translate="no">reverse</code> ou <code translate="no">full</code>), et <code translate="no">encoder</code> la normalisation des caractères, par exemple pour ignorer les accents.</p>
<h3 id="poids-des-champs">Poids des champs</h3>
<p>Chaque champ indexé (titre, page, description et contenu) a une résolution, de 1 à 9 : plus elle est élevée, plus une correspondance dans ce champ est pertinente.</p>
<h3 id="recherche-approchee">Recherche approchée</h3>
<p>Avec <code translate="no">suggest: true</code>, la recherche se rabat sur une correspondance approchée quand rien ne correspond strictement : une faute de frappe donne quand même des résultats.</p>
<h3 id="recherches-recentes">Recherches récentes</h3>
<p>Les derniers résultats sélectionnés sont mémorisés dans le navigateur (<code translate="no">localStorage</code>, une liste par langue) et affichés dans un groupe « Récents » à l’ouverture de la boîte de recherche. L’option <code translate="no">recent</code> définit leur nombre maximum (<code translate="no">5</code> par défaut), ou les désactive avec <code translate="no">0</code>.</p>]]>
    </content>
  </entry>
  <entry xml:lang="fr">
    <id>https://cecilapp.github.io/theme-flexsearch/fr/docs/getting-started/</id>
    <title>Démarrage</title>
    <published>2026-10-20T02:19:06+00:00</published>
    <link href="https://cecilapp.github.io/theme-flexsearch/fr/docs/getting-started/" rel="alternate" type="text/html" />
    <content type="html">
      <![CDATA[<h1>Démarrage</h1>
<p>Le thème composant <em>FlexSearch</em> ajoute une recherche plein texte côté client à un site Cecil : l’index de recherche est généré lors du build, et interrogé dans le navigateur grâce à la bibliothèque FlexSearch. Pas de serveur, pas de service externe.</p>
<h2 id="installation">Installation</h2>
<p>Installez le thème avec Composer :</p>
<pre><code class="language-bash hljs bash" translate="no">composer require cecil/theme-flexsearch</code></pre>
<p>Ou téléchargez la dernière archive et décompressez son contenu dans le répertoire <code translate="no">themes/flexsearch</code>.</p>
<h2 id="activer-le-theme">Activer le thème</h2>
<p>Ajoutez <code translate="no">flexsearch</code> dans la section <code translate="no">theme</code> de la configuration :</p>
<pre><code class="language-yaml hljs yaml" translate="no"><span class="hljs-attr">theme:</span>
  <span class="hljs-bullet">-</span> <span class="hljs-string">flexsearch</span></code></pre>
<h2 id="ajouter-le-champ-de-recherche">Ajouter le champ de recherche</h2>
<p>Ajoutez la feuille de style dans le <code translate="no">&lt;head&gt;</code> du gabarit principal, puis incluez le champ de recherche à l’endroit où le bouton doit apparaître, par exemple dans l’en-tête :</p>
<pre><code class="language-twig hljs twig" translate="no"><span class="hljs-template-variable">{{ html(asset('flexsearch/flexsearch.css')) }}</span><span class="xml">
</span><span class="hljs-template-variable">{{ <span class="hljs-name">include</span><span class="hljs-params">('partials/flexsearch.html.twig')</span> }}</span></code></pre>
<h3 id="declencheur-personnalise">Déclencheur personnalisé</h3>
<p>Tout élément portant l’attribut <code translate="no">data-flexsearch-open</code> ouvre la fenêtre de recherche, par exemple un lien du menu de navigation.</p>]]>
    </content>
  </entry>
  <entry xml:lang="fr">
    <id>https://cecilapp.github.io/theme-flexsearch/fr/docs/guides/styles/</id>
    <title>Styles</title>
    <published>2026-10-20T02:19:06+00:00</published>
    <link href="https://cecilapp.github.io/theme-flexsearch/fr/docs/guides/styles/" rel="alternate" type="text/html" />
    <content type="html">
      <![CDATA[<h1>Styles</h1>
<p>Les couleurs et dimensions du champ de recherche sont définies par des propriétés personnalisées CSS, avec des valeurs par défaut claires et sombres.</p>
<h2 id="mode-sombre">Mode sombre</h2>
<p>Le mode sombre suit la préférence du système, sauf si l’élément racine porte un attribut <code translate="no">data-theme</code>, comme le fait le sélecteur de thème de cette démo : essayez-le avec le bouton à côté du champ de recherche.</p>
<h2 id="proprietes-personnalisees">Propriétés personnalisées</h2>
<p>Surchargez les propriétés personnalisées dans votre propre feuille de style, par exemple pour utiliser la couleur d’accent de votre site :</p>
<pre><code class="language-css hljs css" translate="no"><span class="hljs-selector-pseudo">:root</span> {
  <span class="hljs-attribute">--flexsearch-accent</span>: <span class="hljs-number">#163c56</span>;
  <span class="hljs-attribute">--flexsearch-selected-bg</span>: <span class="hljs-number">#f2d07f</span>;
}</code></pre>
<p>Tous les éléments ont une classe <code translate="no">flexsearch-*</code> : les styles peuvent aussi être entièrement remplacés.</p>]]>
    </content>
  </entry>
  <entry xml:lang="fr">
    <id>https://cecilapp.github.io/theme-flexsearch/fr/docs/guides/translations/</id>
    <title>Traductions</title>
    <published>2026-10-20T02:19:06+00:00</published>
    <link href="https://cecilapp.github.io/theme-flexsearch/fr/docs/guides/translations/" rel="alternate" type="text/html" />
    <content type="html">
      <![CDATA[<h1>Traductions</h1>
<p>Le champ de recherche est traduit en anglais et en français, et un index est généré pour chaque langue du site : passez en anglais avec le lien du pied de page, la recherche ne renvoie alors que les pages anglaises.</p>
<h2 id="ajouter-une-langue">Ajouter une langue</h2>
<p>Extrayez les chaînes à traduire dans une autre langue avec la commande suivante, puis traduisez le fichier généré :</p>
<pre><code class="language-bash hljs bash" translate="no">cecil util:translations:extract --locale=&lt;locale&gt; --save --theme=flexsearch</code></pre>]]>
    </content>
  </entry>
  <entry xml:lang="fr">
    <id>https://cecilapp.github.io/theme-flexsearch/fr/blog/live-demo/</id>
    <title>Une démo en ligne</title>
    <published>2026-10-08T00:00:00+00:00</published>
    <link href="https://cecilapp.github.io/theme-flexsearch/fr/blog/live-demo/" rel="alternate" type="text/html" />
    <content type="html">
      <![CDATA[<h1>Une démo en ligne</h1>
<p>Le thème a désormais sa démo en ligne : ce site, construit avec Cecil et déployé sur GitHub Pages à chaque modification du thème. Essayez le champ de recherche ci-dessus !</p>]]>
    </content>
  </entry>
  <entry xml:lang="fr">
    <id>https://cecilapp.github.io/theme-flexsearch/fr/blog/grouped-results/</id>
    <title>Des résultats groupés par section</title>
    <published>2026-08-02T00:00:00+00:00</published>
    <link href="https://cecilapp.github.io/theme-flexsearch/fr/blog/grouped-results/" rel="alternate" type="text/html" />
    <content type="html">
      <![CDATA[<h1>Des résultats groupés par section</h1>
<p>Les résultats de recherche sont désormais groupés par section : les pages de documentation et les articles de blog ne se disputent plus les premières places. Chaque groupe a sa propre limite, et les articles peuvent afficher leur date à la place du fil d’Ariane.</p>]]>
    </content>
  </entry>
  <entry xml:lang="fr">
    <id>https://cecilapp.github.io/theme-flexsearch/fr/blog/first-release/</id>
    <title>Première version du thème FlexSearch</title>
    <published>2026-06-15T00:00:00+00:00</published>
    <link href="https://cecilapp.github.io/theme-flexsearch/fr/blog/first-release/" rel="alternate" type="text/html" />
    <content type="html">
      <![CDATA[<h1>Première version du thème FlexSearch</h1>
<p>Nous avons le plaisir d’annoncer la première version du thème composant <em>FlexSearch</em> pour Cecil. Il apporte une recherche plein texte côté client à n’importe quel site Cecil, avec une fenêtre pilotable au clavier inspirée de DocSearch.</p>
<h2 id="au-programme">Au programme</h2>
<p>L’index est un fichier JSON statique généré lors du build, et la bibliothèque FlexSearch n’est chargée qu’à la première recherche.</p>]]>
    </content>
  </entry>
</feed>
