Tag : WordPress

Migration du blog de WordPress vers Hugo

Ça y est le blog est live avec Hugo et j’écris le premier post en markdown.

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 !

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.

Après beaucoup de réticence j’ai installé opencode mais pas sans l’enfermer dans un Docker. Puis j’ai découvert greywall, pi.dev et développer AI-Cabin mais ma plongée vers l’IA c’est une autre histoire, revenons au blog.

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 Scaleway.

Les 3 gros éléments de ce portage :

  • un importer : code en Go qui utilise sqlc pour lire la db et html-to-markdown/v2 pour transformer le (pseudo) html de WordPress en fichiers markdown.
  • une conf Hugo multilingue
    • 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 all dans la config Hugo et une duplication virtuelle du contenu français ou anglais vers cette ‘dimension’ telle que définie depuis Hugo v0.156.
  • 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)

Les grandes fonctionnalités :

  • import reproductible et assez fidèle malgré une conversion en markdown
    • grâce à un plugin sur html-to-md qu’il faudra que je publie rapidement : parce que le html de WordPress a pas mal de dingueries :
      • on pense déjà au saut de lignes qui font des paragraphes (wpautop)
      • les smileys
      • les conversions typographiques (ex les jolis guillemets)
  • import des commentaires (en statique car bon c’était désactivé depuis longtemps … merci les spammers)
  • préservation des URI parce que « Cool URIs don’t change » — j’en parlais déjà en 2010 — en configurant Hugo pour reproduire en partie la structure de WordPress, le reste à coups de redirects générés.

Voilà, c’est live, je vais pouvoir virer PHP du server, un peu moins de stress vis-à-vis des failles 😅

Mises à jour de WordPress et des plugins

À la suite des déboires d’hier, je viens de mettre à jours tous mes plugins.

Le changement des URI par le plugin Gengo, qui ajoutait les code des langues m’embarquait dans une redirection infinie (en ajoutant des fr+en/ à l’URI) j’ai du le désactiver. Mais ce faisant, j’ai cassé les URI existante de vos marque-pages (si vous en aviez) et surtout de Google…
Donc j’ai encore modifié gengo, maintenant les URI qui se terminent par un code de langue sont redirigé vers l’URI sans.
Une lecture récente: Cool URIs don’t change exprime ce besoin de conserver les URI, ici je redirige, c’est mieux que rien et vous évite le 404 😉

J’ai trouvé ce lien sur le Blog de Peter Eisentraut. Je lisait sont article a propos de Remove et Purge. Je fut séduit par l’idée, je l’ai même appliqué quelques jours. Puis j’ai lut les commentaires, j’en reste à la méthode l~c pour crée une vue dans aptitude 😉 . Par le passé, j’utilisais synaptic pour purger les résidus restant…

ça fait un bail…

Bon, en fait je lis plus que je n’écris depuis que j’ai syndiqué Planet Debian dans mon aggrégateur de flux, gregarious.

J’ai aussi fait quelques changement sur le thème, mis a jours wordpress sans gros soucis. Merci à wordpress et debian.

Pour finir, ce blog est sous titré « electronics » et je n’ai jamais parlé d’électronique jusqu’ici. En revanche j’ai pratiqué. 😉

J’ai cherché des soft pour tracé des schéma et garder un trace de mon travail, dans un premier temps pour moi, puis pour les publier sur ce blog quand il seront prèt.
Un projet qui m’a semblé intéressant: Fritzing mais il semble trop instable, Je ne veux pas dire qu’il plante mais que le format de fichier n’est pas figé. Ce qui signifie que des projets enregistré avec la version d’aujourd’hui ne s’ouvriront peut être plus avec la version de demain.

Donc je me suis tourné vers les outils du gEDA project. À commencer par gschem pour tracer les schéma électronique puis je me suis mis à PCB pour préparer mes cartes.
Je ne fait pas de vrai PCBs, je préfère utiliser des cartes à prototype et y souder pleins de petits fils, mais utiliser PCD avec une grille à 100mil (1mil c’est 1/1000 de pouces soit 0,0254mm) facilite grandement le placement des composants.

J’ai commencer à bricoler avec des micro-contrôleurs AVR de Atmel en utilisant avr-gcc et avr-libc. J’ai commencer par me faire un programmateur d’avrpar usb, l’USBtinyISP. Je publierais les fichiers gschem et PCB un des ces quatres. (ou plus vite si vous me le demandez).

J’allais oublié, J’ai retrouvé un vieux liens sur le Chip Directory. C’est une collection de ficher decrivant le brochage de beaucoup de vieux circuits tels les séries TTL 74xx et les séries MOS 40xx.

Mon blog devient bilingue

Grâce au plug-in Gengo mon blog devient bilingue.

Évidement rien n’est jamais simple, Gengo n’est pas encore prêt pour wordpress 2.7 … donc j’ai dû installer la version de développement, reste à voir si ça marche bien !

Ce billet va me permettre de tester 😉

  • Premier problème, les accents… allez je passe tout en UTF-8, ça marche
  • Bon la date, les catégories et tags ne sont pas traduit dans le post, mais ils le sont en marge… étrange, ça reste une affaire à suivre…
  • Toutes les catégories et les tags doivent être traduits, sinon certains endroits ne sont pas remplis 🙁