<?xml version="1.0" encoding="utf-8" standalone="yes"?><rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom">
    <channel>
        <title>Hugo on Pascal&#39;s weblog</title>
        <link>https://pled.fr/categories/hugo/</link>
        <description>Recent content in Hugo on Pascal&#39;s weblog</description>
        <generator>Hugo -- gohugo.io</generator>
        <language>fr</language>
        <lastBuildDate>Thu, 16 Jul 2026 16:18:48 +0000</lastBuildDate><atom:link href="https://pled.fr/categories/hugo/index.xml" rel="self" type="application/rss+xml" /><item>
            <title>Hugo : Installation de remark42 pour les commentaires</title>
            <link>https://pled.fr/hugo-installation-de-remark42-pour-les-commentaires/</link>
            <pubDate>Thu, 16 Jul 2026 16:18:48 +0000</pubDate>
            <guid>https://pled.fr/hugo-installation-de-remark42-pour-les-commentaires/</guid>
            <description>&lt;p&gt;&lt;img loading=&#34;lazy&#34; sizes=&#34;(max-width: 767px) calc(100vw - 30px), (max-width: 1023px) 700px, (max-width: 1279px) 950px, 1232px&#34; src=&#34;remark42-1.png#floatleft&#34;&gt;&lt;/p&gt;&#xA;&lt;p&gt;Je poursuis mon projet de passer le blog de WP à Hugo. Maintenant que j&amp;rsquo;ai installé mon serveur Hugo en local, que j&amp;rsquo;ai trouvé un thème, et que je l&amp;rsquo;ai personnalisé (voir &lt;a class=&#34;link&#34; href=&#34;https://pled.fr/hugo-avec-theme-stack-installation-en-local/&#34; &gt;article précédent&lt;/a&gt;), il est temps de penser au système de commentaires que je souhaite ajouter, et à le tester.&lt;/p&gt;&#xA;&lt;p&gt;Comme je le disais dans l&amp;rsquo;article à propos de &lt;a class=&#34;link&#34; href=&#34;https://pled.fr/migrer-le-blog-vers-hugo/&#34; &gt;migrer le blog vers Hugo&lt;/a&gt;, j&amp;rsquo;ai choisi &lt;a class=&#34;link&#34; href=&#34;https://remark42.com/&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;&#xA;    &gt;Remark42&lt;/a&gt; comme système de commentaire. Il a plusieurs qualités qui m&amp;rsquo;ont intéressé :&lt;/p&gt;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;on peut l&amp;rsquo;auto-héberger dans un container docker.&lt;/li&gt;&#xA;&lt;li&gt;le thème Stack que j&amp;rsquo;ai choisi le supporte de base (utile surtout pour le css).&lt;/li&gt;&#xA;&lt;li&gt;on peut importer les commentaires du site Wordpress que l&amp;rsquo;on migre.&lt;/li&gt;&#xA;&lt;li&gt;Il est basé sur la sécurité et le respect de la vie privée.&lt;/li&gt;&#xA;&lt;li&gt;Il est recommandé par l&amp;rsquo;outil de migration &lt;a class=&#34;link&#34; href=&#34;https://github.com/ashishb/wp2hugo&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;&#xA;    &gt;wp2hugo&lt;/a&gt;.&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;&lt;p&gt;Il coche donc toutes les cases. Il lui manque peut-être une interface d&amp;rsquo;administration, mais est-ce vraiment utile ? on peut quand même bloquer un utilisateur, supprimer un commentaire, désactiver les commentaires pour un article. L&amp;rsquo;essentiel est là.&lt;/p&gt;&#xA;&lt;p&gt;On trouve quelques tutos pour l&amp;rsquo;installer et le paramétrer comme par exemple :&lt;/p&gt;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;&#xA;&lt;p&gt;&lt;a class=&#34;link&#34; href=&#34;https://blog.laromierre.com/fr/posts/how-to-self-host-remark42-comments-with-docker-hugo&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;&#xA;    &gt;https://blog.laromierre.com/fr/posts/how-to-self-host-remark42-comments-with-docker-hugo&lt;/a&gt;&lt;/p&gt;&#xA;&lt;/li&gt;&#xA;&lt;li&gt;&#xA;&lt;p&gt;&lt;a class=&#34;link&#34; href=&#34;https://www.devbitsandbytes.com/setting-up-remark42-from-scratch/&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;&#xA;    &gt;https://www.devbitsandbytes.com/setting-up-remark42-from-scratch/&lt;/a&gt;&lt;/p&gt;&#xA;&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;&lt;p&gt;C&amp;rsquo;est donc parti pour l&amp;rsquo;installation !&lt;/p&gt;&#xA;&lt;h3 id=&#34;docker&#34;&gt;Docker&#xA;&lt;/h3&gt;&lt;p&gt;On commence bien sûr par installer le container Docker. Comme d&amp;rsquo;habitude, j&amp;rsquo;utilise Dockge pour ce faire, avec le fichier &lt;code&gt;compose.yaml&lt;/code&gt; suivant (qui sera modifié par la suite, mais c&amp;rsquo;est une base pour démarrer) :&lt;/p&gt;&#xA;&lt;div class=&#34;highlight&#34;&gt;&lt;pre tabindex=&#34;0&#34; style=&#34;color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-text-size-adjust:none;&#34;&gt;&lt;code class=&#34;language-yaml&#34; data-lang=&#34;yaml&#34;&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#f92672&#34;&gt;services&lt;/span&gt;:&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;  &lt;span style=&#34;color:#f92672&#34;&gt;remark&lt;/span&gt;:&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;    &lt;span style=&#34;color:#f92672&#34;&gt;image&lt;/span&gt;: &lt;span style=&#34;color:#ae81ff&#34;&gt;ghcr.io/umputun/remark42:latest&lt;/span&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;    &lt;span style=&#34;color:#f92672&#34;&gt;container_name&lt;/span&gt;: &lt;span style=&#34;color:#ae81ff&#34;&gt;remark42&lt;/span&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;    &lt;span style=&#34;color:#f92672&#34;&gt;hostname&lt;/span&gt;: &lt;span style=&#34;color:#ae81ff&#34;&gt;remark42&lt;/span&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;    &lt;span style=&#34;color:#f92672&#34;&gt;restart&lt;/span&gt;: &lt;span style=&#34;color:#ae81ff&#34;&gt;always&lt;/span&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;    &lt;span style=&#34;color:#f92672&#34;&gt;logging&lt;/span&gt;:&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;      &lt;span style=&#34;color:#f92672&#34;&gt;driver&lt;/span&gt;: &lt;span style=&#34;color:#ae81ff&#34;&gt;json-file&lt;/span&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;      &lt;span style=&#34;color:#f92672&#34;&gt;options&lt;/span&gt;:&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;        &lt;span style=&#34;color:#f92672&#34;&gt;max-size&lt;/span&gt;: &lt;span style=&#34;color:#ae81ff&#34;&gt;10m&lt;/span&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;        &lt;span style=&#34;color:#f92672&#34;&gt;max-file&lt;/span&gt;: &lt;span style=&#34;color:#e6db74&#34;&gt;&amp;#34;5&amp;#34;&lt;/span&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;    &lt;span style=&#34;color:#75715e&#34;&gt;# uncomment to expose directly (no proxy)&lt;/span&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;    &lt;span style=&#34;color:#f92672&#34;&gt;ports&lt;/span&gt;:&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;      - &lt;span style=&#34;color:#ae81ff&#34;&gt;8132&lt;/span&gt;:&lt;span style=&#34;color:#ae81ff&#34;&gt;8080&lt;/span&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;    &lt;span style=&#34;color:#75715e&#34;&gt;#  - &amp;#34;443:8443&amp;#34;&lt;/span&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;    &lt;span style=&#34;color:#75715e&#34;&gt;# uncomment to expose to reverse proxy running on the same host but not in docker&lt;/span&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;    &lt;span style=&#34;color:#75715e&#34;&gt;#ports:&lt;/span&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;    &lt;span style=&#34;color:#75715e&#34;&gt;#  - &amp;#34;127.0.0.1:8080:8080&amp;#34;&lt;/span&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;    &lt;span style=&#34;color:#f92672&#34;&gt;environment&lt;/span&gt;:&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;      - &lt;span style=&#34;color:#ae81ff&#34;&gt;REMARK_URL=https://remark42.mon-domaine.fr&lt;/span&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;      - &lt;span style=&#34;color:#ae81ff&#34;&gt;SECRET=xxxxx&lt;/span&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;      - &lt;span style=&#34;color:#ae81ff&#34;&gt;DEBUG=true&lt;/span&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;      - &lt;span style=&#34;color:#ae81ff&#34;&gt;AUTH_GOOGLE_CID&lt;/span&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;      - &lt;span style=&#34;color:#ae81ff&#34;&gt;AUTH_GOOGLE_CSEC&lt;/span&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;      - &lt;span style=&#34;color:#ae81ff&#34;&gt;AUTH_GITHUB_CID=xxxxxxxxxxxxxxxxxxxxxxx&lt;/span&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;      - &lt;span style=&#34;color:#ae81ff&#34;&gt;AUTH_GITHUB_CSEC=yyyyyyyyyyyyyyyyyyyyyyyyyyyyyy&lt;/span&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;      - &lt;span style=&#34;color:#ae81ff&#34;&gt;AUTH_FACEBOOK_CID&lt;/span&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;      - &lt;span style=&#34;color:#ae81ff&#34;&gt;AUTH_FACEBOOK_CSEC&lt;/span&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;      - &lt;span style=&#34;color:#ae81ff&#34;&gt;AUTH_DISQUS_CID&lt;/span&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;      - &lt;span style=&#34;color:#ae81ff&#34;&gt;AUTH_DISQUS_CSEC&lt;/span&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;      &lt;span style=&#34;color:#75715e&#34;&gt;# Enable it only for the initial comment import or for manual backups.&lt;/span&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;      &lt;span style=&#34;color:#75715e&#34;&gt;# Do not leave the server running with the ADMIN_PASSWD set if you don&amp;#39;t have an intention&lt;/span&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;      &lt;span style=&#34;color:#75715e&#34;&gt;# to keep creating backups manually!&lt;/span&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;      - &lt;span style=&#34;color:#ae81ff&#34;&gt;ADMIN_PASSWD=remark42&lt;/span&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;    &lt;span style=&#34;color:#f92672&#34;&gt;volumes&lt;/span&gt;:&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;      - &lt;span style=&#34;color:#ae81ff&#34;&gt;/srv/dev-disk-by-uuid-wwww-xxxx-yyyy-zzzz/AppData/remark42/var:/srv/var&lt;/span&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#f92672&#34;&gt;networks&lt;/span&gt;: {}&#xA;&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;ul&gt;&#xA;&lt;li&gt;J&amp;rsquo;ai laissé les paramètres d&amp;rsquo;authentification des réseaux sociaux, mais je n&amp;rsquo;utiliserai que Github, dont les paramètres sont expliqués plus bas.&lt;/li&gt;&#xA;&lt;li&gt;J&amp;rsquo;ai défini au niveau de mon hébergeur un sous-domaine pour ce serveur.&lt;/li&gt;&#xA;&lt;li&gt;Le paramètre REMARK_URL &lt;strong&gt;doit être&lt;/strong&gt; l&amp;rsquo;adresse externe par laquelle le service sera utilisé.&lt;/li&gt;&#xA;&lt;li&gt;Mon proxy (swag) tourne dans un autre container, et j&amp;rsquo;y ai ajouté un fichier &lt;code&gt;remark42.subdomain.conf&lt;/code&gt; standard.&lt;/li&gt;&#xA;&lt;li&gt;Le paramètre ADMIN_PASSWD est activé pour pouvoir importer les commentaires de WP. Je le désactiverai ensuite.&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;&lt;p&gt;On le lance, et ajoute PING à l&amp;rsquo;adresse du serveur : on reçoit &amp;ldquo;pong&amp;rdquo;, et donc le service tourne ! :cool:&lt;/p&gt;&#xA;&lt;p&gt;&lt;img class=&#34;gallery-image&#34; data-flex-basis=&#34;1237px&#34; data-flex-grow=&#34;515&#34; height=&#34;103&#34; loading=&#34;lazy&#34; sizes=&#34;(max-width: 767px) calc(100vw - 30px), (max-width: 1023px) 700px, (max-width: 1279px) 950px, 1232px&#34; src=&#34;https://pled.fr/hugo-installation-de-remark42-pour-les-commentaires/ping-pong-1.png&#34; width=&#34;531&#34;&gt;&lt;/p&gt;&#xA;&lt;h3 id=&#34;autorisations&#34;&gt;Autorisations&#xA;&lt;/h3&gt;&lt;p&gt;Remark42 supporte l&amp;rsquo;identification via les réseaux sociaux de type Facebook, Apple ou Google : je ne les traiterai pas ici, et je n&amp;rsquo;ai pas l&amp;rsquo;intention de les activer pour mon blog. Je souhaite autoriser les commentaires anonymes, ceux avec un compte mail classique, et pour le fun j&amp;rsquo;ai ajouté Github.&lt;/p&gt;&#xA;&lt;h4 id=&#34;mail&#34;&gt;Mail&#xA;&lt;/h4&gt;&lt;p&gt;Voilà les paramètres à ajouter au fichier &lt;code&gt;compose.yaml&lt;/code&gt; de remark42, à modifier en fonction de votre fournisseur :&lt;/p&gt;&#xA;&lt;div class=&#34;highlight&#34;&gt;&lt;pre tabindex=&#34;0&#34; style=&#34;color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-text-size-adjust:none;&#34;&gt;&lt;code class=&#34;language-bash&#34; data-lang=&#34;bash&#34;&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;SMTP_HOST&lt;span style=&#34;color:#f92672&#34;&gt;=&lt;/span&gt;smtp.mail.com&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;SMTP_PORT&lt;span style=&#34;color:#f92672&#34;&gt;=&lt;/span&gt;&lt;span style=&#34;color:#ae81ff&#34;&gt;465&lt;/span&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;SMTP_TLS&lt;span style=&#34;color:#f92672&#34;&gt;=&lt;/span&gt;true&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;SMTP_STARTTLS&lt;span style=&#34;color:#f92672&#34;&gt;=&lt;/span&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;SMTP_USERNAME&lt;span style=&#34;color:#f92672&#34;&gt;=&lt;/span&gt;user@exemple.fr&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;SMTP_PASSWORD&lt;span style=&#34;color:#f92672&#34;&gt;=&lt;/span&gt;mot_de_passe&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;NOTIFY_USERS&lt;span style=&#34;color:#f92672&#34;&gt;=&lt;/span&gt;email&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;NOTIFY_EMAIL_VERIFICATION_SUBJ &lt;span style=&#34;color:#75715e&#34;&gt;# &amp;#34;Email verification&amp;#34; by default&lt;/span&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;NOTIFY_ADMINS&lt;span style=&#34;color:#f92672&#34;&gt;=&lt;/span&gt;email&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;NOTIFY_EMAIL_FROM&lt;span style=&#34;color:#f92672&#34;&gt;=&lt;/span&gt;&lt;span style=&#34;color:#e6db74&#34;&gt;&amp;#34;Remark42 notifications&amp;#34;&lt;/span&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;ADMIN_SHARED_EMAIL&lt;span style=&#34;color:#f92672&#34;&gt;=&lt;/span&gt;administrateur@mail.fr&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;AUTH_ANON&lt;span style=&#34;color:#f92672&#34;&gt;=&lt;/span&gt;true &lt;span style=&#34;color:#75715e&#34;&gt;# enable anonymous commenting&lt;/span&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;ul&gt;&#xA;&lt;li&gt;Les paramètres SMTP_ sont obligatoires pour utiliser les fonctions de mail de Remark42.&lt;/li&gt;&#xA;&lt;li&gt;Les paramètres NOTIFY_ permettent à l&amp;rsquo;utilisateur et/ou à l&amp;rsquo;administrateur de recevoir un mail en cas de nouveau commentaire sur l&amp;rsquo;adresse définie avec ADMIN_SHARED_EMAIL.&lt;/li&gt;&#xA;&lt;li&gt;Enfin, le paramètre AUTH_ANON autorise les commentaires anonymes.&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;&lt;p&gt;Remark42 a l&amp;rsquo;air assez pointu sur la sécurité, et lors de votre premier commentaire, un TOKEN vous est envoyé par mail que vous devrez copier/coller pour pouvoir envoyer votre commentaire.&lt;/p&gt;&#xA;&lt;p&gt;&lt;img class=&#34;gallery-image&#34; data-flex-basis=&#34;541px&#34; data-flex-grow=&#34;225&#34; height=&#34;240&#34; loading=&#34;lazy&#34; sizes=&#34;(max-width: 767px) calc(100vw - 30px), (max-width: 1023px) 700px, (max-width: 1279px) 950px, 1232px&#34; src=&#34;https://pled.fr/hugo-installation-de-remark42-pour-les-commentaires/token.png&#34; width=&#34;541&#34;&gt;&lt;/p&gt;&#xA;&lt;p&gt;Concernant l&amp;rsquo;autorisation de commentaires anonymes, à voir à l&amp;rsquo;usage, car sans les plugins WP de filtrage et autres détections de commentaires indésirables envoyés par des bots (et ce n&amp;rsquo;est pas ça qui manque !), je ne sais pas du tout quel sera la situation avec Hugo et Remark42 sur ce sujet. Je devrai peut-être annuler les commentaires anonymes.&lt;/p&gt;&#xA;&lt;h4 id=&#34;github&#34;&gt;GitHub&#xA;&lt;/h4&gt;&lt;p&gt;Il faut d&amp;rsquo;abord créer un nouveau &lt;strong&gt;&amp;ldquo;OAuth App&amp;rdquo;&lt;/strong&gt;: &lt;a class=&#34;link&#34; href=&#34;https://github.com/settings/developers&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;&#xA;    &gt;https://github.com/settings/developers&lt;/a&gt;. Renseigner &lt;strong&gt;&amp;ldquo;Application Name&amp;rdquo;&lt;/strong&gt; and &lt;strong&gt;&amp;ldquo;Homepage URL&amp;rdquo;&lt;/strong&gt; pour votre site. Sous &lt;strong&gt;&amp;ldquo;Authorization callback URL&amp;rdquo;&lt;/strong&gt; saisir l&amp;rsquo;URL de type FQDN suivie de &lt;code&gt;/auth/github/callback&lt;/code&gt;, soit par exemple : &lt;code&gt;https://remark42.mysite.com/auth/github/callback&lt;/code&gt;&lt;/p&gt;&#xA;&lt;p&gt;&lt;img class=&#34;gallery-image&#34; data-flex-basis=&#34;653px&#34; data-flex-grow=&#34;272&#34; height=&#34;282&#34; loading=&#34;lazy&#34; sizes=&#34;(max-width: 767px) calc(100vw - 30px), (max-width: 1023px) 700px, (max-width: 1279px) 950px, 1232px&#34; src=&#34;https://pled.fr/hugo-installation-de-remark42-pour-les-commentaires/github1.png&#34; width=&#34;768&#34;&gt; &lt;img class=&#34;gallery-image&#34; data-flex-basis=&#34;219px&#34; data-flex-grow=&#34;91&#34; height=&#34;548&#34; loading=&#34;lazy&#34; sizes=&#34;(max-width: 767px) calc(100vw - 30px), (max-width: 1023px) 700px, (max-width: 1279px) 950px, 1232px&#34; src=&#34;https://pled.fr/hugo-installation-de-remark42-pour-les-commentaires/github.png&#34; width=&#34;501&#34;&gt;&lt;/p&gt;&#xA;&lt;p&gt;Noter le &lt;strong&gt;Client ID&lt;/strong&gt; (as &lt;code&gt;AUTH_GITHUB_CID&lt;/code&gt;) et le &lt;strong&gt;Client Secret&lt;/strong&gt; ( &lt;code&gt;AUTH_GITHUB_CSEC&lt;/code&gt;) pour les renseigner dans le fichier &lt;code&gt;compose.yaml&lt;/code&gt; (voir plus haut).&lt;/p&gt;&#xA;&lt;p&gt;Pendant la manip, j&amp;rsquo;ai eu cette erreur :&lt;/p&gt;&#xA;&lt;p&gt;&lt;img class=&#34;gallery-image&#34; data-flex-basis=&#34;484px&#34; data-flex-grow=&#34;201&#34; height=&#34;264&#34; loading=&#34;lazy&#34; sizes=&#34;(max-width: 767px) calc(100vw - 30px), (max-width: 1023px) 700px, (max-width: 1279px) 950px, 1232px&#34; src=&#34;https://pled.fr/hugo-installation-de-remark42-pour-les-commentaires/Capture-decran-du-2026-05-26-11-06-13.png&#34; width=&#34;533&#34;&gt;&lt;/p&gt;&#xA;&lt;p&gt;C&amp;rsquo;était le paramètre &lt;code&gt;REMARK_URL&lt;/code&gt; dans le fichier &lt;code&gt;compose.yaml&lt;/code&gt; qui était incorrect (je l&amp;rsquo;avais renseigné au départ avec une adresse locale 192.168.1.x). Il doit absolument être une l&amp;rsquo;adresse web accessible de l&amp;rsquo;extérieur :&lt;/p&gt;&#xA;&lt;p&gt;&lt;code&gt;REMARK_URL=https://remark42.mon-domaine.fr&lt;/code&gt;&lt;/p&gt;&#xA;&lt;h3 id=&#34;utilisation&#34;&gt;Utilisation&#xA;&lt;/h3&gt;&lt;p&gt;Voilà, on peut donc s&amp;rsquo;identifier via Github, mail, ou choisir le mode anonyme, puis poster un commentaire.&lt;/p&gt;&#xA;&lt;p&gt;&lt;img class=&#34;gallery-image&#34; data-flex-basis=&#34;380px&#34; data-flex-grow=&#34;158&#34; height=&#34;385&#34; loading=&#34;lazy&#34; sizes=&#34;(max-width: 767px) calc(100vw - 30px), (max-width: 1023px) 700px, (max-width: 1279px) 950px, 1232px&#34; src=&#34;https://pled.fr/hugo-installation-de-remark42-pour-les-commentaires/identification.png&#34; width=&#34;610&#34;&gt;&lt;/p&gt;&#xA;&lt;p&gt;Et cerise sur le gâteau, Remark42 permet aussi de voter pour un commentaire :&lt;/p&gt;&#xA;&lt;p&gt;&lt;img class=&#34;gallery-image&#34; data-flex-basis=&#34;600px&#34; data-flex-grow=&#34;250&#34; height=&#34;261&#34; loading=&#34;lazy&#34; sizes=&#34;(max-width: 767px) calc(100vw - 30px), (max-width: 1023px) 700px, (max-width: 1279px) 950px, 1232px&#34; src=&#34;https://pled.fr/hugo-installation-de-remark42-pour-les-commentaires/vote.png&#34; width=&#34;653&#34;&gt;&lt;/p&gt;&#xA;&lt;h4 id=&#34;modèles-pour-les-mails-ou-les-messages-derreur&#34;&gt;Modèles pour les mails ou les messages d&amp;rsquo;erreur&#xA;&lt;/h4&gt;&lt;p&gt;Pour aller un peu plus loin, on peut créer ses propres &amp;ldquo;templates&amp;rdquo; de messages envoyés par Remark42, pour les franciser par exemple. Pour un serveur en Docker, il faut récupérer les fichiers sources sur le site gihtub: &lt;a class=&#34;link&#34; href=&#34;https://github.com/umputun/remark42/tree/master/backend/app/templates/static&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;&#xA;    &gt;https://github.com/umputun/remark42/tree/master/backend/app/templates/static&lt;/a&gt;&lt;/p&gt;&#xA;&lt;p&gt;Puis les éditer, les traduire, et les sauvegarder dans un dossier &lt;code&gt;customised_templates&lt;/code&gt; créé à la même hauteur que le dossier &lt;code&gt;var&lt;/code&gt;. Et on ajoute un nouveau volume pour chaque fichier dans le fichier &lt;code&gt;compose.yaml&lt;/code&gt; :&lt;/p&gt;&#xA;&lt;div class=&#34;highlight&#34;&gt;&lt;pre tabindex=&#34;0&#34; style=&#34;color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-text-size-adjust:none;&#34;&gt;&lt;code class=&#34;language-yaml&#34; data-lang=&#34;yaml&#34;&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#f92672&#34;&gt;volumes&lt;/span&gt;:&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;  - &lt;span style=&#34;color:#ae81ff&#34;&gt;./var:/srv/var&lt;/span&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;  - &lt;span style=&#34;color:#ae81ff&#34;&gt;./customised_templates/email_confirmation_login.html.tmpl:/srv/email_confirmation_login.html.tmpl:ro&lt;/span&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;  - &lt;span style=&#34;color:#ae81ff&#34;&gt;./customised_templates/email_confirmation_subscription.html.tmpl:/srv/email_confirmation_subscription.html.tmpl:ro&lt;/span&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;  - &lt;span style=&#34;color:#ae81ff&#34;&gt;./customised_templates/email_reply.html.tmpl:/srv/email_reply.html.tmpl:ro&lt;/span&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;  - &lt;span style=&#34;color:#ae81ff&#34;&gt;./customised_templates/email_unsubscribe.html.tmpl:/srv/email_unsubscribe.html.tmpl:ro&lt;/span&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;  - &lt;span style=&#34;color:#ae81ff&#34;&gt;./customised_templates/error_response.html.tmpl:/srv/error_response.html.tmpl:ro&lt;/span&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;p&gt;Une fois le serveur redémarré, les fichiers modifiés sont bien utilisés :&lt;/p&gt;&#xA;&lt;p&gt;&lt;img class=&#34;gallery-image&#34; data-flex-basis=&#34;206px&#34; data-flex-grow=&#34;86&#34; height=&#34;300&#34; loading=&#34;lazy&#34; sizes=&#34;(max-width: 767px) calc(100vw - 30px), (max-width: 1023px) 700px, (max-width: 1279px) 950px, 1232px&#34; src=&#34;https://pled.fr/hugo-installation-de-remark42-pour-les-commentaires/token1-1.png&#34; width=&#34;258&#34;&gt;&lt;/p&gt;&#xA;&lt;h3 id=&#34;administration&#34;&gt;Administration&#xA;&lt;/h3&gt;&lt;p&gt;Pas d&amp;rsquo;interface web pour gérer les commentaires, c&amp;rsquo;est peut-être le point faible de remark42. Il existe cependant des solutions externes, comme celle-ci : &lt;a class=&#34;link&#34; href=&#34;https://github.com/lauralesteves/remark42-admin-ui&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;&#xA;    &gt;https://github.com/lauralesteves/remark42-admin-ui&lt;/a&gt; mais je ne l&amp;rsquo;ai pas installée. Je ne suis pas certain d&amp;rsquo;en avoir besoin. Car il y a tout de même moyen de réaliser certaines actions :&lt;/p&gt;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;Afficher les paramètres : liste les utilisateurs cachés ou bloqués.&lt;/li&gt;&#xA;&lt;li&gt;Désactiver les commentaires pour l&amp;rsquo;article. Peut être réactivé si on le souhaite.&lt;/li&gt;&#xA;&lt;li&gt;Bloquer un utilisateur définitivement ou temporairement.&lt;/li&gt;&#xA;&lt;li&gt;Effacer un commentaire.&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;&lt;p&gt;Il faut renseigner le paramètre suivant dans le fichier &lt;code&gt;compose.yaml&lt;/code&gt; pour définir un administrateur :&lt;/p&gt;&#xA;&lt;p&gt;ADMIN_SHARED_ID=github_xxxxxxxxxxxxxxxxxxxxxxx&lt;/p&gt;&#xA;&lt;p&gt;On trouve cet ID en s&amp;rsquo;identifiant avec son compte Github par exemple sur la page d&amp;rsquo;un article, comme si l&amp;rsquo;on voulait poster un commentaire, puis on clique sur son nom : on trouve alors en haut à droite son ID :&lt;/p&gt;&#xA;&lt;p&gt;&lt;img class=&#34;gallery-image&#34; data-flex-basis=&#34;416px&#34; data-flex-grow=&#34;173&#34; height=&#34;224&#34; loading=&#34;lazy&#34; sizes=&#34;(max-width: 767px) calc(100vw - 30px), (max-width: 1023px) 700px, (max-width: 1279px) 950px, 1232px&#34; src=&#34;https://pled.fr/hugo-installation-de-remark42-pour-les-commentaires/github-id.png&#34; width=&#34;389&#34;&gt;&lt;/p&gt;&#xA;&lt;p&gt;ou avec son compte mail :&lt;/p&gt;&#xA;&lt;p&gt;&lt;img class=&#34;gallery-image&#34; data-flex-basis=&#34;1100px&#34; data-flex-grow=&#34;458&#34; height=&#34;87&#34; loading=&#34;lazy&#34; sizes=&#34;(max-width: 767px) calc(100vw - 30px), (max-width: 1023px) 700px, (max-width: 1279px) 950px, 1232px&#34; src=&#34;https://pled.fr/hugo-installation-de-remark42-pour-les-commentaires/mail-id.png&#34; width=&#34;399&#34;&gt;&lt;/p&gt;&#xA;&lt;p&gt;Une fois identifié comme administrateur, on a accès à certaines fonctions, comme afficher les utilisateurs cachés ou bloqués, ainsi que désactiver les commentaires sur un article donné.&lt;/p&gt;&#xA;&lt;p&gt;&lt;img class=&#34;gallery-image&#34; data-flex-basis=&#34;622px&#34; data-flex-grow=&#34;259&#34; height=&#34;232&#34; loading=&#34;lazy&#34; sizes=&#34;(max-width: 767px) calc(100vw - 30px), (max-width: 1023px) 700px, (max-width: 1279px) 950px, 1232px&#34; src=&#34;https://pled.fr/hugo-installation-de-remark42-pour-les-commentaires/Capture-decran-du-2026-07-07-10-54-13.png&#34; width=&#34;602&#34;&gt;&lt;/p&gt;&#xA;&lt;p&gt;&lt;img class=&#34;gallery-image&#34; data-flex-basis=&#34;558px&#34; data-flex-grow=&#34;232&#34; height=&#34;260&#34; loading=&#34;lazy&#34; sizes=&#34;(max-width: 767px) calc(100vw - 30px), (max-width: 1023px) 700px, (max-width: 1279px) 950px, 1232px&#34; src=&#34;https://pled.fr/hugo-installation-de-remark42-pour-les-commentaires/Capture-decran-du-2026-07-07-10-57-33.png&#34; width=&#34;605&#34;&gt;&lt;/p&gt;&#xA;&lt;h3 id=&#34;import&#34;&gt;Import&#xA;&lt;/h3&gt;&lt;p&gt;Maintenant que tout est prêt, il faut importer les commentaires du site WP que l&amp;rsquo;on souhaite migrer. Remark42 propose fort heureusement cette possibilité, et la documentation est &lt;a class=&#34;link&#34; href=&#34;https://remark42.com/docs/backup/migration/&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;&#xA;    &gt;ici&lt;/a&gt;. Cette opération est importante et à faire immédiatement, car elle va écraser tous les commentaires existants (ceux ayant servis pour les tests par exemple).&lt;/p&gt;&#xA;&lt;p&gt;On part donc du fichier d&amp;rsquo;export au format XML généré par WP (Panneau d&amp;rsquo;admin - Outils - Export) comme on a fait pour Hugo. Il faut ensuite l&amp;rsquo;éditer pour remplacer l&amp;rsquo;URL du site si celle-ci est destinée à changer. Par exemple si j&amp;rsquo;importe les commentaires du blog WP à l&amp;rsquo;adresse &lt;code&gt;https://wptest.pled.fr&lt;/code&gt;, mais que mon futur blog se trouvera à l&amp;rsquo;adresse &lt;code&gt;https://myhugo.pled.fr&lt;/code&gt;, alors il faut éditer le fichier XML et remplacer toutes les occurrences correspondantes avec la nouvelle URL.&lt;/p&gt;&#xA;&lt;p&gt;Une fois ceci fait, il faut copier le fichier d&amp;rsquo;export dans le dossier /srv/var du container, puis lancer la commande suivante qui va importer les commentaires :&lt;/p&gt;&#xA;&lt;div class=&#34;highlight&#34;&gt;&lt;pre tabindex=&#34;0&#34; style=&#34;color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-text-size-adjust:none;&#34;&gt;&lt;code class=&#34;language-bash&#34; data-lang=&#34;bash&#34;&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;pascal@NAS:/srv/dev-disk-by-uuid-071a-91e2-4184-971f-7697/AppData/remark42/var$ sudo docker exec -it remark42 import -p wordpress -f /srv/var/wptest-export.xml -s remark&#xA;&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;p&gt;Côté log du container docker, on doit voir quelque chose de ce style :&lt;/p&gt;&#xA;&lt;div class=&#34;highlight&#34;&gt;&lt;pre tabindex=&#34;0&#34; style=&#34;color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-text-size-adjust:none;&#34;&gt;&lt;code class=&#34;language-bash&#34; data-lang=&#34;bash&#34;&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;remark42  | 2026/07/05 08:41:33.969 &lt;span style=&#34;color:#f92672&#34;&gt;[&lt;/span&gt;DEBUG&lt;span style=&#34;color:#f92672&#34;&gt;]&lt;/span&gt; &lt;span style=&#34;color:#f92672&#34;&gt;{&lt;/span&gt;api/migrator.go:236 api.&lt;span style=&#34;color:#f92672&#34;&gt;(&lt;/span&gt;*Migrator&lt;span style=&#34;color:#f92672&#34;&gt;)&lt;/span&gt;.runImport&lt;span style=&#34;color:#f92672&#34;&gt;}&lt;/span&gt; import request &lt;span style=&#34;color:#66d9ef&#34;&gt;for&lt;/span&gt; site&lt;span style=&#34;color:#f92672&#34;&gt;=&lt;/span&gt;remark, provider&lt;span style=&#34;color:#f92672&#34;&gt;=&lt;/span&gt;wordpress&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;remark42  | 2026/07/05 08:41:34.268 &lt;span style=&#34;color:#f92672&#34;&gt;[&lt;/span&gt;INFO&lt;span style=&#34;color:#f92672&#34;&gt;]&lt;/span&gt;  &lt;span style=&#34;color:#f92672&#34;&gt;{&lt;/span&gt;migrator/wordpress.go:153 migrator.&lt;span style=&#34;color:#f92672&#34;&gt;(&lt;/span&gt;*WordPress&lt;span style=&#34;color:#f92672&#34;&gt;)&lt;/span&gt;.convert.func1&lt;span style=&#34;color:#f92672&#34;&gt;}&lt;/span&gt; converted &lt;span style=&#34;color:#ae81ff&#34;&gt;4&lt;/span&gt; comments, &lt;span style=&#34;color:#f92672&#34;&gt;{&lt;/span&gt;inpItems:563 failedItems:0 inpComments:4 failedComments:0 rejectedComments:0&lt;span style=&#34;color:#f92672&#34;&gt;}&lt;/span&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;remark42  | 2026/07/05 08:41:34.276 &lt;span style=&#34;color:#f92672&#34;&gt;[&lt;/span&gt;DEBUG&lt;span style=&#34;color:#f92672&#34;&gt;]&lt;/span&gt; &lt;span style=&#34;color:#f92672&#34;&gt;{&lt;/span&gt;migrator/wordpress.go:85 migrator.&lt;span style=&#34;color:#f92672&#34;&gt;(&lt;/span&gt;*WordPress&lt;span style=&#34;color:#f92672&#34;&gt;)&lt;/span&gt;.Import&lt;span style=&#34;color:#f92672&#34;&gt;}&lt;/span&gt; imported &lt;span style=&#34;color:#ae81ff&#34;&gt;4&lt;/span&gt; comments to site remark&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;remark42  | 2026/07/05 08:41:34.276 &lt;span style=&#34;color:#f92672&#34;&gt;[&lt;/span&gt;DEBUG&lt;span style=&#34;color:#f92672&#34;&gt;]&lt;/span&gt; &lt;span style=&#34;color:#f92672&#34;&gt;{&lt;/span&gt;api/migrator.go:250 api.&lt;span style=&#34;color:#f92672&#34;&gt;(&lt;/span&gt;*Migrator&lt;span style=&#34;color:#f92672&#34;&gt;)&lt;/span&gt;.runImport&lt;span style=&#34;color:#f92672&#34;&gt;}&lt;/span&gt; import request completed. site&lt;span style=&#34;color:#f92672&#34;&gt;=&lt;/span&gt;remark, provider&lt;span style=&#34;color:#f92672&#34;&gt;=&lt;/span&gt;wordpress, comments&lt;span style=&#34;color:#f92672&#34;&gt;=&lt;/span&gt;&lt;span style=&#34;color:#ae81ff&#34;&gt;4&lt;/span&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;p&gt;On voit clairement que les quatre commentaires de test ont bien été importés.&lt;/p&gt;&#xA;&lt;h4 id=&#34;dépannage&#34;&gt;Dépannage&#xA;&lt;/h4&gt;&lt;p&gt;Si vous ne voyez pas les commentaires malgré les logs positifs du container, il s&amp;rsquo;agit probablement d&amp;rsquo;un problème d&amp;rsquo;URL. Les commentaires sont stockés avec l&amp;rsquo;URL de l&amp;rsquo;article concerné, et celle-ci doit absolument correspondre. Elle peut être erronée, ou simplement être en http au lieu de https, ou même manquer d&amp;rsquo;un &amp;ldquo;/&amp;rdquo; en fin d&amp;rsquo;adresse. Il va donc falloir vérifier ces points.&lt;/p&gt;&#xA;&lt;p&gt;Dans le navigateur, afficher un article censé avoir des commentaires, et vérifier dans la console (outils dev web) du navigateur la requête réseau (onglet network) de type &lt;a class=&#34;link&#34; href=&#34;https://remark42.nas-n150.pled.fr/api/v1/find?site=remark&amp;amp;url=https%3A%2F%2Fhugo.pled.fr%2Farticle-avec-bouts-de-code%2F&amp;amp;sort=-active&amp;amp;format=tree&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;&#xA;    &gt;&lt;code&gt;GET api/v1/find?...&amp;amp;url=&amp;lt;URL&amp;gt;&lt;/code&gt;&lt;/a&gt; effectuée, et vérifier particulièrement la valeur de l&amp;rsquo;URL réclamée, ce doit être celle de votre site, par exemple :&lt;/p&gt;&#xA;&lt;p&gt;&lt;a class=&#34;link&#34; href=&#34;https://remark42.nas-n150.pled.fr/api/v1/find?site=remark&amp;amp;url=https%3A%2F%2Fhugo.pled.fr%2Farticle-avec-bouts-de-code%2F&amp;amp;sort=-active&amp;amp;format=tree&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;&#xA;    &gt;&lt;code&gt;https://remark42.mon-nas.fr/api/v1/find?site=remark&amp;amp;url=https%3A%2F%2Fmon-site-hugo.fr%2Farticle-avec-bouts-de-code%2F&amp;amp;sort=-active&amp;amp;format=tree&lt;/code&gt;&lt;/a&gt;&lt;/p&gt;&#xA;&lt;p&gt;En parallèle, aller voir les URLs stockées par remark42 pour les comparer : pour cela, exécutez la commande suivante (sur une seule ligne) :&lt;/p&gt;&#xA;&lt;div class=&#34;highlight&#34;&gt;&lt;pre tabindex=&#34;0&#34; style=&#34;color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-text-size-adjust:none;&#34;&gt;&lt;code class=&#34;language-bash&#34; data-lang=&#34;bash&#34;&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;$ sudo docker exec remark42 backup -s remark -f /srv/var/dump.gz &lt;span style=&#34;color:#f92672&#34;&gt;&amp;amp;&amp;amp;&lt;/span&gt; &lt;span style=&#34;color:#ae81ff&#34;&gt;\&#xA;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;sudo docker exec remark42 sh -c &lt;span style=&#34;color:#e6db74&#34;&gt;&amp;#34;gunzip -c /srv/var/dump.gz | grep -oE &amp;#39;\&amp;#34;url\&amp;#34;:\&amp;#34;[^\&amp;#34;]+\&amp;#34;&amp;#39; | sort | uniq -c&amp;#34;&lt;/span&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;remark42 v1.16.0-556e0a7-20260522T13:32:16&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;2026/07/06 11:25:10.007 &lt;span style=&#34;color:#f92672&#34;&gt;[&lt;/span&gt;INFO&lt;span style=&#34;color:#f92672&#34;&gt;]&lt;/span&gt;  &lt;span style=&#34;color:#f92672&#34;&gt;{&lt;/span&gt;cmd/backup.go:26 cmd.&lt;span style=&#34;color:#f92672&#34;&gt;(&lt;/span&gt;*BackupCommand&lt;span style=&#34;color:#f92672&#34;&gt;)&lt;/span&gt;.Execute&lt;span style=&#34;color:#f92672&#34;&gt;}&lt;/span&gt; export to ./var/backup, site remark&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;2026/07/06 11:25:10.007 &lt;span style=&#34;color:#f92672&#34;&gt;[&lt;/span&gt;DEBUG&lt;span style=&#34;color:#f92672&#34;&gt;]&lt;/span&gt; &lt;span style=&#34;color:#f92672&#34;&gt;{&lt;/span&gt;cmd/backup.go:35 cmd.&lt;span style=&#34;color:#f92672&#34;&gt;(&lt;/span&gt;*BackupCommand&lt;span style=&#34;color:#f92672&#34;&gt;)&lt;/span&gt;.Execute&lt;span style=&#34;color:#f92672&#34;&gt;}&lt;/span&gt; export file /srv/var/dump.gz&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;2026/07/06 11:25:10.093 &lt;span style=&#34;color:#f92672&#34;&gt;[&lt;/span&gt;INFO&lt;span style=&#34;color:#f92672&#34;&gt;]&lt;/span&gt;  &lt;span style=&#34;color:#f92672&#34;&gt;{&lt;/span&gt;cmd/backup.go:78 cmd.&lt;span style=&#34;color:#f92672&#34;&gt;(&lt;/span&gt;*BackupCommand&lt;span style=&#34;color:#f92672&#34;&gt;)&lt;/span&gt;.Execute&lt;span style=&#34;color:#f92672&#34;&gt;}&lt;/span&gt; export completed, file /srv/var/dump.gz&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;      &lt;span style=&#34;color:#ae81ff&#34;&gt;2&lt;/span&gt; &lt;span style=&#34;color:#e6db74&#34;&gt;&amp;#34;url&amp;#34;&lt;/span&gt;:&lt;span style=&#34;color:#e6db74&#34;&gt;&amp;#34;https://mon-site-hugo.fr/article-avec-bouts-de-code/&amp;#34;&lt;/span&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;      &lt;span style=&#34;color:#ae81ff&#34;&gt;2&lt;/span&gt; &lt;span style=&#34;color:#e6db74&#34;&gt;&amp;#34;url&amp;#34;&lt;/span&gt;:&lt;span style=&#34;color:#e6db74&#34;&gt;&amp;#34;https://mon-site-hugo.fr/article-avec-citation/&amp;#34;&lt;/span&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;p&gt;Si la commande ne passe pas, allez voir les backups, ou créez-en un, puis éditer le fichier :&lt;/p&gt;&#xA;&lt;div class=&#34;highlight&#34;&gt;&lt;pre tabindex=&#34;0&#34; style=&#34;color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-text-size-adjust:none;&#34;&gt;&lt;code class=&#34;language-bash&#34; data-lang=&#34;bash&#34;&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;$ sudo docker exec -it remark42 backup -s remark&#xA;&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;p&gt;NOTE: le paramètre &lt;code&gt;ADMIN_PASSWD&lt;/code&gt; doit être activé sur le serveur pour que la commande fonctionne.&lt;/p&gt;&#xA;&lt;p&gt;Puis récupérer dans le dossier &lt;code&gt;/srv/var/backup&lt;/code&gt; le fichier de backup créé ( &lt;code&gt;userbackup-remark-20260706T045628.gz&lt;/code&gt; par exemple). Il reste à décompresser le fichier puis à l&amp;rsquo;éditer. On peut alors vérifier l&amp;rsquo;URL stockée dans Remark42 :&lt;/p&gt;&#xA;&lt;div class=&#34;highlight&#34;&gt;&lt;pre tabindex=&#34;0&#34; style=&#34;color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-text-size-adjust:none;&#34;&gt;&lt;code class=&#34;language-bash&#34; data-lang=&#34;bash&#34;&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#f92672&#34;&gt;{&lt;/span&gt;&lt;span style=&#34;color:#e6db74&#34;&gt;&amp;#34;id&amp;#34;&lt;/span&gt;:&lt;span style=&#34;color:#e6db74&#34;&gt;&amp;#34;40&amp;#34;&lt;/span&gt;,&lt;span style=&#34;color:#e6db74&#34;&gt;&amp;#34;pid&amp;#34;&lt;/span&gt;:&lt;span style=&#34;color:#e6db74&#34;&gt;&amp;#34;&amp;#34;&lt;/span&gt;,&lt;span style=&#34;color:#e6db74&#34;&gt;&amp;#34;text&amp;#34;&lt;/span&gt;:&lt;span style=&#34;color:#e6db74&#34;&gt;&amp;#34;ceci est un commentaire premier niveau\n&amp;#34;&lt;/span&gt;,&lt;span style=&#34;color:#e6db74&#34;&gt;&amp;#34;user&amp;#34;&lt;/span&gt;:&lt;span style=&#34;color:#f92672&#34;&gt;{&lt;/span&gt;&lt;span style=&#34;color:#e6db74&#34;&gt;&amp;#34;name&amp;#34;&lt;/span&gt;:&lt;span style=&#34;color:#e6db74&#34;&gt;&amp;#34;pled&amp;#34;&lt;/span&gt;,&lt;span style=&#34;color:#e6db74&#34;&gt;&amp;#34;id&amp;#34;&lt;/span&gt;:&lt;span style=&#34;color:#e6db74&#34;&gt;&amp;#34;wordpress_8d4451bb47d8fcd71060d39bada39c4b01818ce3&amp;#34;&lt;/span&gt;,&lt;span style=&#34;color:#e6db74&#34;&gt;&amp;#34;picture&amp;#34;&lt;/span&gt;:&lt;span style=&#34;color:#e6db74&#34;&gt;&amp;#34;&amp;#34;&lt;/span&gt;,&lt;span style=&#34;color:#e6db74&#34;&gt;&amp;#34;ip&amp;#34;&lt;/span&gt;:&lt;span style=&#34;color:#e6db74&#34;&gt;&amp;#34;c5e2c316a3678a6bd0723a79aad2b6964f805917&amp;#34;&lt;/span&gt;,&lt;span style=&#34;color:#e6db74&#34;&gt;&amp;#34;admin&amp;#34;&lt;/span&gt;:false&lt;span style=&#34;color:#f92672&#34;&gt;}&lt;/span&gt;,&lt;span style=&#34;color:#e6db74&#34;&gt;&amp;#34;locator&amp;#34;&lt;/span&gt;:&lt;span style=&#34;color:#f92672&#34;&gt;{&lt;/span&gt;&lt;span style=&#34;color:#e6db74&#34;&gt;&amp;#34;site&amp;#34;&lt;/span&gt;:&lt;span style=&#34;color:#e6db74&#34;&gt;&amp;#34;remark&amp;#34;&lt;/span&gt;,&lt;span style=&#34;color:#e6db74&#34;&gt;&amp;#34;url&amp;#34;&lt;/span&gt;:&lt;span style=&#34;color:#e6db74&#34;&gt;&amp;#34;https://myhugo.pled.fr/article-avec-bouts-de-code&amp;#34;&lt;/span&gt;&lt;span style=&#34;color:#f92672&#34;&gt;}&lt;/span&gt;,&lt;span style=&#34;color:#e6db74&#34;&gt;&amp;#34;score&amp;#34;&lt;/span&gt;:0,&lt;span style=&#34;color:#e6db74&#34;&gt;&amp;#34;vote&amp;#34;&lt;/span&gt;:0,&lt;span style=&#34;color:#e6db74&#34;&gt;&amp;#34;time&amp;#34;&lt;/span&gt;:&lt;span style=&#34;color:#e6db74&#34;&gt;&amp;#34;2026-06-09T15:49:33Z&amp;#34;&lt;/span&gt;,&lt;span style=&#34;color:#e6db74&#34;&gt;&amp;#34;imported&amp;#34;&lt;/span&gt;:true,&lt;span style=&#34;color:#e6db74&#34;&gt;&amp;#34;title&amp;#34;&lt;/span&gt;:&lt;span style=&#34;color:#e6db74&#34;&gt;&amp;#34;Article avec bouts de code&amp;#34;&lt;/span&gt;&lt;span style=&#34;color:#f92672&#34;&gt;}&lt;/span&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;p&gt;Si les URLs diffèrent, le plus simple est sans doute de modifier le fichier d&amp;rsquo;export WP à l&amp;rsquo;aide d&amp;rsquo;un éditeur de texte, modifier toutes les URLs pour correspondre à ce que l&amp;rsquo;on attend, puis relancer l&amp;rsquo;import (qui écrasera l&amp;rsquo;existant).&lt;/p&gt;&#xA;&lt;p&gt;On peut aussi créer un fichier &lt;code&gt;remap.txt&lt;/code&gt; contenant sur une line les deux URLs concernées sur la même ligne, comme ceci par exemple :&lt;/p&gt;&#xA;&lt;p&gt;&lt;code&gt;https://hugo.mon-site.fr/* https://hugo.mon-site.fr/posts/*&lt;/code&gt;&lt;/p&gt;&#xA;&lt;p&gt;Puis exécuter le commande suivante :&lt;/p&gt;&#xA;&lt;div class=&#34;highlight&#34;&gt;&lt;pre tabindex=&#34;0&#34; style=&#34;color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-text-size-adjust:none;&#34;&gt;&lt;code class=&#34;language-bash&#34; data-lang=&#34;bash&#34;&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;$ sudo docker exec remark42 remark42 remap -s remark -f /srv/var/remap.txt&#xA;&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;h3 id=&#34;conclusion&#34;&gt;Conclusion&#xA;&lt;/h3&gt;&lt;p&gt;Voilà, le système de commentaire est installé et fonctionnel. Cela m&amp;rsquo;a paru très compliqué au départ, mais finalement, en y allant étape par étape, tout s&amp;rsquo;est très bien passé.&lt;/p&gt;&#xA;&lt;p&gt;Le seul problème que j&amp;rsquo;ai eu a été pour l&amp;rsquo;importation des commentaires, et c&amp;rsquo;était parce que j&amp;rsquo;avais oublié de renseigner dans le site Hugo le paramètre suivant dans le fichier &lt;code&gt;hugo.toml&lt;/code&gt; :&lt;/p&gt;&#xA;&lt;div class=&#34;highlight&#34;&gt;&lt;pre tabindex=&#34;0&#34; style=&#34;color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-text-size-adjust:none;&#34;&gt;&lt;code class=&#34;language-bash&#34; data-lang=&#34;bash&#34;&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;baseURL &lt;span style=&#34;color:#f92672&#34;&gt;=&lt;/span&gt; &lt;span style=&#34;color:#e6db74&#34;&gt;&amp;#39;https://hugo.pled.fr/&amp;#39;&lt;/span&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;p&gt;Donc une erreur de ma part à force de tester des choses sur Hugo en même temps, en réinstallant, repartant de zéro, etc&amp;hellip;&lt;/p&gt;&#xA;&lt;p&gt;Finalement, je suis très satisfait de ce résultat, Remak42 a l&amp;rsquo;air très bien, sobre et fonctionnel, exactement ce que je cherchais.&lt;/p&gt;&#xA;</description>
        </item><item>
            <title>Hugo avec thème Stack : installation en local</title>
            <link>https://pled.fr/hugo-avec-theme-stack-installation-en-local/</link>
            <pubDate>Thu, 16 Jul 2026 14:30:08 +0000</pubDate>
            <guid>https://pled.fr/hugo-avec-theme-stack-installation-en-local/</guid>
            <description>&lt;p&gt;&lt;img loading=&#34;lazy&#34; sizes=&#34;(max-width: 767px) calc(100vw - 30px), (max-width: 1023px) 700px, (max-width: 1279px) 950px, 1232px&#34; src=&#34;hugo-icon.png#floatleft&#34;&gt;&lt;/p&gt;&#xA;&lt;p&gt;Dans un précédent article, j&amp;rsquo;expliquais mon idée de migrer mon blog Wordpress sous Hugo, pour des raisons de performance et d&amp;rsquo;efficacité, mais aussi de simplification car si Wordpress permet de faire beaucoup de choses, je n&amp;rsquo;en ai pas de réel besoin, alors autant passer à quelque chose de plus simple et de totalement opensource.&lt;/p&gt;&#xA;&lt;p&gt;Dans cette optique, la première étape est d&amp;rsquo;installer Hugo en local sur le PC afin de pouvoir commencer à l&amp;rsquo;utiliser, puis à adapter un thème à ce que je souhaite obtenir comme apparence.&lt;/p&gt;&#xA;&lt;p&gt;Cet article est assez long puisque l&amp;rsquo;on va partir du thème Stack de départ, totalement vide :&lt;/p&gt;&#xA;&lt;p&gt;&lt;img class=&#34;gallery-image&#34; data-flex-basis=&#34;501px&#34; data-flex-grow=&#34;208&#34; height=&#34;304&#34; loading=&#34;lazy&#34; sizes=&#34;(max-width: 767px) calc(100vw - 30px), (max-width: 1023px) 700px, (max-width: 1279px) 950px, 1232px&#34; src=&#34;https://pled.fr/hugo-avec-theme-stack-installation-en-local/Capture-decran-du-2026-07-05-16-56-33.png&#34; width=&#34;635&#34;&gt;&lt;/p&gt;&#xA;&lt;p&gt;Pour arriver à ça :&lt;/p&gt;&#xA;&lt;p&gt;&lt;img class=&#34;gallery-image&#34; data-flex-basis=&#34;426px&#34; data-flex-grow=&#34;177&#34; height=&#34;1080&#34; loading=&#34;lazy&#34; sizes=&#34;(max-width: 767px) calc(100vw - 30px), (max-width: 1023px) 700px, (max-width: 1279px) 950px, 1232px&#34; src=&#34;https://pled.fr/hugo-avec-theme-stack-installation-en-local/Capture-decran-du-2026-07-16-11-37-30.png&#34; srcset=&#34;https://pled.fr/hugo-avec-theme-stack-installation-en-local/Capture-decran-du-2026-07-16-11-37-30_hu_578a566d0a521eb4.png 800w, https://pled.fr/hugo-avec-theme-stack-installation-en-local/Capture-decran-du-2026-07-16-11-37-30_hu_b3f5873b620b6dd2.png 1600w, https://pled.fr/hugo-avec-theme-stack-installation-en-local/Capture-decran-du-2026-07-16-11-37-30.png 1920w&#34; width=&#34;1920&#34;&gt;&lt;/p&gt;&#xA;&lt;p&gt;C&amp;rsquo;est parti, il y a du boulot ! :wink:&lt;/p&gt;&#xA;&lt;h3 id=&#34;installation&#34;&gt;Installation&#xA;&lt;/h3&gt;&lt;p&gt;La première chose à faire est d&amp;rsquo;installer le paquet Hugo, comme on le ferait pour n&amp;rsquo;importe quel autre logiciel, et donc sur EndeavourOS taper la commande suivante :&lt;/p&gt;&#xA;&lt;div class=&#34;highlight&#34;&gt;&lt;pre tabindex=&#34;0&#34; style=&#34;color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-text-size-adjust:none;&#34;&gt;&lt;code class=&#34;language-bash&#34; data-lang=&#34;bash&#34;&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;$ sudo pacman -S hugo&#xA;&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;p&gt;Il faut ensuite choisir un thème sur &lt;a class=&#34;link&#34; href=&#34;https://themes.gohugo.io/&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;&#xA;    &gt;cette page&lt;/a&gt;, et il en existe de tous types, le choix est vaste même en sélectionnant le type &amp;ldquo;Blog&amp;rdquo;. Pour chaque thème, une démo est accessible, c&amp;rsquo;est donc assez bien fait et cela aide à faire son choix.&lt;/p&gt;&#xA;&lt;p&gt;En ce qui me concerne, j&amp;rsquo;ai choisi le thème &lt;strong&gt;Stack&lt;/strong&gt; qui correspond à peu près à ce que je souhaite : une présentation classique des articles dans l&amp;rsquo;ordre chronologique, avec une image pour chaque article, une colonne (sidebar) de chaque côté, histoire de ne pas trop changer avec le thème actuel sur WP. Enfin, il dispose d&amp;rsquo;un mode &amp;ldquo;Dark&amp;rdquo; intégré.&lt;/p&gt;&#xA;&lt;p&gt;Puis on suit la &lt;a class=&#34;link&#34; href=&#34;https://gohugo.io/getting-started/quick-start/&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;&#xA;    &gt;doc officielle&lt;/a&gt; &lt;a class=&#34;link&#34; href=&#34;https://gohugo.io/getting-started/quick-start/&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;&#xA;    &gt;https://gohugo.io/getting-started/quick-start/&lt;/a&gt; et on passe les commandes suivantes qui vont créer le site, installer le thème stack et l&amp;rsquo;activer :&lt;/p&gt;&#xA;&lt;div class=&#34;highlight&#34;&gt;&lt;pre tabindex=&#34;0&#34; style=&#34;color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-text-size-adjust:none;&#34;&gt;&lt;code class=&#34;language-bash&#34; data-lang=&#34;bash&#34;&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;$ mkdir Hugo&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;$ cd Hugo&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;$ hugo new project pled&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;$ cd pled&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;$ git init&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;$ git submodule add https://github.com/CaiJimmy/hugo-theme-stack themes/stack&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;$ echo &lt;span style=&#34;color:#e6db74&#34;&gt;&amp;#34;theme = &amp;#39;stack&amp;#39;&amp;#34;&lt;/span&gt; &amp;gt;&amp;gt; hugo.toml&#xA;&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;p&gt;Voilà, il suffit maintenant de lancer hugo en tant que serveur en se plaçant dans le répertoire avec la commande &lt;code&gt;$ hugo server&lt;/code&gt;, pour obtenir immédiatement un site disponible localement, avec le thème stack, mais totalement vide :&lt;/p&gt;&#xA;&lt;div class=&#34;highlight&#34;&gt;&lt;pre tabindex=&#34;0&#34; style=&#34;color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-text-size-adjust:none;&#34;&gt;&lt;code class=&#34;language-bash&#34; data-lang=&#34;bash&#34;&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;$ hugo server&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;Watching &lt;span style=&#34;color:#66d9ef&#34;&gt;for&lt;/span&gt; changes in /Hugo/pled/archetypes, /Hugo/pled/assets, /Hugo/pled/content, /Hugo/pled/data, /Hugo/pled/i18n, /Hugo/pled/layouts, /Hugo/pled/static, /Hugo/pled/themes/stack/archetypes, /Hugo/pled/themes/stack/assets/&lt;span style=&#34;color:#f92672&#34;&gt;{&lt;/span&gt;icons,scss,ts&lt;span style=&#34;color:#f92672&#34;&gt;}&lt;/span&gt;, /Hugo/pled/themes/stack/data, ... and &lt;span style=&#34;color:#ae81ff&#34;&gt;2&lt;/span&gt; more&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;Watching &lt;span style=&#34;color:#66d9ef&#34;&gt;for&lt;/span&gt; config changes in /Hugo/pled/hugo.toml, /Hugo/pled/themes/stack/config/_default&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;Start building sites …&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;hugo v0.163.3+extended+withdeploy linux/amd64 BuildDate&lt;span style=&#34;color:#f92672&#34;&gt;=&lt;/span&gt;unknown&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;                  │ EN&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;──────────────────┼────&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt; Pages            │  &lt;span style=&#34;color:#ae81ff&#34;&gt;8&lt;/span&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt; Paginator pages  │  &lt;span style=&#34;color:#ae81ff&#34;&gt;0&lt;/span&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt; Non-page files   │  &lt;span style=&#34;color:#ae81ff&#34;&gt;0&lt;/span&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt; Static files     │  &lt;span style=&#34;color:#ae81ff&#34;&gt;0&lt;/span&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt; Processed images │  &lt;span style=&#34;color:#ae81ff&#34;&gt;0&lt;/span&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt; Aliases          │  &lt;span style=&#34;color:#ae81ff&#34;&gt;3&lt;/span&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt; Cleaned          │  &lt;span style=&#34;color:#ae81ff&#34;&gt;0&lt;/span&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;Built in &lt;span style=&#34;color:#ae81ff&#34;&gt;24&lt;/span&gt; ms&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;Environment: &lt;span style=&#34;color:#e6db74&#34;&gt;&amp;#34;development&amp;#34;&lt;/span&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;Serving pages from disk&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;Running in Fast Render Mode. For full rebuilds on change: hugo server --disableFastRender&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;Web Server is available at http://localhost:1313/ &lt;span style=&#34;color:#f92672&#34;&gt;(&lt;/span&gt;bind address 127.0.0.1&lt;span style=&#34;color:#f92672&#34;&gt;)&lt;/span&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;Press Ctrl+C to stop&#xA;&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;p&gt;Il ne reste plus qu&amp;rsquo;à se rendre sur l&amp;rsquo;adresse indiquée : &lt;a class=&#34;link&#34; href=&#34;http://localhost:1313&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;&#xA;    &gt;http://localhost:1313&lt;/a&gt; :&lt;/p&gt;&#xA;&lt;p&gt;&lt;img class=&#34;gallery-image&#34; data-flex-basis=&#34;501px&#34; data-flex-grow=&#34;208&#34; height=&#34;304&#34; loading=&#34;lazy&#34; sizes=&#34;(max-width: 767px) calc(100vw - 30px), (max-width: 1023px) 700px, (max-width: 1279px) 950px, 1232px&#34; src=&#34;https://pled.fr/hugo-avec-theme-stack-installation-en-local/Capture-decran-du-2026-07-05-16-56-33.png&#34; width=&#34;635&#34;&gt;&lt;/p&gt;&#xA;&lt;p&gt;On ne peut pas dire que ce soit compliqué ! Par contre, ça manque de contenu ! :oops:&lt;/p&gt;&#xA;&lt;h3 id=&#34;contenu&#34;&gt;Contenu&#xA;&lt;/h3&gt;&lt;p&gt;Il y a un dossier &amp;ldquo;Demo&amp;rdquo; dans le thème ( &lt;code&gt;themes/stack/demo&lt;/code&gt;). On peut le visualiser en lançant le script &lt;code&gt;run.sh&lt;/code&gt; qui se trouve dans ce dossier, mais le fichier README.md précise :&lt;/p&gt;&#xA;&#xA;    &lt;blockquote&gt;&#xA;        &lt;p&gt;This is an example site used for solely for testing purposes. &lt;strong&gt;It is not meant to be used as a template for your site&lt;/strong&gt;.&lt;/p&gt;&#xA;&#xA;    &lt;/blockquote&gt;&#xA;&lt;p&gt;Cela vaut le coup de le lancer et de voir le résultat, pour avoir une idée de ce que à quoi peut ressembler le thème. Quitte à tout effacer ensuite et repartir d&amp;rsquo;un site propre. C&amp;rsquo;est aussi un bon point de départ pour le transformer et le personnaliser ensuite. À moins de préférer partir de rien et de tout faire soi-même en suivant la &lt;a class=&#34;link&#34; href=&#34;https://stack.cai.im/guide/&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;&#xA;    &gt;documentation du thème&lt;/a&gt;. À chacun de choisir !&lt;/p&gt;&#xA;&lt;p&gt;J&amp;rsquo;ai choisi une solution intermédiaire : j&amp;rsquo;ai installé la démo, regardé ce que l&amp;rsquo;on peut faire, puis suis reparti d&amp;rsquo;un site vide, en m&amp;rsquo;inspirant des fichiers du dossier demo au fur et à mesure de ce que je voulais faire, et en les personnalisant à chaque fois.&lt;/p&gt;&#xA;&lt;p&gt;D&amp;rsquo;ailleurs, il faudra toujours penser à faire les modifications à la racine du site, en récréant l&amp;rsquo;arborescence du fichier, afin d&amp;rsquo;éviter tout perdre lors d&amp;rsquo;une mise à jour du thème. Par exemple, on récupère le fichier &lt;code&gt;Hugo/pled/themes/stack/demo/config/_default/menu.toml&lt;/code&gt; et on le copie dans &lt;code&gt;Hugo/pled/config/_default/menu.toml&lt;/code&gt;. Si les dossiers n&amp;rsquo;existent pas, il suffit de les créer pour avoir la même arborescence. Car si j&amp;rsquo;ai bien compris, Hugo regarde toujours d&amp;rsquo;abord à la racine du site, et seulement ensuite dans le dossier du thème.&lt;/p&gt;&#xA;&lt;p&gt;Le plus simple pour l&amp;rsquo;instant est de copier tout le dossier &lt;code&gt;themes/stack/demo&lt;/code&gt;/ &lt;code&gt;content/&lt;/code&gt; dans &lt;code&gt;pled/content&lt;/code&gt;, soit les dossiers &lt;code&gt;categories&lt;/code&gt;, &lt;code&gt;page&lt;/code&gt; et &lt;code&gt;post&lt;/code&gt;, à l&amp;rsquo;exception des fichiers &lt;code&gt;_index.ja.md&lt;/code&gt;, &lt;code&gt;_index.zh.md&lt;/code&gt; et &lt;code&gt;_index.zh-hant-tw.md&lt;/code&gt; qui sont destinés au langues asiatiques, et donc inutiles (au moins dans mon cas).&lt;/p&gt;&#xA;&lt;p&gt;Les articles vont immédiatement apparaître dans le navigateur, ainsi qu&amp;rsquo;un menu dans la colonne de gauche :&lt;/p&gt;&#xA;&lt;p&gt;&lt;img class=&#34;gallery-image&#34; data-flex-basis=&#34;302px&#34; data-flex-grow=&#34;125&#34; height=&#34;936&#34; loading=&#34;lazy&#34; sizes=&#34;(max-width: 767px) calc(100vw - 30px), (max-width: 1023px) 700px, (max-width: 1279px) 950px, 1232px&#34; src=&#34;https://pled.fr/hugo-avec-theme-stack-installation-en-local/Capture-decran-du-2026-07-15-15-49-15.png&#34; srcset=&#34;https://pled.fr/hugo-avec-theme-stack-installation-en-local/Capture-decran-du-2026-07-15-15-49-15_hu_312dc4eaed7082a9.png 800w, https://pled.fr/hugo-avec-theme-stack-installation-en-local/Capture-decran-du-2026-07-15-15-49-15.png 1178w&#34; width=&#34;1178&#34;&gt;&lt;/p&gt;&#xA;&lt;p&gt;Le menu à gauche, ce sont en fait les pages définies dans le dossier &lt;code&gt;pages&lt;/code&gt; que l&amp;rsquo;on vient de copier :&lt;/p&gt;&#xA;&lt;p&gt;&lt;img class=&#34;gallery-image&#34; data-flex-basis=&#34;622px&#34; data-flex-grow=&#34;259&#34; height=&#34;197&#34; loading=&#34;lazy&#34; sizes=&#34;(max-width: 767px) calc(100vw - 30px), (max-width: 1023px) 700px, (max-width: 1279px) 950px, 1232px&#34; src=&#34;https://pled.fr/hugo-avec-theme-stack-installation-en-local/pages.png&#34; width=&#34;511&#34;&gt;&lt;/p&gt;&#xA;&lt;p&gt;Il est donc très facile de les franciser en éditant le fichier &lt;code&gt; index.md&lt;/code&gt; de chaque dossier.&lt;/p&gt;&#xA;&lt;h3 id=&#34;apparence&#34;&gt;Apparence&#xA;&lt;/h3&gt;&lt;p&gt;Il s&amp;rsquo;agit maintenant personnaliser le thème, et pour cela il va falloir modifier essentiellement les trois fichiers suivants : &lt;code&gt;hugo.toml&lt;/code&gt; à la racine du site, puis dans &lt;code&gt;themes/stack/config/_default/&lt;/code&gt; : &lt;code&gt;menu.toml&lt;/code&gt; et &lt;code&gt;params.toml&lt;/code&gt;.&lt;/p&gt;&#xA;&lt;h4 id=&#34;fichier-hugotoml&#34;&gt;Fichier hugo.toml&#xA;&lt;/h4&gt;&lt;p&gt;Le premier fichier à aller mettre à jour est le fichier &lt;code&gt;hugo.toml&lt;/code&gt;, à la racine du site. Son contenu par défaut est le suivant :&lt;/p&gt;&#xA;&lt;div class=&#34;highlight&#34;&gt;&lt;pre tabindex=&#34;0&#34; style=&#34;color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-text-size-adjust:none;&#34;&gt;&lt;code class=&#34;language-bash&#34; data-lang=&#34;bash&#34;&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;baseURL &lt;span style=&#34;color:#f92672&#34;&gt;=&lt;/span&gt; &lt;span style=&#34;color:#e6db74&#34;&gt;&amp;#39;https://example.org/&amp;#39;&lt;/span&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;locale &lt;span style=&#34;color:#f92672&#34;&gt;=&lt;/span&gt; &lt;span style=&#34;color:#e6db74&#34;&gt;&amp;#39;en-us&amp;#39;&lt;/span&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;title &lt;span style=&#34;color:#f92672&#34;&gt;=&lt;/span&gt; &lt;span style=&#34;color:#e6db74&#34;&gt;&amp;#39;My New Hugo Project&amp;#39;&lt;/span&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;theme &lt;span style=&#34;color:#f92672&#34;&gt;=&lt;/span&gt; &lt;span style=&#34;color:#e6db74&#34;&gt;&amp;#39;stack&amp;#39;&lt;/span&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;p&gt;Que l&amp;rsquo;on peut vite transformer en :&lt;/p&gt;&#xA;&lt;div class=&#34;highlight&#34;&gt;&lt;pre tabindex=&#34;0&#34; style=&#34;color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-text-size-adjust:none;&#34;&gt;&lt;code class=&#34;language-bash&#34; data-lang=&#34;bash&#34;&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;baseURL &lt;span style=&#34;color:#f92672&#34;&gt;=&lt;/span&gt; &lt;span style=&#34;color:#e6db74&#34;&gt;&amp;#39;https://myhugo.pled.fr/&amp;#39;&lt;/span&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;locale &lt;span style=&#34;color:#f92672&#34;&gt;=&lt;/span&gt; &lt;span style=&#34;color:#e6db74&#34;&gt;&amp;#39;fr&amp;#39;&lt;/span&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;title &lt;span style=&#34;color:#f92672&#34;&gt;=&lt;/span&gt; &lt;span style=&#34;color:#e6db74&#34;&gt;&amp;#34;Pascal&amp;#39;s weblog&amp;#34;&lt;/span&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;theme &lt;span style=&#34;color:#f92672&#34;&gt;=&lt;/span&gt; &lt;span style=&#34;color:#e6db74&#34;&gt;&amp;#39;stack&amp;#39;&lt;/span&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;ul&gt;&#xA;&lt;li&gt;Le param &lt;code&gt;baseURL&lt;/code&gt; doit représenter l&amp;rsquo;URL réelle de votre site quand il sera en ligne (ce sera nécessaire quand le site statique sera copié à cette adresse).&lt;/li&gt;&#xA;&lt;li&gt;Le paramètre &lt;code&gt;theme&lt;/code&gt; a été mis à jour quand on a installé le thème stack.&lt;/li&gt;&#xA;&lt;li&gt;J&amp;rsquo;ai utilisé un double guillemet pour encadrer le param &lt;code&gt;title&lt;/code&gt;, puisque j&amp;rsquo;ai un simple guillemet dans le titre de mon blog.&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;&lt;h4 id=&#34;fichier-menutoml&#34;&gt;Fichier menu.toml&#xA;&lt;/h4&gt;&lt;p&gt;Le fichier &lt;code&gt;menu.toml&lt;/code&gt; va permettre d&amp;rsquo;ajouter les icônes des réseaux sociaux que vous voulez afficher. Dans un premier temps, je décide d&amp;rsquo;afficher une icône pour Github, Mail et Mastodon. On va d&amp;rsquo;abord récupérer le fichier &lt;code&gt;Hugo/pled/themes/stack/demo/config/_default/menu.toml&lt;/code&gt; et le copier dans &lt;code&gt;Hugo/pled/config/_default/menu.toml&lt;/code&gt; (créer les dossiers manquants).&lt;/p&gt;&#xA;&lt;p&gt;Mais si l&amp;rsquo;icône Github est bien présente dans le thème par défaut, ce n&amp;rsquo;est pas le cas pour le Mail et Mastodon. Il va donc falloir créer ces icônes.&lt;/p&gt;&#xA;&lt;h5 id=&#34;icônes&#34;&gt;Icônes&#xA;&lt;/h5&gt;&lt;p&gt;Je suis allé sur le site &lt;a class=&#34;link&#34; href=&#34;https://tablericons.com/&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;&#xA;    &gt;https://tablericons.com/&lt;/a&gt; pour chercher les icônes manquantes. Une fois la bonne icône trouvée, on édite le code du fichier &lt;code&gt;.svg&lt;/code&gt; correspondant (c&amp;rsquo;est un fichier texte). J&amp;rsquo;ai créé ainsi un fichier &lt;code&gt;mail.svg&lt;/code&gt; et un autre &lt;code&gt;brand-mastodon.svg&lt;/code&gt;. Et on l&amp;rsquo;adapte le dessin au thème en allant voir le code de l&amp;rsquo;icône github par exemple (dans &lt;code&gt;themes/stack/assets/icons&lt;/code&gt;), pour notamment la couleur, l&amp;rsquo;épaisseur du trait, etc&amp;hellip; afin d&amp;rsquo;avoir des icônes avec le même style. Ce sont les infos au début du fichier &lt;code&gt;.svg&lt;/code&gt; qui définissent tout ça :&lt;/p&gt;&#xA;&lt;div class=&#34;highlight&#34;&gt;&lt;pre tabindex=&#34;0&#34; style=&#34;color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-text-size-adjust:none;&#34;&gt;&lt;code class=&#34;language-bash&#34; data-lang=&#34;bash&#34;&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&amp;lt;svg&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;  xmlns&lt;span style=&#34;color:#f92672&#34;&gt;=&lt;/span&gt;&lt;span style=&#34;color:#e6db74&#34;&gt;&amp;#34;http://www.w3.org/2000/svg&amp;#34;&lt;/span&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;  width&lt;span style=&#34;color:#f92672&#34;&gt;=&lt;/span&gt;&lt;span style=&#34;color:#e6db74&#34;&gt;&amp;#34;24&amp;#34;&lt;/span&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;  height&lt;span style=&#34;color:#f92672&#34;&gt;=&lt;/span&gt;&lt;span style=&#34;color:#e6db74&#34;&gt;&amp;#34;24&amp;#34;&lt;/span&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;  viewBox&lt;span style=&#34;color:#f92672&#34;&gt;=&lt;/span&gt;&lt;span style=&#34;color:#e6db74&#34;&gt;&amp;#34;0 0 24 24&amp;#34;&lt;/span&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;  fill&lt;span style=&#34;color:#f92672&#34;&gt;=&lt;/span&gt;&lt;span style=&#34;color:#e6db74&#34;&gt;&amp;#34;none&amp;#34;&lt;/span&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;  stroke&lt;span style=&#34;color:#f92672&#34;&gt;=&lt;/span&gt;&lt;span style=&#34;color:#e6db74&#34;&gt;&amp;#34;currentColor&amp;#34;&lt;/span&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;  stroke-width&lt;span style=&#34;color:#f92672&#34;&gt;=&lt;/span&gt;&lt;span style=&#34;color:#e6db74&#34;&gt;&amp;#34;2&amp;#34;&lt;/span&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;  stroke-linecap&lt;span style=&#34;color:#f92672&#34;&gt;=&lt;/span&gt;&lt;span style=&#34;color:#e6db74&#34;&gt;&amp;#34;round&amp;#34;&lt;/span&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;  stroke-linejoin&lt;span style=&#34;color:#f92672&#34;&gt;=&lt;/span&gt;&lt;span style=&#34;color:#e6db74&#34;&gt;&amp;#34;round&amp;#34;&lt;/span&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&amp;gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;p&gt;La suite du fichier &lt;code&gt;.svg&lt;/code&gt;, représentent les données numériques qui vont dessiner l&amp;rsquo;icône, donc on n&amp;rsquo;y touche pas.&lt;/p&gt;&#xA;&lt;p&gt;Une fois les icônes requises créées et copiées dans le dossier &lt;code&gt;themes/stack/assets/icons&lt;/code&gt;, on peut modifier le contenu du fichier &lt;code&gt;menu.toml&lt;/code&gt; comme ceci :&lt;/p&gt;&#xA;&lt;div class=&#34;highlight&#34;&gt;&lt;pre tabindex=&#34;0&#34; style=&#34;color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-text-size-adjust:none;&#34;&gt;&lt;code class=&#34;language-bash&#34; data-lang=&#34;bash&#34;&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#f92672&#34;&gt;[[&lt;/span&gt;social&lt;span style=&#34;color:#f92672&#34;&gt;]]&lt;/span&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;    identifier &lt;span style=&#34;color:#f92672&#34;&gt;=&lt;/span&gt; &lt;span style=&#34;color:#e6db74&#34;&gt;&amp;#34;mail&amp;#34;&lt;/span&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;    name       &lt;span style=&#34;color:#f92672&#34;&gt;=&lt;/span&gt; &lt;span style=&#34;color:#e6db74&#34;&gt;&amp;#34;Mail&amp;#34;&lt;/span&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;    url        &lt;span style=&#34;color:#f92672&#34;&gt;=&lt;/span&gt; &lt;span style=&#34;color:#e6db74&#34;&gt;&amp;#34;mailto:myname@myprovider.com&amp;#34;&lt;/span&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;    &lt;span style=&#34;color:#f92672&#34;&gt;[&lt;/span&gt;social.params&lt;span style=&#34;color:#f92672&#34;&gt;]&lt;/span&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;        icon &lt;span style=&#34;color:#f92672&#34;&gt;=&lt;/span&gt; &lt;span style=&#34;color:#e6db74&#34;&gt;&amp;#34;mail&amp;#34;&lt;/span&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#f92672&#34;&gt;[[&lt;/span&gt;social&lt;span style=&#34;color:#f92672&#34;&gt;]]&lt;/span&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;    identifier &lt;span style=&#34;color:#f92672&#34;&gt;=&lt;/span&gt; &lt;span style=&#34;color:#e6db74&#34;&gt;&amp;#34;github&amp;#34;&lt;/span&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;    name       &lt;span style=&#34;color:#f92672&#34;&gt;=&lt;/span&gt; &lt;span style=&#34;color:#e6db74&#34;&gt;&amp;#34;GitHub&amp;#34;&lt;/span&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;    url        &lt;span style=&#34;color:#f92672&#34;&gt;=&lt;/span&gt; &lt;span style=&#34;color:#e6db74&#34;&gt;&amp;#34;https://github.com/myname/&amp;#34;&lt;/span&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;    &lt;span style=&#34;color:#f92672&#34;&gt;[&lt;/span&gt;social.params&lt;span style=&#34;color:#f92672&#34;&gt;]&lt;/span&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;        icon &lt;span style=&#34;color:#f92672&#34;&gt;=&lt;/span&gt; &lt;span style=&#34;color:#e6db74&#34;&gt;&amp;#34;brand-github&amp;#34;&lt;/span&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#f92672&#34;&gt;[[&lt;/span&gt;social&lt;span style=&#34;color:#f92672&#34;&gt;]]&lt;/span&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;    identifier &lt;span style=&#34;color:#f92672&#34;&gt;=&lt;/span&gt; &lt;span style=&#34;color:#e6db74&#34;&gt;&amp;#34;mastodon&amp;#34;&lt;/span&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;    name       &lt;span style=&#34;color:#f92672&#34;&gt;=&lt;/span&gt; &lt;span style=&#34;color:#e6db74&#34;&gt;&amp;#34;Mastodon&amp;#34;&lt;/span&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;    url        &lt;span style=&#34;color:#f92672&#34;&gt;=&lt;/span&gt; &lt;span style=&#34;color:#e6db74&#34;&gt;&amp;#34;https://mastodon.fr/@myname&amp;#34;&lt;/span&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;    &lt;span style=&#34;color:#f92672&#34;&gt;[&lt;/span&gt;social.params&lt;span style=&#34;color:#f92672&#34;&gt;]&lt;/span&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;        icon &lt;span style=&#34;color:#f92672&#34;&gt;=&lt;/span&gt; &lt;span style=&#34;color:#e6db74&#34;&gt;&amp;#34;brand-mastodon&amp;#34;&lt;/span&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;p&gt;Et les icônes souhaitées apparaissent dans le menu de gauche :&lt;/p&gt;&#xA;&lt;p&gt;&lt;img class=&#34;gallery-image&#34; data-flex-basis=&#34;408px&#34; data-flex-grow=&#34;170&#34; height=&#34;175&#34; loading=&#34;lazy&#34; sizes=&#34;(max-width: 767px) calc(100vw - 30px), (max-width: 1023px) 700px, (max-width: 1279px) 950px, 1232px&#34; src=&#34;https://pled.fr/hugo-avec-theme-stack-installation-en-local/social-2.png&#34; width=&#34;298&#34;&gt;&lt;/p&gt;&#xA;&lt;h4 id=&#34;fichier-paramstoml&#34;&gt;Fichier params.toml&#xA;&lt;/h4&gt;&lt;p&gt;Celui-ci contient plus d&amp;rsquo;infos et va permettre de continuer à personnaliser le thème.&lt;/p&gt;&#xA;&lt;h5 id=&#34;widgets&#34;&gt;Widgets&#xA;&lt;/h5&gt;&lt;p&gt;Et on commence par le menu de droite, proposé par le thème. Ce sont les &amp;ldquo;widgets&amp;rdquo;, et ils s&amp;rsquo;activent dans ce fichier &lt;code&gt;params.toml&lt;/code&gt;, que l&amp;rsquo;on modifie donc comme suit :&lt;/p&gt;&#xA;&lt;div class=&#34;highlight&#34;&gt;&lt;pre tabindex=&#34;0&#34; style=&#34;color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-text-size-adjust:none;&#34;&gt;&lt;code class=&#34;language-bash&#34; data-lang=&#34;bash&#34;&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#f92672&#34;&gt;[&lt;/span&gt;widgets&lt;span style=&#34;color:#f92672&#34;&gt;]&lt;/span&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;    homepage &lt;span style=&#34;color:#f92672&#34;&gt;=&lt;/span&gt; &lt;span style=&#34;color:#f92672&#34;&gt;[&lt;/span&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;        &lt;span style=&#34;color:#f92672&#34;&gt;{&lt;/span&gt; type &lt;span style=&#34;color:#f92672&#34;&gt;=&lt;/span&gt; &lt;span style=&#34;color:#e6db74&#34;&gt;&amp;#34;search&amp;#34;&lt;/span&gt; &lt;span style=&#34;color:#f92672&#34;&gt;}&lt;/span&gt;,&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;        &lt;span style=&#34;color:#f92672&#34;&gt;{&lt;/span&gt; type &lt;span style=&#34;color:#f92672&#34;&gt;=&lt;/span&gt; &lt;span style=&#34;color:#e6db74&#34;&gt;&amp;#34;archives&amp;#34;&lt;/span&gt;, params &lt;span style=&#34;color:#f92672&#34;&gt;=&lt;/span&gt; &lt;span style=&#34;color:#f92672&#34;&gt;{&lt;/span&gt; limit &lt;span style=&#34;color:#f92672&#34;&gt;=&lt;/span&gt; &lt;span style=&#34;color:#ae81ff&#34;&gt;5&lt;/span&gt; &lt;span style=&#34;color:#f92672&#34;&gt;}&lt;/span&gt; &lt;span style=&#34;color:#f92672&#34;&gt;}&lt;/span&gt;,&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;        &lt;span style=&#34;color:#f92672&#34;&gt;{&lt;/span&gt; type &lt;span style=&#34;color:#f92672&#34;&gt;=&lt;/span&gt; &lt;span style=&#34;color:#e6db74&#34;&gt;&amp;#34;categories&amp;#34;&lt;/span&gt;, params &lt;span style=&#34;color:#f92672&#34;&gt;=&lt;/span&gt; &lt;span style=&#34;color:#f92672&#34;&gt;{&lt;/span&gt; limit &lt;span style=&#34;color:#f92672&#34;&gt;=&lt;/span&gt; &lt;span style=&#34;color:#ae81ff&#34;&gt;10&lt;/span&gt; &lt;span style=&#34;color:#f92672&#34;&gt;}&lt;/span&gt; &lt;span style=&#34;color:#f92672&#34;&gt;}&lt;/span&gt;,&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;        &lt;span style=&#34;color:#f92672&#34;&gt;{&lt;/span&gt; type &lt;span style=&#34;color:#f92672&#34;&gt;=&lt;/span&gt; &lt;span style=&#34;color:#e6db74&#34;&gt;&amp;#34;tag-cloud&amp;#34;&lt;/span&gt;, params &lt;span style=&#34;color:#f92672&#34;&gt;=&lt;/span&gt; &lt;span style=&#34;color:#f92672&#34;&gt;{&lt;/span&gt; limit &lt;span style=&#34;color:#f92672&#34;&gt;=&lt;/span&gt; &lt;span style=&#34;color:#ae81ff&#34;&gt;10&lt;/span&gt; &lt;span style=&#34;color:#f92672&#34;&gt;}&lt;/span&gt; &lt;span style=&#34;color:#f92672&#34;&gt;}&lt;/span&gt;,&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;    &lt;span style=&#34;color:#f92672&#34;&gt;]&lt;/span&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;    page     &lt;span style=&#34;color:#f92672&#34;&gt;=&lt;/span&gt; &lt;span style=&#34;color:#f92672&#34;&gt;[]&lt;/span&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;p&gt;NOTE : on peut activer ces widgets pour la homepage et/ou pour les pages&amp;hellip; Pour l&amp;rsquo;instant, je ne les déclare que pour la homepage, ce qui nous affiche dans la partie droite de la page d&amp;rsquo;accueil :&lt;/p&gt;&#xA;&lt;p&gt;&lt;img class=&#34;gallery-image&#34; data-flex-basis=&#34;122px&#34; data-flex-grow=&#34;51&#34; height=&#34;490&#34; loading=&#34;lazy&#34; sizes=&#34;(max-width: 767px) calc(100vw - 30px), (max-width: 1023px) 700px, (max-width: 1279px) 950px, 1232px&#34; src=&#34;https://pled.fr/hugo-avec-theme-stack-installation-en-local/widgets.png&#34; width=&#34;250&#34;&gt;&lt;/p&gt;&#xA;&lt;p&gt;Je ne pense pas garder la ligne &amp;ldquo;tag-cloud&amp;rdquo;, puisque sur mon blog, je n&amp;rsquo;utilise que les catégories. Mais la possibilité est là, les &amp;ldquo;mots clés&amp;rdquo; se définissant dans le front matter de chaque article (tout comme les catégories) :&lt;/p&gt;&#xA;&lt;div class=&#34;highlight&#34;&gt;&lt;pre tabindex=&#34;0&#34; style=&#34;color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-text-size-adjust:none;&#34;&gt;&lt;code class=&#34;language-bash&#34; data-lang=&#34;bash&#34;&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;---&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;title: Image Gallery&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;description: Showcasing the built-in image gallery support&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;date: 2026-01-26&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;slug: image-gallery&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;image: helena-hertz-wWZzXlDpMog-unsplash.jpg&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;categories:&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;    - Documentation&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;tags:&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;    - Gallery&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;    - Photoswipe&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;toc: false&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;---&#xA;&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;p&gt;Vous remarquez au passage le paramètre &lt;strong&gt;toc&lt;/strong&gt; qui permet d&amp;rsquo;afficher facilement une table des matières pour un article donné (écrit en markdown je le rappelle). Cela montre la puissance d&amp;rsquo;Hugo et la facilité d&amp;rsquo;utilisation, comparé à Wordpress.&lt;/p&gt;&#xA;&lt;h5 id=&#34;avatar&#34;&gt;Avatar&#xA;&lt;/h5&gt;&lt;p&gt;Puis on va ajouter une icône (avatar) dans le dossier &lt;code&gt;Hugo/pled/assets/img&lt;/code&gt; et on modifie la section sidebar comme suit :&lt;/p&gt;&#xA;&lt;div class=&#34;highlight&#34;&gt;&lt;pre tabindex=&#34;0&#34; style=&#34;color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-text-size-adjust:none;&#34;&gt;&lt;code class=&#34;language-bash&#34; data-lang=&#34;bash&#34;&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#f92672&#34;&gt;[&lt;/span&gt;sidebar&lt;span style=&#34;color:#f92672&#34;&gt;]&lt;/span&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;    compact &lt;span style=&#34;color:#f92672&#34;&gt;=&lt;/span&gt; false&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;    emoji    &lt;span style=&#34;color:#f92672&#34;&gt;=&lt;/span&gt; &lt;span style=&#34;color:#e6db74&#34;&gt;&amp;#34;🍥&amp;#34;&lt;/span&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;    subtitle &lt;span style=&#34;color:#f92672&#34;&gt;=&lt;/span&gt; &lt;span style=&#34;color:#e6db74&#34;&gt;&amp;#34;Mon prochain blog fait avec Hugo&amp;#34;&lt;/span&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;    avatar  &lt;span style=&#34;color:#f92672&#34;&gt;=&lt;/span&gt; &lt;span style=&#34;color:#e6db74&#34;&gt;&amp;#34;img/avatar.png&amp;#34;&lt;/span&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;p&gt;Voilà le résultat après avoir relancé Hugo :&lt;/p&gt;&#xA;&lt;p&gt;&lt;img class=&#34;gallery-image&#34; data-flex-basis=&#34;214px&#34; data-flex-grow=&#34;89&#34; height=&#34;303&#34; loading=&#34;lazy&#34; sizes=&#34;(max-width: 767px) calc(100vw - 30px), (max-width: 1023px) 700px, (max-width: 1279px) 950px, 1232px&#34; src=&#34;https://pled.fr/hugo-avec-theme-stack-installation-en-local/Capture-decran-du-2026-07-15-16-55-48.png&#34; width=&#34;271&#34;&gt;&lt;/p&gt;&#xA;&lt;p&gt;Pour la petite emoji 🍥, je l&amp;rsquo;ai récupérée sur le site du thème, afin d&amp;rsquo;en avoir la dernière version. Il s&amp;rsquo;agit de l&amp;rsquo;emoji &amp;ldquo;Fish Cake with Swirl&amp;rdquo;, qui me fait penser au logo Debian ! Plus d&amp;rsquo;infos sur &lt;a class=&#34;link&#34; href=&#34;https://www.cyberdefinitions.com/emojis/Fish-Cake-with-Swirl.html&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;&#xA;    &gt;cette page&lt;/a&gt;.&lt;/p&gt;&#xA;&lt;h5 id=&#34;favicon&#34;&gt;Favicon&#xA;&lt;/h5&gt;&lt;p&gt;Concernant la favicon du site, qui s&amp;rsquo;affiche dans l&amp;rsquo;onglet du navigateur, il suffit d&amp;rsquo;ajouter cette ligne dans le fichier, après avoir copié le fichier &lt;code&gt;favicon.png&lt;/code&gt;, toujours dans le dossier &lt;code&gt;Hugo/pled/assets/img&lt;/code&gt; :&lt;/p&gt;&#xA;&lt;div class=&#34;highlight&#34;&gt;&lt;pre tabindex=&#34;0&#34; style=&#34;color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-text-size-adjust:none;&#34;&gt;&lt;code class=&#34;language-bash&#34; data-lang=&#34;bash&#34;&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;favicon &lt;span style=&#34;color:#f92672&#34;&gt;=&lt;/span&gt; &lt;span style=&#34;color:#e6db74&#34;&gt;&amp;#34;img/favicon.png&amp;#34;&lt;/span&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;h5 id=&#34;copyright&#34;&gt;Copyright&#xA;&lt;/h5&gt;&lt;p&gt;On peut personnaliser les informations de Copyright :&lt;/p&gt;&#xA;&lt;div class=&#34;highlight&#34;&gt;&lt;pre tabindex=&#34;0&#34; style=&#34;color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-text-size-adjust:none;&#34;&gt;&lt;code class=&#34;language-bash&#34; data-lang=&#34;bash&#34;&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#f92672&#34;&gt;[&lt;/span&gt;footer&lt;span style=&#34;color:#f92672&#34;&gt;]&lt;/span&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;    since      &lt;span style=&#34;color:#f92672&#34;&gt;=&lt;/span&gt; &lt;span style=&#34;color:#ae81ff&#34;&gt;2005&lt;/span&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;    customText &lt;span style=&#34;color:#f92672&#34;&gt;=&lt;/span&gt; &lt;span style=&#34;color:#e6db74&#34;&gt;&amp;#34;Blog ouvert depuis le 25 décembre 2005&amp;#34;&lt;/span&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;p&gt;&lt;img class=&#34;gallery-image&#34; data-flex-basis=&#34;445px&#34; data-flex-grow=&#34;185&#34; height=&#34;146&#34; loading=&#34;lazy&#34; sizes=&#34;(max-width: 767px) calc(100vw - 30px), (max-width: 1023px) 700px, (max-width: 1279px) 950px, 1232px&#34; src=&#34;https://pled.fr/hugo-avec-theme-stack-installation-en-local/Capture-decran-du-2026-07-15-17-36-26.png&#34; width=&#34;271&#34;&gt;&lt;/p&gt;&#xA;&lt;h5 id=&#34;commentaires&#34;&gt;Commentaires&#xA;&lt;/h5&gt;&lt;p&gt;Dans ce fichier, on va aussi trouver tous les systèmes de commentaires supportés par le thème. Une fois votre système de commentaires choisi (Hugo n&amp;rsquo;intègre rien à ce sujet, ce n&amp;rsquo;est pas de son ressort), on peut supprimer tous les autres devenus inutiles.&lt;/p&gt;&#xA;&lt;p&gt;J&amp;rsquo;ai choisi Remark42. Je ne laisse donc que ceci :&lt;/p&gt;&#xA;&lt;div class=&#34;highlight&#34;&gt;&lt;pre tabindex=&#34;0&#34; style=&#34;color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-text-size-adjust:none;&#34;&gt;&lt;code class=&#34;language-bash&#34; data-lang=&#34;bash&#34;&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#f92672&#34;&gt;[&lt;/span&gt;comments&lt;span style=&#34;color:#f92672&#34;&gt;]&lt;/span&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;    enabled  &lt;span style=&#34;color:#f92672&#34;&gt;=&lt;/span&gt; true&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;    provider &lt;span style=&#34;color:#f92672&#34;&gt;=&lt;/span&gt; &lt;span style=&#34;color:#e6db74&#34;&gt;&amp;#34;remark42&amp;#34;&lt;/span&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;    &lt;span style=&#34;color:#f92672&#34;&gt;[&lt;/span&gt;comments.remark42&lt;span style=&#34;color:#f92672&#34;&gt;]&lt;/span&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;        host                    &lt;span style=&#34;color:#f92672&#34;&gt;=&lt;/span&gt; &lt;span style=&#34;color:#e6db74&#34;&gt;&amp;#34;https://remark42.monserveur.fr&amp;#34;&lt;/span&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;        site                    &lt;span style=&#34;color:#f92672&#34;&gt;=&lt;/span&gt; &lt;span style=&#34;color:#e6db74&#34;&gt;&amp;#34;remark&amp;#34;&lt;/span&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;        locale                  &lt;span style=&#34;color:#f92672&#34;&gt;=&lt;/span&gt; &lt;span style=&#34;color:#e6db74&#34;&gt;&amp;#34;fr&amp;#34;&lt;/span&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;        max_shown_comments      &lt;span style=&#34;color:#f92672&#34;&gt;=&lt;/span&gt; &lt;span style=&#34;color:#ae81ff&#34;&gt;15&lt;/span&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;        show_email_subscription &lt;span style=&#34;color:#f92672&#34;&gt;=&lt;/span&gt; true&#xA;&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;h5 id=&#34;divers&#34;&gt;Divers&#xA;&lt;/h5&gt;&lt;p&gt;Il y a d&amp;rsquo;autres paramètres dans ce fichier, comme les diagrammes Mermaid, qu&amp;rsquo;il convient de laisser au cas où le besoin s&amp;rsquo;en fait sentir un jour.&lt;/p&gt;&#xA;&lt;p&gt;&lt;img class=&#34;gallery-image&#34; data-flex-basis=&#34;273px&#34; data-flex-grow=&#34;113&#34; height=&#34;475&#34; loading=&#34;lazy&#34; sizes=&#34;(max-width: 767px) calc(100vw - 30px), (max-width: 1023px) 700px, (max-width: 1279px) 950px, 1232px&#34; src=&#34;https://pled.fr/hugo-avec-theme-stack-installation-en-local/Capture-decran-du-2026-07-15-17-53-02.png&#34; width=&#34;541&#34;&gt;&lt;/p&gt;&#xA;&lt;p&gt;Les &amp;ldquo;AlertIcon&amp;rdquo; définies dans ce fichier seront aussi pratiques pour afficher des messages de ce style dans un article :&lt;/p&gt;&#xA;&lt;p&gt;&lt;img class=&#34;gallery-image&#34; data-flex-basis=&#34;431px&#34; data-flex-grow=&#34;179&#34; height=&#34;264&#34; loading=&#34;lazy&#34; sizes=&#34;(max-width: 767px) calc(100vw - 30px), (max-width: 1023px) 700px, (max-width: 1279px) 950px, 1232px&#34; src=&#34;https://pled.fr/hugo-avec-theme-stack-installation-en-local/Capture-decran-du-2026-07-15-17-51-11.png&#34; width=&#34;475&#34;&gt;&lt;/p&gt;&#xA;&lt;p&gt;Voilà pour l&amp;rsquo;essentiel de ce que j&amp;rsquo;ai vu dans ce fichier &lt;code&gt;params.toml&lt;/code&gt;.&lt;/p&gt;&#xA;&lt;h3 id=&#34;page-archive&#34;&gt;Page Archive&#xA;&lt;/h3&gt;&lt;p&gt;La page Archive est plutôt intéressante. Elle affiche en haut la liste des catégories avec une image (ou pas), ce qui permet de filter selon la catégorie souhaitée :&lt;/p&gt;&#xA;&lt;p&gt;&lt;img class=&#34;gallery-image&#34; data-flex-basis=&#34;622px&#34; data-flex-grow=&#34;259&#34; height=&#34;232&#34; loading=&#34;lazy&#34; sizes=&#34;(max-width: 767px) calc(100vw - 30px), (max-width: 1023px) 700px, (max-width: 1279px) 950px, 1232px&#34; src=&#34;https://pled.fr/hugo-avec-theme-stack-installation-en-local/Capture-decran-du-2026-07-16-09-59-28.png&#34; width=&#34;602&#34;&gt;&lt;/p&gt;&#xA;&lt;p&gt;Puis elle affiche les articles par date, en ligne, avec une icône correspondant à l&amp;rsquo;image en tête de l&amp;rsquo;article (s&amp;rsquo;il y en une de définie dans le front matter). Mais elle est affichée à droite dans la page, après le bloc contenant le titre :&lt;/p&gt;&#xA;&lt;p&gt;&lt;img class=&#34;gallery-image&#34; data-flex-basis=&#34;340px&#34; data-flex-grow=&#34;141&#34; height=&#34;381&#34; loading=&#34;lazy&#34; sizes=&#34;(max-width: 767px) calc(100vw - 30px), (max-width: 1023px) 700px, (max-width: 1279px) 950px, 1232px&#34; src=&#34;https://pled.fr/hugo-avec-theme-stack-installation-en-local/Capture-decran-du-2026-07-15-17-56-56.png&#34; width=&#34;541&#34;&gt;&lt;/p&gt;&#xA;&lt;p&gt;Je préfère avoir l&amp;rsquo;image affichée à gauche, comme je l&amp;rsquo;avais pour mon blog WP.&lt;/p&gt;&#xA;&lt;p&gt;On procède toujours de la même façon, en copiant le fichier que l&amp;rsquo;on veut personnaliser du thème vers la racine du site. Ici, je copie &lt;code&gt;Hugo/pled/themes/stack/layouts/_partials/article-list/compact.html&lt;/code&gt; dans &lt;code&gt;Hugo/pled/layouts/_partials/article-list/compact.html&lt;/code&gt;.&lt;/p&gt;&#xA;&lt;p&gt;Puis je le modifie en déplaçant le bloc suivant AVANT le bloc &lt;code&gt;&amp;lt;div class=&amp;quot;articles-details&amp;quot;&amp;gt;&lt;/code&gt;&lt;/p&gt;&#xA;&lt;pre tabindex=&#34;0&#34;&gt;&lt;code class=&#34;language-clike&#34; data-lang=&#34;clike&#34;&gt;{{- $image := partial &amp;#34;helper/image&amp;#34; (dict &amp;#34;Image&amp;#34; .Params.image &amp;#34;Resources&amp;#34; .Resources &amp;#34;Context&amp;#34; .) -}}&#xA;        {{ if $image }}&#xA;&#xA;            {{ partial &amp;#34;helper/thumbnail-image&amp;#34; (dict&#xA;                &amp;#34;Resource&amp;#34; $image.Resource&#xA;                &amp;#34;Width&amp;#34; 60&#xA;                &amp;#34;Height&amp;#34; 60&#xA;                &amp;#34;Resize&amp;#34; .Site.Params.ImageProcessing.Thumbnail.Enabled&#xA;                &amp;#34;Attributes&amp;#34; (dict&#xA;                    &amp;#34;src&amp;#34; $image.Permalink&#xA;                    &amp;#34;alt&amp;#34; .Title&#xA;                    &amp;#34;loading&amp;#34; &amp;#34;lazy&amp;#34;&#xA;                    &amp;#34;width&amp;#34; $image.Width&#xA;                    &amp;#34;height&amp;#34; $image.Height&#xA;                )&#xA;            ) }}&#xA;&#xA;        {{ end }}&#xA;&lt;/code&gt;&lt;/pre&gt;&lt;p&gt;Et le tour est joué :&lt;/p&gt;&#xA;&lt;p&gt;&lt;img class=&#34;gallery-image&#34; data-flex-basis=&#34;340px&#34; data-flex-grow=&#34;141&#34; height=&#34;381&#34; loading=&#34;lazy&#34; sizes=&#34;(max-width: 767px) calc(100vw - 30px), (max-width: 1023px) 700px, (max-width: 1279px) 950px, 1232px&#34; src=&#34;https://pled.fr/hugo-avec-theme-stack-installation-en-local/Capture-decran-du-2026-07-15-18-12-27.png&#34; width=&#34;541&#34;&gt;&lt;/p&gt;&#xA;&lt;h3 id=&#34;lien-vers-mon-album-zenphoto&#34;&gt;Lien vers mon album Zenphoto&#xA;&lt;/h3&gt;&lt;p&gt;J&amp;rsquo;ai aussi besoin d&amp;rsquo;ajouter un lien direct vers mon album-photo Zenphoto, qui tourne sur un sous-domaine.&lt;/p&gt;&#xA;&lt;p&gt;La première chose à faire, c&amp;rsquo;est de créer une icône Zenphoto qui n&amp;rsquo;existe pas par défaut. Cette fois je suis allé sur le site &lt;a class=&#34;link&#34; href=&#34;https://svgicons.com/icon/224971/zenphoto&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;&#xA;    &gt;svgicons&lt;/a&gt; pour la trouver, puis j&amp;rsquo;ai procédé de la même manière que précédemment pour harmoniser son apparence, et j&amp;rsquo;ai copié le fichier &lt;code&gt;.svg&lt;/code&gt; dans le dossier &lt;code&gt;icons&lt;/code&gt; du theme.&lt;/p&gt;&#xA;&lt;p&gt;On crée ensuite l&amp;rsquo;entrée dans le menu de gauche en l&amp;rsquo;ajoutant dans le fichier &lt;code&gt;hugo.toml&lt;/code&gt; : c&amp;rsquo;est &lt;a class=&#34;link&#34; href=&#34;https://stack.cai.im/config/menu&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;&#xA;    &gt;la méthode 2 de la doc&lt;/a&gt; pour créer une entrée dans le menu. Puisque l&amp;rsquo;on sort du blog (newTab: false), la limitation de ne pas avoir le lien highlighté n&amp;rsquo;est pas gênant.&lt;/p&gt;&#xA;&lt;div class=&#34;highlight&#34;&gt;&lt;pre tabindex=&#34;0&#34; style=&#34;color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-text-size-adjust:none;&#34;&gt;&lt;code class=&#34;language-bash&#34; data-lang=&#34;bash&#34;&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#f92672&#34;&gt;[&lt;/span&gt;menu&lt;span style=&#34;color:#f92672&#34;&gt;]&lt;/span&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#f92672&#34;&gt;[[&lt;/span&gt;menu.main&lt;span style=&#34;color:#f92672&#34;&gt;]]&lt;/span&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;    name &lt;span style=&#34;color:#f92672&#34;&gt;=&lt;/span&gt; &lt;span style=&#34;color:#e6db74&#34;&gt;&amp;#34;Album Photo&amp;#34;&lt;/span&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;    url &lt;span style=&#34;color:#f92672&#34;&gt;=&lt;/span&gt; &lt;span style=&#34;color:#e6db74&#34;&gt;&amp;#34;https://zenphoto.pled.fr&amp;#34;&lt;/span&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;    weight &lt;span style=&#34;color:#f92672&#34;&gt;=&lt;/span&gt; &lt;span style=&#34;color:#ae81ff&#34;&gt;10&lt;/span&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;    identifier &lt;span style=&#34;color:#f92672&#34;&gt;=&lt;/span&gt; &lt;span style=&#34;color:#e6db74&#34;&gt;&amp;#34;zenphoto&amp;#34;&lt;/span&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;    &lt;span style=&#34;color:#f92672&#34;&gt;[&lt;/span&gt;menu.main.params&lt;span style=&#34;color:#f92672&#34;&gt;]&lt;/span&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;        icon &lt;span style=&#34;color:#f92672&#34;&gt;=&lt;/span&gt; &lt;span style=&#34;color:#e6db74&#34;&gt;&amp;#34;brand-zenphoto&amp;#34;&lt;/span&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;        newTab &lt;span style=&#34;color:#f92672&#34;&gt;=&lt;/span&gt; false&#xA;&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;p&gt;et voilà mon lien vers Zenphoto qui apparaît dans le menu de gauche :&lt;/p&gt;&#xA;&lt;p&gt;&lt;img class=&#34;gallery-image&#34; data-flex-basis=&#34;108px&#34; data-flex-grow=&#34;45&#34; height=&#34;540&#34; loading=&#34;lazy&#34; sizes=&#34;(max-width: 767px) calc(100vw - 30px), (max-width: 1023px) 700px, (max-width: 1279px) 950px, 1232px&#34; src=&#34;https://pled.fr/hugo-avec-theme-stack-installation-en-local/zenphoto.png&#34; width=&#34;243&#34;&gt;&lt;/p&gt;&#xA;&lt;h3 id=&#34;liens-voyage&#34;&gt;Liens Voyage&#xA;&lt;/h3&gt;&lt;p&gt;Je veux aussi ajouter un lien vers les articles de la catégorie &lt;strong&gt;Voyage&lt;/strong&gt; pour les mettre en évidence. Il s&amp;rsquo;agit d&amp;rsquo;afficher tous les articles de cette catégorie en cliquant sur cette entrée. J&amp;rsquo;ai auparavant créé un article de cette catégorie pour mes tests, avec l&amp;rsquo;aide d&amp;rsquo;un outil de migration WP vers Hugo.&lt;/p&gt;&#xA;&lt;p&gt;Là aussi, il va me falloir commencer par trouver une icône, et la copier dans le dossier du thème. On procède toujours de la même façon à ce sujet.&lt;/p&gt;&#xA;&lt;p&gt;Cette fois, je vais utiliser la méthode 1 de la &lt;a class=&#34;link&#34; href=&#34;https://stack.cai.im/config/menu&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;&#xA;    &gt;documentation&lt;/a&gt;. Il me suffit de créer un dossier Voyage dans &lt;code&gt;Hugo/pled/content/pages&lt;/code&gt;, et d&amp;rsquo;y créer un fichier &lt;code&gt; index.md&lt;/code&gt; (inspiré de celui du dossier &lt;code&gt;archives&lt;/code&gt;) :&lt;/p&gt;&#xA;&lt;div class=&#34;highlight&#34;&gt;&lt;pre tabindex=&#34;0&#34; style=&#34;color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-text-size-adjust:none;&#34;&gt;&lt;code class=&#34;language-bash&#34; data-lang=&#34;bash&#34;&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;---&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;title: &lt;span style=&#34;color:#e6db74&#34;&gt;&amp;#34;Voyage&amp;#34;&lt;/span&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;date: 2026-05-15&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;layout: &lt;span style=&#34;color:#e6db74&#34;&gt;&amp;#34;voyage&amp;#34;&lt;/span&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;slug: &lt;span style=&#34;color:#e6db74&#34;&gt;&amp;#34;voyage&amp;#34;&lt;/span&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;menu:&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;    main:&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;        weight: -70&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;        params:&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;            icon: world&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;---&#xA;&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;p&gt;Et voilà l&amp;rsquo;entrée Voyage qui apparaît dans le menu avec l&amp;rsquo;icône que j&amp;rsquo;ai choisi :&lt;/p&gt;&#xA;&lt;p&gt;&lt;img class=&#34;gallery-image&#34; data-flex-basis=&#34;101px&#34; data-flex-grow=&#34;42&#34; height=&#34;577&#34; loading=&#34;lazy&#34; sizes=&#34;(max-width: 767px) calc(100vw - 30px), (max-width: 1023px) 700px, (max-width: 1279px) 950px, 1232px&#34; src=&#34;https://pled.fr/hugo-avec-theme-stack-installation-en-local/voyage.png&#34; width=&#34;243&#34;&gt;&lt;/p&gt;&#xA;&lt;p&gt;Reste à créer le &amp;ldquo;layout&amp;rdquo; défini pour cette page &amp;ldquo;Voyage&amp;rdquo;. Il faudra créer un fichier &lt;code&gt;voyage.html&lt;/code&gt; dans le dossier &lt;code&gt;Hugo/pled/layouts&lt;/code&gt;. Je me suis inspiré du layout de la page archives.html, en l&amp;rsquo;adaptant pour n&amp;rsquo;afficher que les pages de la catégorie &amp;ldquo;Voyage&amp;rdquo; :&lt;/p&gt;&#xA;&lt;pre tabindex=&#34;0&#34;&gt;&lt;code class=&#34;language-clike&#34; data-lang=&#34;clike&#34;&gt;{{ define &amp;#34;body-class&amp;#34; }}template-archives{{ end }}&#xA;{{ define &amp;#34;main&amp;#34; }}&#xA;&#xA;    {{ $voyage := site.GetPage &amp;#34;/categories/voyage&amp;#34; }}&#xA;    {{ with $voyage }}&#xA;&#xA;                {{ partial &amp;#34;article-list/tile&amp;#34; $voyage }}&#xA;&#xA;    {{ end }}&#xA;&#xA;{{ $pages := where .Site.RegularPages &amp;#34;Params.categories&amp;#34; &amp;#34;intersect&amp;#34; (slice &amp;#34;Voyage&amp;#34;) }}&#xA;&#xA;    {{ range $pages.GroupByDate &amp;#34;2006&amp;#34; }}&#xA;    {{ $id := lower (replace .Key &amp;#34; &amp;#34; &amp;#34;-&amp;#34;) }}&#xA;&#xA;        {{ .Key }}&#xA;&#xA;            {{ range .Pages }}&#xA;                {{ partial &amp;#34;article-list/compact&amp;#34; . }}&#xA;            {{ end }}&#xA;&#xA;    {{ end }}&#xA;&#xA;    {{ partialCached &amp;#34;footer/footer&amp;#34; . }}&#xA;{{ end }}&#xA;&lt;/code&gt;&lt;/pre&gt;&lt;p&gt;Reste à attribuer une image à cette catégorie. Pour ce faire, je crée un dossier &lt;code&gt;Voyage&lt;/code&gt; dans &lt;code&gt;Hugo/pled/categories&lt;/code&gt; dans lequel je copie une image de mon choix ainsi qu&amp;rsquo;un fichier &lt;code&gt;_index.md&lt;/code&gt; avec le contenu suivant :&lt;/p&gt;&#xA;&lt;div class=&#34;highlight&#34;&gt;&lt;pre tabindex=&#34;0&#34; style=&#34;color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-text-size-adjust:none;&#34;&gt;&lt;code class=&#34;language-bash&#34; data-lang=&#34;bash&#34;&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;---&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;title: Voyage&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;description: &lt;span style=&#34;color:#e6db74&#34;&gt;&amp;#34;Articles à propos de mes voyages&amp;#34;&lt;/span&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;slug: &lt;span style=&#34;color:#e6db74&#34;&gt;&amp;#34;voyage&amp;#34;&lt;/span&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;image: &lt;span style=&#34;color:#e6db74&#34;&gt;&amp;#34;riziere.png&amp;#34;&lt;/span&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;style:&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;    background: &lt;span style=&#34;color:#e6db74&#34;&gt;&amp;#34;#2a9d8f&amp;#34;&lt;/span&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;    color: &lt;span style=&#34;color:#e6db74&#34;&gt;&amp;#34;#fff&amp;#34;&lt;/span&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;---&#xA;&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;p&gt;Et voilà le résultat en cliquant sur le menu Voyage :&lt;/p&gt;&#xA;&lt;p&gt;&lt;img class=&#34;gallery-image&#34; data-flex-basis=&#34;260px&#34; data-flex-grow=&#34;108&#34; height=&#34;554&#34; loading=&#34;lazy&#34; sizes=&#34;(max-width: 767px) calc(100vw - 30px), (max-width: 1023px) 700px, (max-width: 1279px) 950px, 1232px&#34; src=&#34;https://pled.fr/hugo-avec-theme-stack-installation-en-local/Capture-decran-du-2026-07-16-10-12-29.png&#34; width=&#34;602&#34;&gt;&lt;/p&gt;&#xA;&lt;h4 id=&#34;description&#34;&gt;Description&#xA;&lt;/h4&gt;&lt;p&gt;Avec Hugo, je peux ajouter une description pour chaque article (ça remplace l&amp;rsquo;excerpt de WP avantageusement je trouve). Ce champ description se trouve dans le &lt;a class=&#34;link&#34; href=&#34;https://gohugo.io/content-management/front-matter/&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;&#xA;    &gt;front matter&lt;/a&gt; en début de chaque fichier &lt;code&gt;.md&lt;/code&gt; où l&amp;rsquo;on peut ajouter les metadata de chaque article.&lt;/p&gt;&#xA;&lt;p&gt;Dans l&amp;rsquo;article de la catégorie Voyage que j&amp;rsquo;ai créé, le &lt;strong&gt;front matter&lt;/strong&gt; est comme ceci :&lt;/p&gt;&#xA;&lt;div class=&#34;highlight&#34;&gt;&lt;pre tabindex=&#34;0&#34; style=&#34;color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-text-size-adjust:none;&#34;&gt;&lt;code class=&#34;language-bash&#34; data-lang=&#34;bash&#34;&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;---&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;title: &lt;span style=&#34;color:#e6db74&#34;&gt;&amp;#34;Asie 2023 - Présentation&amp;#34;&lt;/span&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;date: 2026-05-04&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;slug: &lt;span style=&#34;color:#e6db74&#34;&gt;&amp;#34;asie-2023-le-voyage&amp;#34;&lt;/span&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;image: carte.png&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;description: &lt;span style=&#34;color:#e6db74&#34;&gt;&amp;#34;Description du voyage de 2023 : le parcours, les changements qu&amp;#39;il a fallu faire, et les cours de cuisine&amp;#34;&lt;/span&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;categories:&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;    - Voyage&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;---&#xA;&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;p&gt;Je souhaite que la description s&amp;rsquo;affiche dans les pages Voyage et Archive, je trouve cela plus clair. On a vu que c&amp;rsquo;est la page &lt;code&gt;/pled/layouts/_partials/article-list/compact.html&lt;/code&gt; qui est utilisée pour ce type de vue. Je la modifie en ajoutant la partie description sous la partie title :&lt;/p&gt;&#xA;&lt;div class=&#34;highlight&#34;&gt;&lt;pre tabindex=&#34;0&#34; style=&#34;color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-text-size-adjust:none;&#34;&gt;&lt;code class=&#34;language-bash&#34; data-lang=&#34;bash&#34;&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&amp;lt;div class&lt;span style=&#34;color:#f92672&#34;&gt;=&lt;/span&gt;&lt;span style=&#34;color:#e6db74&#34;&gt;&amp;#34;article-details&amp;#34;&lt;/span&gt;&amp;gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;            &amp;lt;h2 class&lt;span style=&#34;color:#f92672&#34;&gt;=&lt;/span&gt;&lt;span style=&#34;color:#e6db74&#34;&gt;&amp;#34;article-title&amp;#34;&lt;/span&gt;&amp;gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;                &lt;span style=&#34;color:#f92672&#34;&gt;{{&lt;/span&gt;- .Title -&lt;span style=&#34;color:#f92672&#34;&gt;}}&lt;/span&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;            &amp;lt;/h2&amp;gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;                &lt;span style=&#34;color:#f92672&#34;&gt;{{&lt;/span&gt; with .Params.description &lt;span style=&#34;color:#f92672&#34;&gt;}}&lt;/span&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;                    &amp;lt;p class&lt;span style=&#34;color:#f92672&#34;&gt;=&lt;/span&gt;&lt;span style=&#34;color:#e6db74&#34;&gt;&amp;#34;section-description&amp;#34;&lt;/span&gt;&amp;gt;&lt;span style=&#34;color:#f92672&#34;&gt;{{&lt;/span&gt; . &lt;span style=&#34;color:#f92672&#34;&gt;}}&lt;/span&gt;&amp;lt;/p&amp;gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;                &lt;span style=&#34;color:#f92672&#34;&gt;{{&lt;/span&gt; end &lt;span style=&#34;color:#f92672&#34;&gt;}}&lt;/span&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;p&gt;Et voilà le résultat :&lt;/p&gt;&#xA;&lt;p&gt;&lt;img class=&#34;gallery-image&#34; data-flex-basis=&#34;236px&#34; data-flex-grow=&#34;98&#34; height=&#34;611&#34; loading=&#34;lazy&#34; sizes=&#34;(max-width: 767px) calc(100vw - 30px), (max-width: 1023px) 700px, (max-width: 1279px) 950px, 1232px&#34; src=&#34;https://pled.fr/hugo-avec-theme-stack-installation-en-local/Capture-decran-du-2026-07-16-10-39-47.png&#34; width=&#34;602&#34;&gt;&lt;/p&gt;&#xA;&lt;p&gt;Il en sera de même pour la page Archives&amp;hellip;&lt;/p&gt;&#xA;&lt;h3 id=&#34;conclusion&#34;&gt;Conclusion&#xA;&lt;/h3&gt;&lt;p&gt;Voilà désormais la page d&amp;rsquo;accueil du blog : il commence à ressembler à ce que je souhaite.&lt;/p&gt;&#xA;&lt;p&gt;&lt;img class=&#34;gallery-image&#34; data-flex-basis=&#34;426px&#34; data-flex-grow=&#34;177&#34; height=&#34;1080&#34; loading=&#34;lazy&#34; sizes=&#34;(max-width: 767px) calc(100vw - 30px), (max-width: 1023px) 700px, (max-width: 1279px) 950px, 1232px&#34; src=&#34;https://pled.fr/hugo-avec-theme-stack-installation-en-local/Capture-decran-du-2026-07-16-11-07-48.png&#34; srcset=&#34;https://pled.fr/hugo-avec-theme-stack-installation-en-local/Capture-decran-du-2026-07-16-11-07-48_hu_4aca6a76835c1ccf.png 800w, https://pled.fr/hugo-avec-theme-stack-installation-en-local/Capture-decran-du-2026-07-16-11-07-48_hu_52b438e4108c3daa.png 1600w, https://pled.fr/hugo-avec-theme-stack-installation-en-local/Capture-decran-du-2026-07-16-11-07-48.png 1920w&#34; width=&#34;1920&#34;&gt;&lt;/p&gt;&#xA;&lt;p&gt;La hauteur des images pour chaque article me paraît tout de même un peu grande, je préférerais carrément revenir à ce que j&amp;rsquo;ai sur WP, c&amp;rsquo;est-à-dire une petite image spécifique alignée à gauche et le texte qui commence à la même hauteur :&lt;/p&gt;&#xA;&lt;p&gt;&lt;img class=&#34;gallery-image&#34; data-flex-basis=&#34;436px&#34; data-flex-grow=&#34;181&#34; height=&#34;330&#34; loading=&#34;lazy&#34; sizes=&#34;(max-width: 767px) calc(100vw - 30px), (max-width: 1023px) 700px, (max-width: 1279px) 950px, 1232px&#34; src=&#34;https://pled.fr/hugo-avec-theme-stack-installation-en-local/Capture-decran-du-2026-07-16-11-39-14.png&#34; width=&#34;600&#34;&gt;&lt;/p&gt;&#xA;&lt;p&gt;Mais le thème Stack ne fonctionne pas ainsi, apparemment il prend la première image de l&amp;rsquo;article et en extrait une partie qu&amp;rsquo;il redimensionne pour l&amp;rsquo;afficher comme en-tête&amp;hellip; Ce traitement des images par le thème a l&amp;rsquo;air complexe, et je ne suis pas allé plus loin pour l&amp;rsquo;instant. J&amp;rsquo;ai tout de même trouvé comment réduire facilement la hauteur des images : il suffit de rajouter ce code CSS dans le fichier &lt;code&gt;/Hugo/pled/assets/scss/custom.scss&lt;/code&gt; (là encore, on crée le fichier et l&amp;rsquo;arborescence) :&lt;/p&gt;&#xA;&lt;div class=&#34;highlight&#34;&gt;&lt;pre tabindex=&#34;0&#34; style=&#34;color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-text-size-adjust:none;&#34;&gt;&lt;code class=&#34;language-css&#34; data-lang=&#34;css&#34;&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#75715e&#34;&gt;/* réduction hauteur images en-tête articles */&lt;/span&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;.&lt;span style=&#34;color:#a6e22e&#34;&gt;article-image&lt;/span&gt; &lt;span style=&#34;color:#f92672&#34;&gt;img&lt;/span&gt; {&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;  &lt;span style=&#34;color:#66d9ef&#34;&gt;max-height&lt;/span&gt;: &lt;span style=&#34;color:#ae81ff&#34;&gt;150&lt;/span&gt;&lt;span style=&#34;color:#66d9ef&#34;&gt;px&lt;/span&gt; &lt;span style=&#34;color:#75715e&#34;&gt;!important&lt;/span&gt;;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;  &lt;span style=&#34;color:#66d9ef&#34;&gt;width&lt;/span&gt;: &lt;span style=&#34;color:#ae81ff&#34;&gt;100&lt;/span&gt;&lt;span style=&#34;color:#66d9ef&#34;&gt;%&lt;/span&gt; &lt;span style=&#34;color:#75715e&#34;&gt;!important&lt;/span&gt;;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;  &lt;span style=&#34;color:#66d9ef&#34;&gt;height&lt;/span&gt;: &lt;span style=&#34;color:#66d9ef&#34;&gt;auto&lt;/span&gt; &lt;span style=&#34;color:#75715e&#34;&gt;!important&lt;/span&gt;;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;}&#xA;&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;p&gt;C&amp;rsquo;est déjà un peu mieux à mon goût :&lt;/p&gt;&#xA;&lt;p&gt;&lt;img class=&#34;gallery-image&#34; data-flex-basis=&#34;426px&#34; data-flex-grow=&#34;177&#34; height=&#34;1080&#34; loading=&#34;lazy&#34; sizes=&#34;(max-width: 767px) calc(100vw - 30px), (max-width: 1023px) 700px, (max-width: 1279px) 950px, 1232px&#34; src=&#34;https://pled.fr/hugo-avec-theme-stack-installation-en-local/Capture-decran-du-2026-07-16-11-37-30.png&#34; srcset=&#34;https://pled.fr/hugo-avec-theme-stack-installation-en-local/Capture-decran-du-2026-07-16-11-37-30_hu_578a566d0a521eb4.png 800w, https://pled.fr/hugo-avec-theme-stack-installation-en-local/Capture-decran-du-2026-07-16-11-37-30_hu_b3f5873b620b6dd2.png 1600w, https://pled.fr/hugo-avec-theme-stack-installation-en-local/Capture-decran-du-2026-07-16-11-37-30.png 1920w&#34; width=&#34;1920&#34;&gt;&lt;/p&gt;&#xA;&lt;h3 id=&#34;conclusion-1&#34;&gt;Conclusion&#xA;&lt;/h3&gt;&lt;p&gt;Voilà, je vais m&amp;rsquo;arrêter là pour l&amp;rsquo;instant, le résultat obtenu est déjà pas mal je trouve. Pour l&amp;rsquo;envoyer sur mon hébergeur, il suffit d&amp;rsquo;arrêter le serveur local, puis de lancer la commande &lt;code&gt;$ hugo&lt;/code&gt; :&lt;/p&gt;&#xA;&lt;div class=&#34;highlight&#34;&gt;&lt;pre tabindex=&#34;0&#34; style=&#34;color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-text-size-adjust:none;&#34;&gt;&lt;code class=&#34;language-bash&#34; data-lang=&#34;bash&#34;&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;$ hugo&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;Start building sites …&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;hugo v0.164.0+extended+withdeploy linux/amd64 BuildDate&lt;span style=&#34;color:#f92672&#34;&gt;=&lt;/span&gt;unknown&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;WARN  Raw HTML omitted &lt;span style=&#34;color:#66d9ef&#34;&gt;while&lt;/span&gt; rendering &lt;span style=&#34;color:#e6db74&#34;&gt;&amp;#34;/Backup/Hugo/pled/content/post/asie-2023-le-voyage/index.md&amp;#34;&lt;/span&gt;; see https://gohugo.io/getting-started/configuration-markup/#rendererunsafe&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;You can suppress this warning by adding the following to your project configuration:&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;ignoreLogs &lt;span style=&#34;color:#f92672&#34;&gt;=&lt;/span&gt; &lt;span style=&#34;color:#f92672&#34;&gt;[&lt;/span&gt;&lt;span style=&#34;color:#e6db74&#34;&gt;&amp;#39;warning-goldmark-raw-html&amp;#39;&lt;/span&gt;&lt;span style=&#34;color:#f92672&#34;&gt;]&lt;/span&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;WARN  Raw HTML omitted &lt;span style=&#34;color:#66d9ef&#34;&gt;while&lt;/span&gt; rendering &lt;span style=&#34;color:#e6db74&#34;&gt;&amp;#34;/Backup/Hugo/pled/content/post/test-de-galerie-photo.md&amp;#34;&lt;/span&gt;; see https://gohugo.io/getting-started/configuration-markup/#rendererunsafe&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;You can suppress this warning by adding the following to your project configuration:&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;ignoreLogs &lt;span style=&#34;color:#f92672&#34;&gt;=&lt;/span&gt; &lt;span style=&#34;color:#f92672&#34;&gt;[&lt;/span&gt;&lt;span style=&#34;color:#e6db74&#34;&gt;&amp;#39;warning-goldmark-raw-html&amp;#39;&lt;/span&gt;&lt;span style=&#34;color:#f92672&#34;&gt;]&lt;/span&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;WARN  Raw HTML omitted &lt;span style=&#34;color:#66d9ef&#34;&gt;while&lt;/span&gt; rendering &lt;span style=&#34;color:#e6db74&#34;&gt;&amp;#34;/Backup/Hugo/pled/content/post/Markdown Syntax/index.md&amp;#34;&lt;/span&gt;; see https://gohugo.io/getting-started/configuration-markup/#rendererunsafe&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;You can suppress this warning by adding the following to your project configuration:&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;ignoreLogs &lt;span style=&#34;color:#f92672&#34;&gt;=&lt;/span&gt; &lt;span style=&#34;color:#f92672&#34;&gt;[&lt;/span&gt;&lt;span style=&#34;color:#e6db74&#34;&gt;&amp;#39;warning-goldmark-raw-html&amp;#39;&lt;/span&gt;&lt;span style=&#34;color:#f92672&#34;&gt;]&lt;/span&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;WARN  Raw HTML omitted &lt;span style=&#34;color:#66d9ef&#34;&gt;while&lt;/span&gt; rendering &lt;span style=&#34;color:#e6db74&#34;&gt;&amp;#34;/Backup/Hugo/pled/content/post/shortcodes/index.md&amp;#34;&lt;/span&gt;; see https://gohugo.io/getting-started/configuration-markup/#rendererunsafe&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;You can suppress this warning by adding the following to your project configuration:&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;ignoreLogs &lt;span style=&#34;color:#f92672&#34;&gt;=&lt;/span&gt; &lt;span style=&#34;color:#f92672&#34;&gt;[&lt;/span&gt;&lt;span style=&#34;color:#e6db74&#34;&gt;&amp;#39;warning-goldmark-raw-html&amp;#39;&lt;/span&gt;&lt;span style=&#34;color:#f92672&#34;&gt;]&lt;/span&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;                  │ EN&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;──────────────────┼─────&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt; Pages            │ &lt;span style=&#34;color:#ae81ff&#34;&gt;101&lt;/span&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt; Paginator pages  │   &lt;span style=&#34;color:#ae81ff&#34;&gt;3&lt;/span&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt; Non-page files   │  &lt;span style=&#34;color:#ae81ff&#34;&gt;12&lt;/span&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt; Static files     │  &lt;span style=&#34;color:#ae81ff&#34;&gt;24&lt;/span&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt; Processed images │  &lt;span style=&#34;color:#ae81ff&#34;&gt;21&lt;/span&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt; Aliases          │  &lt;span style=&#34;color:#ae81ff&#34;&gt;26&lt;/span&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt; Cleaned          │   &lt;span style=&#34;color:#ae81ff&#34;&gt;0&lt;/span&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;Total in &lt;span style=&#34;color:#ae81ff&#34;&gt;219&lt;/span&gt; ms&#xA;&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;p&gt;Cette commande génère toutes les pages statiques en HTML pour pouvoir afficher le site comme il se doit. Pour l&amp;rsquo;instant, je ne tiens pas compte des WARN, ça n&amp;rsquo;a pas l&amp;rsquo;air très important. Une fois ceci fait, il ne reste plus qu&amp;rsquo;à envoyer le contenu du dossier &lt;code&gt;public&lt;/code&gt; sur le site prévu, et le blog est disponible.&lt;/p&gt;&#xA;&lt;p&gt;Cette découverte de Hugo et du thème Stack s&amp;rsquo;est révélée très intéressante. Je suis tout de même arrivé à personnaliser pas mal de trucs assez facilement. J&amp;rsquo;ai vu aussi que certaines parties peuvent être complexes, notamment ces pages HTML qui sont un mix de pur html et de shortcodes Hugo que je ne maîtrise pas du tout pour l&amp;rsquo;instant.&lt;/p&gt;&#xA;&lt;p&gt;Mais c&amp;rsquo;est très prometteur quand même, et tout aussi passionnant. Cela ne fait que m&amp;rsquo;encourager à continuer dans cette voie.&lt;/p&gt;&#xA;</description>
        </item><item>
            <title>Migrer le blog vers Hugo</title>
            <link>https://pled.fr/migrer-le-blog-vers-hugo/</link>
            <pubDate>Mon, 29 Jun 2026 15:10:37 +0000</pubDate>
            <guid>https://pled.fr/migrer-le-blog-vers-hugo/</guid>
            <description>&lt;p&gt;&lt;img loading=&#34;lazy&#34; sizes=&#34;(max-width: 767px) calc(100vw - 30px), (max-width: 1023px) 700px, (max-width: 1279px) 950px, 1232px&#34; src=&#34;hugo-icon.png#floatleft&#34;&gt;&lt;/p&gt;&#xA;&lt;p&gt;Je suis en train de réfléchir sérieusement à migrer mon blog Wordpress vers &lt;a class=&#34;link&#34; href=&#34;https://gohugo.io/&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;&#xA;    &gt;Hugo&lt;/a&gt;, un SSG ( &lt;strong&gt;S&lt;/strong&gt; tatic &lt;strong&gt;S&lt;/strong&gt; ite &lt;strong&gt;G&lt;/strong&gt; enerator) qui offre simplicité et rapidité comparé à &amp;ldquo;l&amp;rsquo;usine à gaz&amp;rdquo; qu&amp;rsquo;est Wordpress. Attention, il ne s&amp;rsquo;agit pas ici pour moi de critiquer WP, je l&amp;rsquo;ai utilisé pendant assez longtemps (~20 ans) et j&amp;rsquo;étais bien content de l&amp;rsquo;avoir. Mais il est vrai que c&amp;rsquo;est assez lourd, avec le PHP, la base de données, les plugins incertains&amp;hellip; Pour un simple blog comme le mien, je n&amp;rsquo;ai honnêtement pas besoin d&amp;rsquo;autant de complexité.&lt;/p&gt;&#xA;&lt;p&gt;Car ce sont autant de surfaces d&amp;rsquo;attaque, avec tout ce code généré ; il suffit d&amp;rsquo;ailleurs de voir le nombre de mises à jour de WP, sans parler de la qualité des plugins que l&amp;rsquo;on a activé sur son site, plus ou moins bien écrits, plus ou moins maintenus, etc&amp;hellip; Avec Hugo et ses pages statiques en HTML, il n&amp;rsquo;y a rien à attaquer car rien ne s&amp;rsquo;exécute. Il ne faut pour autant pas idéaliser la chose, car si on ajoute un système de commentaires (externe), il faudra gérer la question des spams, car Hugo ne propose évidemment rien sur le sujet&amp;hellip;&lt;/p&gt;&#xA;&lt;p&gt;L&amp;rsquo;autre aspect problématique de WP, c&amp;rsquo;est la performance (d&amp;rsquo;où le terme &amp;ldquo;usine à gaz&amp;rdquo; utilisé), et sans un hébergeur qui a toutes capacités de mise en cache et d&amp;rsquo;optimisation en tous genres, le temps d&amp;rsquo;affichage d&amp;rsquo;une page serait vraiment très long. Hugo, en tant que SSG, génère des pages statiques en HTML, et il suffit donc de les envoyer au navigateur, et c&amp;rsquo;est évidemment beaucoup plus rapide :&lt;/p&gt;&#xA;&lt;p&gt;&lt;img class=&#34;gallery-image&#34; data-flex-basis=&#34;439px&#34; data-flex-grow=&#34;183&#34; height=&#34;273&#34; loading=&#34;lazy&#34; sizes=&#34;(max-width: 767px) calc(100vw - 30px), (max-width: 1023px) 700px, (max-width: 1279px) 950px, 1232px&#34; src=&#34;https://pled.fr/migrer-le-blog-vers-hugo/wp-vs-hugo.png&#34; width=&#34;500&#34;&gt;&lt;/p&gt;&#xA;&lt;p&gt;Hugo, c&amp;rsquo;est donc le choix de la simplicité : on écrit ses articles en markdown, et Hugo se charge de les convertir en HTML. Il y a certainement moins de possibilités qu&amp;rsquo;avec Gutenberg, l&amp;rsquo;éditeur de WP (encore qu&amp;rsquo;il y a les &lt;code&gt;shortcodes&lt;/code&gt; dans Hugo). Il y a surtout les aspects pas du tout gérés par Hugo, comme les formulaires ou les commentaires, mais avec des solutions externes pour les remplacer.&lt;/p&gt;&#xA;&lt;p&gt;Mais ce côté simplification me plaît, se concentrer sur le texte de l&amp;rsquo;article, et laisser tomber les petites fioritures que permet WP avec le choix d&amp;rsquo;une multitude de plugins, mais qui finalement ne sont pas indispensables. Avoir un blog très rapide, des articles qui s&amp;rsquo;affichent en un clin d&amp;rsquo;œil, et qui se concentrent sur l&amp;rsquo;essentiel, c&amp;rsquo;est tentant. Alors pourquoi pas ?&lt;/p&gt;&#xA;&lt;p&gt;Mais qu&amp;rsquo;est-ce que ça implique vraiment ?&lt;/p&gt;&#xA;&lt;h3 id=&#34;découverte&#34;&gt;Découverte&#xA;&lt;/h3&gt;&lt;p&gt;Il existe beaucoup d&amp;rsquo;articles sur Hugo, le SSG est très populaire et son développement actif, ce qui est une bonne chose. Ce n&amp;rsquo;est donc pas la littérature sur le sujet qui manque, et encore moins sur la migration en venant de Wordpress. J&amp;rsquo;ai retenu ces deux articles :&lt;/p&gt;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;Pourquoi migrer : &lt;a class=&#34;link&#34; href=&#34;https://benoit.gouthiere.be/blog/migration-wordpress-hugo/&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;&#xA;    &gt;https://benoit.gouthiere.be/blog/migration-wordpress-hugo/&lt;/a&gt;&lt;/li&gt;&#xA;&lt;li&gt;Comprendre Hugo : &lt;a class=&#34;link&#34; href=&#34;https://www.regisphilibert.com/blog/2019/01/from-wordpress-to-hugo-a-mindset-transition/&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;&#xA;    &gt;https://www.regisphilibert.com/blog/2019/01/from-wordpress-to-hugo-a-mindset-transition/&lt;/a&gt;&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;&lt;h3 id=&#34;un-autre-environnement&#34;&gt;Un autre environnement&#xA;&lt;/h3&gt;&lt;p&gt;Déjà, on change totalement d&amp;rsquo;environnement, il y aura plein de nouvelles choses à apprendre, c&amp;rsquo;est certain, à commencer par Hugo. J&amp;rsquo;ai commencé par l&amp;rsquo;installer sur mon PC, jouer un peu avec, générer les pages HMTL, les envoyer sur mon hébergeur. Il faut reconnaître que c&amp;rsquo;est assez simple et intuitif, une fois que l&amp;rsquo;on a assimilé les bases. On commence par &lt;a class=&#34;link&#34; href=&#34;https://gohugo.io/documentation/&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;&#xA;    &gt;la doc&lt;/a&gt; bien entendu, qui est d&amp;rsquo;ailleurs très bien faite. Et notamment la page de &lt;a class=&#34;link&#34; href=&#34;http://gohugo.io/getting-started/quick-start/&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;&#xA;    &gt;Quicktart&lt;/a&gt;, et en quelques minutes vous avez votre premier site disponible. Toutes les modifications faites sur les fichiers &lt;code&gt;.md&lt;/code&gt; ou de configuration sont pris en compte dynamiquement, c&amp;rsquo;est très pratique quand on teste quelque chose. Et quand on le souhaite, on génère le site statique (dans le dossier &lt;code&gt;public&lt;/code&gt;) qu&amp;rsquo;il suffit d&amp;rsquo;envoyer sur votre hébergeur par exemple, et voilà le tour est joué. Cette première approche s&amp;rsquo;est révélée facile et cela donne envie de continuer et d&amp;rsquo;approfondir.&lt;/p&gt;&#xA;&lt;p&gt;Puis j&amp;rsquo;ai voulu choisir &lt;a class=&#34;link&#34; href=&#34;https://themes.gohugo.io/themes/hugo-theme-stack/&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;&#xA;    &gt;un thème&lt;/a&gt;. Et là, le thème Stack qui me plaît me renvoie sur une page Github qui me dit :&lt;/p&gt;&#xA;&lt;p&gt;&lt;img class=&#34;gallery-image&#34; data-flex-basis=&#34;873px&#34; data-flex-grow=&#34;363&#34; height=&#34;241&#34; loading=&#34;lazy&#34; sizes=&#34;(max-width: 767px) calc(100vw - 30px), (max-width: 1023px) 700px, (max-width: 1279px) 950px, 1232px&#34; src=&#34;https://pled.fr/migrer-le-blog-vers-hugo/Capture-decran-du-2026-06-14-18-29-03.png&#34; srcset=&#34;https://pled.fr/migrer-le-blog-vers-hugo/Capture-decran-du-2026-06-14-18-29-03_hu_331e0f6d58fb0106.png 800w, https://pled.fr/migrer-le-blog-vers-hugo/Capture-decran-du-2026-06-14-18-29-03.png 877w&#34; width=&#34;877&#34;&gt;&lt;/p&gt;&#xA;&lt;p&gt;J&amp;rsquo;ai mis du temps à comprendre de quoi il retournait : en fait il recommande de l&amp;rsquo;installer sur Github comme un dépôt, qui permet de générer automatiquement le site statique toujours sur Github. De plus, le thème sera automatiquement mis à jour si une nouvelle version est publiée. On passe vraiment dans un autre monde, un monde de développeur, ce que je ne suis pas. Mais cela laisse entrevoir de nouvelles possibilités, si l&amp;rsquo;on souhaite les apprendre (ainsi qu&amp;rsquo;une certaine maîtrise de Github). Mais à priori je ne compte pas aller jusque là.&lt;/p&gt;&#xA;&lt;p&gt;Heureusement, on peut aussi installer ce thème en local sur sa machine, et c&amp;rsquo;est ce que j&amp;rsquo;ai fait pour l&amp;rsquo;instant, ne maîtrisant pas Github (cela ferait beaucoup trop de choses nouvelles à appréhender en même temps). Je suis beaucoup plus à l&amp;rsquo;aise en local, et quand il s&amp;rsquo;agira de personnaliser le thème pour correspondre à mes souhaits, cela sera beaucoup plus facile ainsi.&lt;/p&gt;&#xA;&lt;h3 id=&#34;hébergeur&#34;&gt;Hébergeur&#xA;&lt;/h3&gt;&lt;p&gt;Un autre avantage d&amp;rsquo;Hugo, c&amp;rsquo;est de pouvoir se passer d&amp;rsquo;hébergeur, d&amp;rsquo;abord parce que les optimisations requises par WP sont désormais inutiles, et parce qu&amp;rsquo;il y a des solutions gratuites pour ce type de site statique : on peut donc utiliser les GitHub Pages, mais aussi Netlify, ou encore les Cloudflare Pages. À terme, je peux même imaginer auto-héberger mon blog sur mon NAS, tout simplement.&lt;/p&gt;&#xA;&lt;p&gt;Il me suffira de conserver mon nom de domaine, et d&amp;rsquo;en faire ce que je veux. D&amp;rsquo;ailleurs, Github Pages supporte les &amp;ldquo;custom domain&amp;rdquo;, si je souhaitais bénéficier du déploiement automatisé mentionné plus haut.&lt;/p&gt;&#xA;&lt;h3 id=&#34;migration&#34;&gt;Migration&#xA;&lt;/h3&gt;&lt;p&gt;Le projet est donc tentant mais cela implique de migrer mon blog WP, soit près de 1500 articles, et cela signifie certainement un très gros travail de migration, même s&amp;rsquo;il y a des outils et autres scripts qui sont là pour aider : en gros, on exporte le site WP au format XML (opération standard que permet le tableau d&amp;rsquo;administration de WP), puis un script va convertir tous les articles et les pages exportés au format Markdown. C&amp;rsquo;est déjà un énorme travail de fait, et disons que le texte de chaque article est correctement migré, mais qu&amp;rsquo;en est-il du reste ?&lt;/p&gt;&#xA;&lt;p&gt;C&amp;rsquo;est-à-dire tout le HTML autre que le texte : les liens (par exemple l&amp;rsquo;attribut &lt;code&gt;_target=&amp;quot;blank&amp;quot;&lt;/code&gt; qui permet d&amp;rsquo;ouvrir le lien dans un nouvel onglet n&amp;rsquo;existe pas en markdown), les images, tableaux, mais surtout tous les différents blocs de Gutenberg que j&amp;rsquo;ai utilisé (audio, vidéo, galerie, etc&amp;hellip;) qui utilisent un format spécifique, et d&amp;rsquo;autres cas particuliers que je découvrirai certainement au cours de l&amp;rsquo;opération. Il faudra repasser sur certaines choses, si je peux l&amp;rsquo;automatiser avec un script, ça ira, mais sinon revoir tous les articles un par un s&amp;rsquo;avérerait un énorme boulot.&lt;/p&gt;&#xA;&lt;p&gt;Et comment seront migrées les pages de mes journaux de voyage où j&amp;rsquo;ai fait un beau &amp;ldquo;page template&amp;rdquo; avec un sommaire glissant à droite ? Probable qu&amp;rsquo;il me faudra en revoir la présentation, même si j&amp;rsquo;ai vu que les templates existaient avec Hugo (après tout ce n&amp;rsquo;est que du HTML et du CSS), donc il y aura peut-être une solution ?&lt;/p&gt;&#xA;&lt;p&gt;Les autres choses auxquelles il faut porter attention :&lt;/p&gt;&#xA;&lt;h4 id=&#34;thème&#34;&gt;Thème&#xA;&lt;/h4&gt;&lt;p&gt;Pour le thème, l&amp;rsquo;apparence globale sera revue de A à Z, à moins de vouloir le recréer à l&amp;rsquo;aide de l&amp;rsquo;AI comme je l&amp;rsquo;ai lu une fois. Pour ma part, j&amp;rsquo;ai choisi un thème disponible pour Hugo, et ce sera l&amp;rsquo;occasion de profiter de ce nouveau thème et de l&amp;rsquo;adapter à mes souhaits. Cela donnera un coup de neuf au blog, c&amp;rsquo;est très bien comme ça. Et si certaines choses disparaîtront, de nouvelles seront présentes, c&amp;rsquo;est le principe de tout changement.&lt;/p&gt;&#xA;&lt;h4 id=&#34;plugins&#34;&gt;Plugins&#xA;&lt;/h4&gt;&lt;p&gt;Avec WP, j&amp;rsquo;essayais de limiter le nombre de plugins au maximum, pour ne pas alourdir ni compliquer la gestion du site, mais il y en a quand même quelques uns : l&amp;rsquo;idée c&amp;rsquo;est de se passer d&amp;rsquo;eux quand c&amp;rsquo;est possible (simplification) et de voir les solutions pour les autres.&lt;/p&gt;&#xA;&lt;p&gt;Il y a bien sûr le plugin Akismet pour lutter contre les spams, très efficace et indispensable avec WP. Je verrai comment cela va se passer sur cet aspect avec Hugo ou plutôt avec &lt;a class=&#34;link&#34; href=&#34;https://remark42.com/&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;&#xA;    &gt;Remark42&lt;/a&gt;, le système de commentaires que j&amp;rsquo;ai repéré pour l&amp;rsquo;instant, et ce qu&amp;rsquo;il propose à ce sujet : sera-t-il toujours possible de conserver les commentaires anonymes ? Ce n&amp;rsquo;est pas certain.&lt;/p&gt;&#xA;&lt;p&gt;Autre exemple : Je pensais faire une croix sur la citation que j&amp;rsquo;affiche en haut de la colonne de droite : il s&amp;rsquo;agit du plugin &lt;strong&gt;UtterQuotes&lt;/strong&gt; (qui d&amp;rsquo;ailleurs n&amp;rsquo;était plus maintenu depuis des années, mais fonctionnait encore pour l&amp;rsquo;essentiel, avec une table dédiée dans la BdD). Typiquement le genre de choses qui n&amp;rsquo;existe pas sur Hugo, mais en lisant &lt;a class=&#34;link&#34; href=&#34;https://www.hleroy.com/2022/09/migration-de-wordpress-vers-hugo/&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;&#xA;    &gt;cet article&lt;/a&gt;, j&amp;rsquo;ai pu recréer le système. Il a aussi fallu extraire mes citations de la BdD, et les importer dans un fichier &lt;code&gt;.json&lt;/code&gt;, pour cela Mistral AI m&amp;rsquo;a fourni un script en quelques secondes. De bonnes surprises peuvent donc aussi se produire durant la migration.&lt;/p&gt;&#xA;&lt;p&gt;Il y a aussi d&amp;rsquo;autres plugins dont je devrais me passer, comme celui qui me permettait d&amp;rsquo;afficher la liste d&amp;rsquo;articles par catégories, sous forme d&amp;rsquo;excerpt, mais cette possibilité est présente de base avec le thème Stack que j&amp;rsquo;ai choisi.&lt;/p&gt;&#xA;&lt;h4 id=&#34;les-commentaires&#34;&gt;Les commentaires&#xA;&lt;/h4&gt;&lt;p&gt;Pour revenir aux commentaires, il y a plusieurs solutions externes de proposées pour Hugo, et notamment &lt;strong&gt;Disqus&lt;/strong&gt;, le plus connu. Mais il n&amp;rsquo;est pas libre, et exploite vos données, il est donc hors-jeu d&amp;rsquo;entrée pour mon blog. Certains autres se basent sur Github où il faut donc avoir un compte pour poster un commentaire, c&amp;rsquo;est un peu limitatif. Il en reste quelques autres, et il faut idéalement qu&amp;rsquo;il soit supporté par votre thème pour assurer une intégration facile.&lt;/p&gt;&#xA;&lt;p&gt;J&amp;rsquo;ai donc commencé à regarder &lt;a class=&#34;link&#34; href=&#34;https://remark42.com/&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;&#xA;    &gt;Remark42&lt;/a&gt; de plus près, il a l&amp;rsquo;air de cocher pas mal de cases, axé sur le respect de la vie privée, et que l&amp;rsquo;on peut auto-héberger via Docker. Je n&amp;rsquo;ai donc pas tardé à installer le container sur mon NAS et commencé à jouer avec. Il permet l&amp;rsquo;authentification par email, ou par les réseaux sociaux (chose que je ne compte pas implémenter avec l&amp;rsquo;exception de Github), mais aussi les commentaires anonymes, que j&amp;rsquo;aimerais bien conserver, à voir si cela sera possible (risque de spams). Il lui manque juste une interface d&amp;rsquo;administration, mais si j&amp;rsquo;en avais besoin, j&amp;rsquo;ai vu qu&amp;rsquo;il existait des solutions externes, comme celle-ci : &lt;a class=&#34;link&#34; href=&#34;https://github.com/lauralesteves/remark42-admin-ui&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;&#xA;    &gt;https://github.com/lauralesteves/remark42-admin-ui&lt;/a&gt;, si nécessaire. Le monde du logiciel libre est vaste&amp;hellip;&lt;/p&gt;&#xA;&lt;p&gt;Remark42 permet aussi d&amp;rsquo;importer les commentaires de WP, je n&amp;rsquo;ai pas encore testé à fond &lt;a class=&#34;link&#34; href=&#34;https://remark42.com/docs/backup/migration/&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;&#xA;    &gt;cette option&lt;/a&gt;, j&amp;rsquo;espère qu&amp;rsquo;elle fonctionne, ça m&amp;rsquo;embêterait de perdre tous les commentaires existants.&lt;/p&gt;&#xA;&lt;h3 id=&#34;les-outils-de-migration&#34;&gt;Les outils de migration&#xA;&lt;/h3&gt;&lt;p&gt;Voilà ce que j&amp;rsquo;ai vu pour l&amp;rsquo;instant sur le sujet : la plupart reposent donc sur l&amp;rsquo;export que permet de faire WP via le menu Outils - Exporter. On choisit &amp;ldquo;Tout&amp;rdquo; et on récupère un fichier &lt;code&gt;.xml&lt;/code&gt; que l&amp;rsquo;outil va traiter. On en trouve une liste ici : &lt;a class=&#34;link&#34; href=&#34;https://gohugo.io/tools/migrations&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;&#xA;    &gt;https://gohugo.io/tools/migrations&lt;/a&gt;. Ou encore sur une liste fournie par un utilisateur sur le forum ici : &lt;a class=&#34;link&#34; href=&#34;https://discourse.gohugo.io/t/best-practices-or-a-smarter-way-to-create-a-60k-pages-website/46328&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;&#xA;    &gt;https://discourse.gohugo.io/t/best-practices-or-a-smarter-way-to-create-a-60k-pages-website/46328&lt;/a&gt;. Mais elles ne fonctionnent pas toutes : certaines sont assez anciennes et ne sont pas mises à jour depuis plusieurs années, d&amp;rsquo;autres proposent un script python qu&amp;rsquo;ils ont créé pour eux&amp;hellip; et qui ne fonctionne tout simplement pas ! D&amp;rsquo;autres encore s&amp;rsquo;installent comme plugins dans WP, mais de ce que j&amp;rsquo;ai pu voir, elles ne sont pas mises à jour non plus, et plutôt basiques.&lt;/p&gt;&#xA;&lt;p&gt;J&amp;rsquo;ai retenu les deux les plus réputées qui sont :&lt;/p&gt;&#xA;&lt;p&gt;&lt;a class=&#34;link&#34; href=&#34;https://github.com/lonekorean/wordpress-export-to-markdown&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;&#xA;    &gt;wordpress-export-to-mardown&lt;/a&gt; (écrit en JS) : J&amp;rsquo;aime bien le fait qu&amp;rsquo;il permette d&amp;rsquo;organiser les articles dans une arborescence de type année/mois/article. On obtient un dossier pour chaque article, avec dans chaque un dossier images, où l&amp;rsquo;on retrouve les images de l&amp;rsquo;article. C&amp;rsquo;est l&amp;rsquo;organisation que j&amp;rsquo;aimerais retrouver. Mais il est plutôt limité : on peut dire qu&amp;rsquo;il gère les articles et les images, ainsi que les catégories. Et ça s&amp;rsquo;arrête là.&lt;/p&gt;&#xA;&lt;p&gt;&lt;a class=&#34;link&#34; href=&#34;https://github.com/ashishb/wp2hugo&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;&#xA;    &gt;wp2hugo&lt;/a&gt; (écrit en Go) : le script est souvent mentionné, et il est sans doute le plus complet, gérant bien les contenus multimédias (liens videos, audio), et plein d&amp;rsquo;autres choses. Mais il crée les nouveaux articles à plat dans un répertoire, et les images sont dans le dossier static, en recréant l&amp;rsquo;arborescence de wordpress, genre &lt;code&gt;static/wordpress/upload/year/month&lt;/code&gt;. Ce n&amp;rsquo;est pas ce que je voudrais.&lt;/p&gt;&#xA;&lt;p&gt;En posant la question au développeur sur son projet Github, il m&amp;rsquo;a parlé d&amp;rsquo;un outil complémentaire qu&amp;rsquo;il est en train de développer, &lt;strong&gt;hugomanager&lt;/strong&gt;, et qui permet entre autres, de réorganiser les posts en dossiers indépendants contenant ses propres images. Cela me conviendrait beaucoup plus. Pour l&amp;rsquo;instant, cela ne fonctionne pas, mais j&amp;rsquo;avance avec le dev sur le sujet.&lt;/p&gt;&#xA;&lt;p&gt;Pour l&amp;rsquo;organisation en dossier &amp;ldquo;year/month&amp;rdquo; de l&amp;rsquo;ensemble des articles, j&amp;rsquo;ai aussi créé une issue, et il l&amp;rsquo;a déjà implémentée dans wp2hugo. Avec ces deux modifications, on obtiendrait avec le script un dossier &lt;code&gt;posts&lt;/code&gt; avec à l&amp;rsquo;intérieur une organisation par année puis par mois, et pour chaque article un sous-dossier images. Ce serait parfait pour moi.&lt;/p&gt;&#xA;&lt;p&gt;Si j&amp;rsquo;arrive grâce à lui à pouvoir résoudre les principaux problèmes de cette migration, cela va beaucoup m&amp;rsquo;aider. Il a l&amp;rsquo;air assez réactif, et prêt à ajouter des options à son outil, c&amp;rsquo;est vraiment génial ! :cool:&lt;/p&gt;&#xA;&lt;h3 id=&#34;conclusion&#34;&gt;Conclusion&#xA;&lt;/h3&gt;&lt;p&gt;Je suis très tenté de me lancer dans cette aventure ! L&amp;rsquo;esprit me plaît, l&amp;rsquo;approche d&amp;rsquo;un site statique aussi, je vais donc continuer à creuser et faire quelques tests de migration pour évaluer le travail que j&amp;rsquo;aurais à faire.&lt;/p&gt;&#xA;&lt;p&gt;Chez mon hébergeur Infomaniak, j&amp;rsquo;ai déjà créé un deuxième WP de test, ou je crée quelques articles et pages pour avoir un échantillon représentatif du contenu de mon blog. Puis je l&amp;rsquo;exporte en XML, et en local sur mon PC, je peux lancer le script de migration et regarder ce que cela donne dans Hugo. Parallèlement, je personnalise le thème que j&amp;rsquo;ai choisi et m&amp;rsquo;adapte aux changements que cela oblige. Je peux même pousser le HTML généré par Hugo sur un autre sous-domaine de mon hébergeur pour voir le rendu &amp;ldquo;en ligne&amp;rdquo;. Côté commentaires, Remark42 fonctionne en auto-hébergé, avec l&amp;rsquo;identification par github, mail ou de manière anonyme. Seul l&amp;rsquo;importation ne fonctionne pas pour l&amp;rsquo;instant, mais je n&amp;rsquo;ai pas vraiment creusé.&lt;/p&gt;&#xA;&lt;p&gt;Voilà où j&amp;rsquo;en suis, ça a quand même bien avancé, je continue de tester le script de migration et de suggérer des améliorations ou créer des bugs, d&amp;rsquo;apprendre aussi sur Hugo, le thème, le système de commentaire Remark42, etc&amp;hellip; On verra comment ce projet évolue, j&amp;rsquo;espère pour un jour faire la bascule vers ce nouveau système.&lt;/p&gt;&#xA;</description>
        </item></channel>
</rss>
