<rss xmlns:atom="http://www.w3.org/2005/Atom" version="2.0"><channel><title>Grav - Balise - arleo.eu</title><link>https://www.arleo.eu/tags/grav/</link><description>Grav - Balise - arleo.eu</description><generator>Hugo -- gohugo.io</generator><language>fr</language><lastBuildDate>Sat, 09 May 2026 22:29:45 +0200</lastBuildDate><atom:link href="https://www.arleo.eu/tags/grav/" rel="self" type="application/rss+xml"/><item><title>Migration Grav → Hugo : 2 ans de blog basculés en une journée</title><link>https://www.arleo.eu/posts/migration-grav-hugo/</link><pubDate>Sat, 09 May 2026 22:29:45 +0200</pubDate><author>Jmr</author><guid>https://www.arleo.eu/posts/migration-grav-hugo/</guid><description><![CDATA[<div class="featured-image">
                <img src="/images/migration-grav-hugo-featured.jpg" referrerpolicy="no-referrer">
            </div><h2 id="tldr">TL;DR</h2>
<p>Le 9 mai 2026, j&rsquo;ai basculé <code>arleo.eu</code> de <strong>Grav</strong> (CMS PHP) vers <strong>Hugo</strong> (générateur de site statique Go) en une session. Bascule <strong>atomique</strong> (≈ 0 seconde de downtime), 22 articles legacy migrés sous <code>/posts/</code> avec <strong>aliases SEO</strong> pour préserver les URLs Google indexées, monitoring BetterStack <code>/ping</code> intact pendant toute l&rsquo;opération.</p>
<p>Le code et le script de migration sont open source : <a href="https://github.com/jmrGrav/grav-to-hugo-migration" target="_blank" rel="noopener noreffer ">github.com/jmrGrav/grav-to-hugo-migration</a>.</p>]]></description></item><item><title>Migration Grav → Hugo : 32 fichiers, 0 régression</title><link>https://www.arleo.eu/posts/migration-grav-vers-hugo/</link><pubDate>Sat, 09 May 2026 12:38:56 +0200</pubDate><author>Jmr</author><guid>https://www.arleo.eu/posts/migration-grav-vers-hugo/</guid><description><![CDATA[<div class="featured-image">
                <img src="/images/migration-grav-vers-hugo-featured.jpg" referrerpolicy="no-referrer">
            </div><h2 id="tldr">TL;DR</h2>
<p>arleo.eu tournait sur <strong>Grav CMS</strong> depuis ~3 ans : flat-file, PHP-FPM, ModSecurity, Cloudflare. Tout marchait. Mais la dette opérationnelle s&rsquo;accumulait : MAJ PHP, plugins Grav à patcher, TTFB qui grimpait à &gt;800ms sur certaines pages.</p>
<p>J&rsquo;ai migré vers <strong>Hugo</strong> (générateur de site statique en Go) en deux semaines, en gardant les mêmes URLs, le même contenu, et les deux langues FR/EN. <strong>Zéro régression</strong> côté SEO, indexation Cloudflare, ou liens internes. Voici comment.</p>
<h2 id="pourquoi-hugo">Pourquoi Hugo</h2>
<p>J&rsquo;avais 3 critères :</p>
<ol>
<li><strong>Performance</strong> — Statique pur. Pas de PHP, pas de DB. nginx sert directement les <code>.html</code> pré-générés.</li>
<li><strong>Sécurité</strong> — Surface d&rsquo;attaque divisée par 10. Plus de PHP-FPM, plus d&rsquo;exécution serveur sur les pages publiques.</li>
<li><strong>Multilingue propre</strong> — Hugo supporte nativement i18n via la convention <code>index.{lang}.md</code> (page bundles).</li>
</ol>
<p>Hugo coche tout. Les alternatives évaluées : <strong>Eleventy</strong> (JS, mais moins mature niveau i18n), <strong>Zola</strong> (Rust, super, mais écosystème thèmes plus restreint), <strong>Gatsby</strong> (trop lourd pour un homelab).</p>]]></description></item><item><title>Grav MCP Server : connecter Claude.ai à son site en 30 minutes</title><link>https://www.arleo.eu/posts/grav-mcp-server/</link><pubDate>Fri, 17 Apr 2026 16:00:00 +0200</pubDate><author>Jmr</author><guid>https://www.arleo.eu/posts/grav-mcp-server/</guid><description><![CDATA[<div class="featured-image">
                <img src="/images/grav-mcp-server-featured.jpg" referrerpolicy="no-referrer">
            </div><h2 id="-en-bref">⚡ En bref</h2>
