<?xml version="1.0" encoding="utf-8" standalone="yes"?>
<rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom">
	<channel>
		<title>docker on Silicone&#39;s web</title>
		<link>https://silicone.homelinux.org/tags/docker/</link>
		<description>Recent content in docker on Silicone&#39;s web</description>
		<generator>Hugo</generator>
		<language>fr</language>
		
		
		
		
			<lastBuildDate>Fri, 02 Oct 2026 22:44:48 +0200</lastBuildDate>
		
			<atom:link href="https://silicone.homelinux.org/tags/docker/index.xml" rel="self" type="application/rss+xml" />
			<item>
				<title>Migration du blog de WordPress vers Hugo</title>
				<link>https://silicone.homelinux.org/2026/10/02/wordpress-hugo-migration/</link>
				<pubDate>Fri, 02 Oct 2026 22:44:48 +0200</pubDate>
				<guid>https://silicone.homelinux.org/2026/10/02/wordpress-hugo-migration/</guid>
				<description>&lt;p&gt;Ça y est le blog est live avec Hugo et j’écris le premier post en markdown.&lt;/p&gt;&#xA;&lt;p&gt;Le chemin a été long, mais parce que j’ai geeké d’une nouvelle manière … bon on est en 2026 vous avez déjà deviné : oui l’IA est derrière tout ça !&lt;/p&gt;&#xA;&lt;p&gt;Tout a commencé par une question à Gemini : porter le blog de WordPress vers un site statique utilisant un générateur en Go… puis on a commencé à coder à coups de copier-coller : la conf et les templates Hugo, un premier Docker Compose avec un dump de la db de WordPress pour récupérer le contenu. L’idée c’était de coder un outil en Go qui ferait la conversion, ainsi tant que le rendu n’était pas satisfaisant je pouvais tout effacer et relancer l’import des posts.&lt;/p&gt;&#xA;&lt;p&gt;Après beaucoup de réticence j’ai installé &lt;a href=&#34;https://opencode.ai&#34;&gt;opencode&lt;/a&gt; mais pas sans l’enfermer dans un Docker. Puis j’ai découvert &lt;a href=&#34;https://linuxfr.org/news/j-ai-mis-un-proxy-entre-claude-et-internet&#34;&gt;greywall&lt;/a&gt;, &lt;a href=&#34;http://pi.dev&#34;&gt;pi.dev&lt;/a&gt; et développer &lt;a href=&#34;https://github.com/JulienVdG/AI-Cabin&#34;&gt;AI-Cabin&lt;/a&gt; mais ma plongée vers l’IA c’est une autre histoire&lt;!-- TODO ajouter un lien sur [une autre histoire] quand le post existera --&gt;, revenons au blog.&lt;/p&gt;&#xA;&lt;p&gt;Donc je disais, ce portage a été fait avec l’assistance d’IA de plus en plus performante, mais toutefois limitées car pour garder le contrôle sur mes données j’ai pas ouvert de comptes chez les grands acteurs. J’ai utilisé Gemini car j’ai déjà un compte Google et c’est un blog qui est déjà public, ensuite je suis passé aux modèles de &lt;a href=&#34;https://www.scaleway.com/en/generative-ai-servers/&#34;&gt;Scaleway&lt;/a&gt;.&lt;/p&gt;&#xA;&lt;p&gt;Les 3 gros éléments de ce portage :&lt;/p&gt;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;un &lt;code&gt;importer&lt;/code&gt; : code en Go qui utilise &lt;a href=&#34;https://github.com/sqlc-dev/sqlc&#34;&gt;sqlc&lt;/a&gt; pour lire la db et &lt;a href=&#34;https://github.com/JohannesKaufmann/html-to-markdown&#34;&gt;html-to-markdown/v2&lt;/a&gt; pour transformer le (pseudo) html de WordPress en fichiers markdown.&lt;/li&gt;&#xA;&lt;li&gt;une conf Hugo multilingue&#xA;&lt;ul&gt;&#xA;&lt;li&gt;et là, la feature que je n’avais jamais finalisée : le truc qui marchottait avec gengo et que j’ai pas fini sur polylang : la vue agrégée multilingue était enfin possible ! une langue virtuelle &lt;code&gt;all&lt;/code&gt; dans la config Hugo et une duplication virtuelle du contenu français ou anglais vers cette ‘dimension’ telle que définie depuis &lt;a href=&#34;https://discourse.gohugo.io/t/deprecations-in-v0-156-0/56732&#34;&gt;Hugo v0.156&lt;/a&gt;.&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;&lt;/li&gt;&#xA;&lt;li&gt;enfin un outil de comparaison du rendu Hugo contre une capture wget du WordPress (avec plein de règles de tolérance pour les trucs que j’ai choisis de changer)&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;&lt;p&gt;Les grandes fonctionnalités :&lt;/p&gt;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;import reproductible et assez fidèle malgré une conversion en markdown&#xA;&lt;ul&gt;&#xA;&lt;li&gt;grâce à un plugin sur html-to-md qu’il faudra que je publie rapidement&lt;!-- TODO add link--&gt; : parce que le html de WordPress a pas mal de dingueries :&#xA;&lt;ul&gt;&#xA;&lt;li&gt;on pense déjà au saut de lignes qui font des paragraphes (wpautop)&lt;/li&gt;&#xA;&lt;li&gt;les smileys&lt;/li&gt;&#xA;&lt;li&gt;les conversions typographiques (ex les jolis guillemets)&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;&lt;/li&gt;&#xA;&lt;li&gt;import des commentaires (en statique car bon c’était désactivé depuis longtemps … merci les spammers)&lt;/li&gt;&#xA;&lt;li&gt;préservation des URI parce que &lt;a href=&#34;https://www.w3.org/Provider/Style/URI&#34;&gt;« Cool URIs don’t change »&lt;/a&gt; — &lt;a href=&#34;https://silicone.homelinux.org/2010/02/03/mises-a-jour-de-wordpress-et-des-plugins/&#34;&gt;j’en parlais déjà en 2010&lt;/a&gt; — en configurant Hugo pour reproduire en partie la structure de WordPress, le reste à coups de redirects générés.&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;&lt;p&gt;Voilà, c’est live, je vais pouvoir virer PHP du server, un peu moins de stress vis-à-vis des failles 😅&lt;/p&gt;</description>
			</item>
	</channel>
</rss>
