<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0"
     xmlns:atom="http://www.w3.org/2005/Atom"
     xmlns:content="http://purl.org/rss/1.0/modules/content/"
     xmlns:media="http://search.yahoo.com/mrss/">
    <channel>
        <title># notACMS</title>
        <link>https://notacms.holas.pl/fr/</link>
        <description><![CDATA[AI-friendly static site generator. Zero database. Pure Markdown.]]></description>
        <language>fr</language>
        <atom:link href="https://notacms.holas.pl/fr/feed/" rel="self" type="application/rss+xml"/>
                <lastBuildDate>Fri, 24 Apr 2026 00:00:00 +0000</lastBuildDate>
                        <item>
            <title><![CDATA[notACMS 1.1.0 — Cœur minimal, thème démo, à vous de choisir]]></title>
            <link>https://notacms.holas.pl/fr/articles/release-1-1-0/</link>
            <guid isPermaLink="true">https://notacms.holas.pl/fr/articles/release-1-1-0/</guid>
                        <pubDate>Fri, 24 Apr 2026 00:00:00 +0000</pubDate>
                        <description><![CDATA[Deux thèmes, un choix au premier build Le changement phare de 1.1.0 : notACMS livre désormais deux thèmes d&#039;origine, et vous en choisissez un dès votre tout premier build : ./notACMS deploy --demo # par défaut — le design amber-phosphor que vous voyez ici ./notACMS deploy --bare # un wireframe minimal : polices système, mode clair, ~200 lignes de CSS ddev build accepte les mêmes flags. Quel que so…]]></description>
            <content:encoded><![CDATA[<h2>Deux thèmes, un choix au premier build<a id="deux-thèmes-un-choix-au-premier-build" href="#deux-thèmes-un-choix-au-premier-build" class="heading-anchor" aria-hidden="true" title="Permalink">#</a></h2>
<p>Le changement phare de 1.1.0 : notACMS livre désormais deux thèmes d'origine, et vous en choisissez un dès votre tout premier build :</p>
<pre><code class="language-bash">./notACMS deploy --demo    # par défaut — le design amber-phosphor que vous voyez ici
./notACMS deploy --bare    # un wireframe minimal : polices système, mode clair, ~200 lignes de CSS
</code></pre>
<p><code>ddev build</code> accepte les mêmes flags. Quel que soit votre choix, toutes les fonctionnalités fonctionnent : contenu multilingue, blog, RSS, sitemap, recherche, formulaire de contact, images avec variantes responsives, temps de lecture, indicateur de progression. La différence ne se joue que sur l'apparence — et, surtout, sur ce que vous héritez avant de commencer à personnaliser.</p>
<h3>Cœur minimal<a id="cœur-minimal" href="#cœur-minimal" class="heading-anchor" aria-hidden="true" title="Permalink">#</a></h3>
<p>Le cœur situé dans <code>templates/</code>, <code>assets/</code>, <code>translations/</code> est désormais un wireframe. Il est volontairement minimal pour que surcharger un seul bloc ne traîne pas derrière lui un langage visuel contre lequel il faudrait lutter. Si vous construisez un design sur mesure, partez du bare et vous maîtrisez l'intégralité du rendu dès le premier jour.</p>
<h3>Thème démo<a id="thème-démo" href="#thème-démo" class="heading-anchor" aria-hidden="true" title="Permalink">#</a></h3>
<p>Le démo vit sous <code>docs/demo/</code> et est copié dans <code>local/</code> quand vous choisissez <code>--demo</code>. C'est le design amber-phosphor complet que vous lisez en ce moment — mode sombre, overlay de recherche, sidebar docs, bouton de thème, tout y est. Partez de là si vous voulez un design abouti dès aujourd'hui et prévoyez d'ajuster, pas de reconstruire.</p>
<h2>Le système de surcharges <code>local/</code><a id="le-système-de-surcharges-local" href="#le-système-de-surcharges-local" class="heading-anchor" aria-hidden="true" title="Permalink">#</a></h2>
<p>Les deux thèmes utilisent le même mécanisme : chaque fichier dans <code>local/</code> prend le pas sur le chemin correspondant du cœur.</p>
<table>
<thead>
<tr>
<th>Couche</th>
<th>Emplacement de surcharge</th>
<th>Resolver</th>
</tr>
</thead>
<tbody>
<tr>
<td>Templates Twig</td>
<td><code>local/templates/*.html.twig</code></td>
<td>Kernel Symfony</td>
</tr>
<tr>
<td>Point d'entrée SCSS</td>
<td><code>local/assets/styles/app_local.scss</code></td>
<td>Bundle Sass</td>
</tr>
<tr>
<td>Point d'entrée JS</td>
<td><code>local/assets/app.js</code></td>
<td>Importmap AssetMapper</td>
</tr>
<tr>
<td>Traductions</td>
<td><code>local/translations/messages.*.yaml</code></td>
<td>Translator Symfony</td>
</tr>
<tr>
<td>Contenu</td>
<td><code>local/content/**</code></td>
<td>Paramètre <code>notacms_content</code></td>
</tr>
<tr>
<td>Fragments Nginx</td>
<td><code>local/docker/nginx/*.conf</code></td>
<td>Entrypoint du conteneur</td>
</tr>
</tbody>
</table>
<p>Le cœur n'est jamais modifié. <code>git pull</code> reste propre. Les personnalisations vivent dans le dépôt de votre site, pas dans un fork de celui-ci.</p>
<h2>Mise à niveau depuis 1.0.0<a id="mise-à-niveau-depuis-100" href="#mise-à-niveau-depuis-100" class="heading-anchor" aria-hidden="true" title="Permalink">#</a></h2>
<p>Si vous tourniez en 1.0.0 et voulez que votre site ait exactement la même apparence, le paquet de compatibilité tient en une ligne :</p>
<pre><code class="language-bash">cp -r docs/customization/old-template/. local/
ddev build
</code></pre>
<p>Cela dépose le thème pré-1.1.0 complet — templates, SCSS, polices, images, traductions — dans <code>local/</code>. Votre site s'affiche exactement comme avant. Vous pouvez ensuite retirer des fichiers de <code>local/</code> au fur et à mesure que vous adoptez de nouveaux éléments de design.</p>
<p>Les vraies ruptures auxquelles vous ferez face si vous aviez personnalisé l'ancien cœur :</p>
<ul>
<li><strong>Point d'entrée SCSS renommé</strong> : <code>local/assets/styles/local.scss</code> → <code>local/assets/styles/app_local.scss</code>. Renommez le fichier et mettez à jour l'import dans <code>local/assets/app.js</code>.</li>
<li><strong>Variables SCSS de couleur du cœur remplacées par des CSS custom properties</strong> : <code>$color-body</code> → <code>var(--text)</code>, <code>$color-link</code> → <code>var(--accent)</code>, etc. Correspondance complète dans <a rel="nofollow noopener noreferrer" target="_blank" href="https://github.com/holas1337/notACMS/blob/main/UPGRADE-1.1.md">UPGRADE-1.1.md</a>.</li>
<li><strong>Clés de traduction retirées</strong> du cœur (toujours présentes dans le thème démo) : <code>header.tagline</code>, <code>nav.projects</code>, <code>nav.search</code>, <code>blog.published_on</code>, <code>blog.comments_disabled</code>. Si vos templates appellent <code>'...'|trans</code> dessus, mettez-les à jour.</li>
<li><strong>Répertoire <code>docs/examples/</code> retiré</strong> : les éléments utiles ont été déplacés vers <code>docs/customization/old-template/</code> ; les exemples de surcharge ont été supplantés par le modèle bare/démo.</li>
</ul>
<p>Voir <a rel="nofollow noopener noreferrer" target="_blank" href="https://github.com/holas1337/notACMS/blob/main/UPGRADE-1.1.md">UPGRADE-1.1.md</a> pour la liste complète avec extraits avant/après.</p>
<h2>Également nouveau en 1.1.0<a id="également-nouveau-en-110" href="#également-nouveau-en-110" class="heading-anchor" aria-hidden="true" title="Permalink">#</a></h2>
<ul>
<li><strong>Temps de lecture</strong> et <strong>indicateur de progression</strong> sur les posts, docs et releases.</li>
<li><strong>Sélecteur de langue</strong> comme extension Twig (<code>lang_switch_urls</code>) avec des chaînes de fallback correctes pour les archives, listes paginées et pages d'accueil.</li>
<li><strong>Les extraits de posts retirent les ancres de titres</strong> — plus de <code>#</code> parasites dans les cartes de liste.</li>
<li><strong>Ossature de suite de tests</strong> sous <code>tests/Unit/</code>, <code>tests/Integration/</code>, <code>tests/Fixtures/</code> avec une couverture initiale et une commande <code>test</code> exécutable depuis l'hôte.</li>
<li><strong>Skills d'agent IA</strong> sous <code>.claude/skills/</code> pour travailler sur le dépôt : ajout de locales, vérifications d'alignement des docs, balayages de site, traductions et génération de guides de mise à niveau.</li>
</ul>
<h2>Changelog complet<a id="changelog-complet" href="#changelog-complet" class="heading-anchor" aria-hidden="true" title="Permalink">#</a></h2>
<p>Chaque changement avec sa catégorie : <a rel="nofollow noopener noreferrer" target="_blank" href="https://github.com/holas1337/notACMS/blob/main/CHANGELOG.md#110---2026-04-24">CHANGELOG.md</a>.</p>
]]></content:encoded>
                                    <category><![CDATA[releases]]></category>
                                    <category><![CDATA[release]]></category>
                        <category><![CDATA[announcement]]></category>
                    </item>
                <item>
            <title><![CDATA[notACMS v1.0.0 — Première version stable]]></title>
            <link>https://notacms.holas.pl/fr/articles/release-1-0-0/</link>
            <guid isPermaLink="true">https://notacms.holas.pl/fr/articles/release-1-0-0/</guid>
                        <pubDate>Thu, 09 Apr 2026 00:00:00 +0000</pubDate>
                        <description><![CDATA[v1.0.0 La première version stable de notACMS. Tout est fonctionnel : Markdown + YAML, Twig, build statique, recherche Pagefind, et formulaire de contact optionnel.]]></description>
            <content:encoded><![CDATA[<h2>v1.0.0<a id="v100" href="#v100" class="heading-anchor" aria-hidden="true" title="Permalink">#</a></h2>
<p>La première version stable de notACMS. Tout est fonctionnel : Markdown + YAML, Twig, build statique, recherche Pagefind, et formulaire de contact optionnel.</p>
]]></content:encoded>
                                    <category><![CDATA[releases]]></category>
                                    <category><![CDATA[release]]></category>
                    </item>
                <item>
            <title><![CDATA[L&#039;idée]]></title>
            <link>https://notacms.holas.pl/fr/articles/the-idea/</link>
            <guid isPermaLink="true">https://notacms.holas.pl/fr/articles/the-idea/</guid>
                        <pubDate>Fri, 01 Nov 2024 00:00:00 +0000</pubDate>
                        <description><![CDATA[Contexte plus complet sur mon blog personnel : I left WordPress. Pourquoi Chaque outil existant semblait nécessiter l&#039;apprentissage d&#039;un nouvel écosystème. notACMS est le générateur que j&#039;aurais voulu trouver : une couche fine sur Symfony, du contenu en fichiers plats, une commande pour tout construire.]]></description>
            <content:encoded><![CDATA[<blockquote>
<p>Contexte plus complet sur mon blog personnel : <a rel="nofollow noopener noreferrer" target="_blank" href="https://holas.pl/blog/why-i-left-wordpress/">I left WordPress</a>.</p>
</blockquote>
<h2>Pourquoi<a id="pourquoi" href="#pourquoi" class="heading-anchor" aria-hidden="true" title="Permalink">#</a></h2>
<p>Chaque outil existant semblait nécessiter l'apprentissage d'un nouvel écosystème. notACMS est le générateur que j'aurais voulu trouver : une couche fine sur Symfony, du contenu en fichiers plats, une commande pour tout construire.</p>
]]></content:encoded>
                                    <category><![CDATA[releases]]></category>
                                    <category><![CDATA[announcement]]></category>
                    </item>
            </channel>
</rss>