<p>Connecter Claude.ai à son site Grav en 30 minutes : un plugin PHP expose 9 outils (lire, créer, modifier, supprimer des pages, gérer les plugins) via JSON-RPC 2.0, un proxy FastAPI gère l&rsquo;authentification OAuth 2.1, et nginx fait le pont entre Internet et le homelab. Résultat : Claude peut lire et modifier le contenu du site directement depuis une conversation.</p>
<p>Le code est disponible sur GitHub :</p>
<ul>
<li>🔌 Plugin Grav : <a href="https://github.com/jmrGrav/grav-plugin-mcp-server" target="_blank" rel="noopener noreffer ">jmrGrav/grav-plugin-mcp-server</a></li>
<li>🔐 Proxy OAuth : <a href="https://github.com/jmrGrav/mcp-oauth-proxy" target="_blank" rel="noopener noreffer ">jmrGrav/mcp-oauth-proxy</a></li>
</ul>
<h2 id="-pourquoi">🧠 Pourquoi</h2>
<p>Le protocole <a href="https://modelcontextprotocol.io/" target="_blank" rel="noopener noreffer ">MCP (Model Context Protocol)</a> d&rsquo;Anthropic permet à Claude.ai de se connecter à des sources de données externes via des outils standardisés. Jusqu&rsquo;ici, aucun plugin MCP n&rsquo;existait pour Grav CMS.</p>]]></description></item><item><title>Plugin Grav Google Indexing : soumettre automatiquement ses pages à Google</title><link>https://www.arleo.eu/posts/grav-plugin-google-indexing/</link><pubDate>Fri, 17 Apr 2026 14:00:00 +0200</pubDate><author>Jmr</author><guid>https://www.arleo.eu/posts/grav-plugin-google-indexing/</guid><description><![CDATA[<div class="featured-image">
                <img src="/images/grav-plugin-google-indexing-featured.jpg" referrerpolicy="no-referrer">
            </div><h2 id="-en-bref">⚡ En bref</h2>
<p>Après le plugin IndexNow (Bing/Yandex), ce second plugin complète le pipeline SEO en soumettant les pages modifiées directement à l&rsquo;<strong>API Google Indexing</strong> — sans dépendance Composer, avec un JWT RS256 signé en PHP pur à partir d&rsquo;un service account Google Cloud.</p>
<p>Le code est disponible sur GitHub :</p>
<ul>
<li>🔌 Plugin : <a href="https://github.com/jmrGrav/grav-plugin-google-indexing" target="_blank" rel="noopener noreffer ">jmrGrav/grav-plugin-google-indexing</a></li>
</ul>
<h2 id="-pourquoi">🧠 Pourquoi</h2>
<p>IndexNow couvre Bing et Yandex, mais <strong>Google ne supporte pas IndexNow</strong>. Pour notifier Google instantanément, il faut passer par son API dédiée : <a href="https://developers.google.com/search/apis/indexing-api/v3/prereqs" target="_blank" rel="noopener noreffer ">Google Indexing API v3</a>.</p>]]></description></item><item><title>Plugin Grav IndexNow : soumettre automatiquement ses pages aux moteurs de recherche</title><link>https://www.arleo.eu/posts/grav-plugin-indexnow/</link><pubDate>Fri, 17 Apr 2026 12:00:00 +0200</pubDate><author>Jmr</author><guid>https://www.arleo.eu/posts/grav-plugin-indexnow/</guid><description><![CDATA[<div class="featured-image">
                <img src="/images/grav-plugin-indexnow-featured.jpg" referrerpolicy="no-referrer">
            </div><h2 id="-en-bref">⚡ En bref</h2>
<p>Grav ne dispose d&rsquo;aucun plugin IndexNow dans son catalogue officiel. Ce plugin maison comble ce manque en soumettant automatiquement les URLs modifiées à <code>api.indexnow.org</code> à chaque sauvegarde — que ce soit via l&rsquo;admin Grav ou via le plugin MCP — sans intervention manuelle, sans cron, sans dépendance externe.</p>
<p>Le code est disponible sur GitHub :</p>
<ul>
<li>🔌 Plugin : <a href="https://github.com/jmrGrav/grav-plugin-indexnow" target="_blank" rel="noopener noreffer ">jmrGrav/grav-plugin-indexnow</a></li>
</ul>
<h2 id="-pourquoi">🧠 Pourquoi</h2>
<p><a href="https://www.indexnow.org/" target="_blank" rel="noopener noreffer ">IndexNow</a> est un protocole ouvert permettant de notifier instantanément les moteurs de recherche compatibles (Bing, Yandex) qu&rsquo;une page a été créée ou modifiée. Sans lui, les moteurs attendent leur prochain passage de crawler — qui peut prendre des heures ou des jours.</p>]]></description></item></channel></rss>