thomas.touhey.fr

Bienvenue, thblog !

Après près de cinq ans à vouloir réorganiser mon blog en interne, et quelques rushes au fur et à mesure des années pour y parvenir, j'ai reconstruit tout mon blog en interne, et ai pimpé le design du blog pour que le changement puisse être ressenti par vous (deux fois plutôt qu'une !), chères lectrices et lecteurs.

Un petit historique

Tout commence fin 2016. À l'époque, je faisais déjà des projets web depuis au moins deux ou trois ans, le plus souvent en PHP. Ces sites sont partiellement archivés par la Wayback Machine, de la plus vieille version de touhey.fr, archivée en août 2014 à d'autres sites avec mon pseudo de joueur de l'époque sur le thème de Minecraft et de divers serveurs. Je venais également de me mettre à Linux sur mon PC principal à peine l'année précédente, lors d'un petit détour en BTS avant d'entrer à l'école 42, et je découvrais les sites statiques, me donnant envie de faire le mien.

Je fis alors un générateur que je voulais le plus basique possible, sous la forme d'un script bash avec pandoc, qui listait l'ensemble des posts, réalisait une page par post, ainsi qu'un index simple avec un header me présentant, le tout en HTML4 sans CSS, inspiré que j'étais par motherfuckingwebsite.com. Ainsi, mon blog naquit, avec déjà un premier post : fopencookie - faites vos propres flux !.

Cette période fut courte ; si courte qu'aucune archive du site de l'époque n'a pu être archivée par la Wayback Machine, sur laquelle le site passe du simple index de présentation style assembleur que j'avais à l'époque (mai 2016) à la version d'après, en 2017. Cela s'explique par le fait que je m'étais rapidement senti limité à la fois par bash qui n'était pas spécialement adapté à la tâche, et par le fait de devoir implémenter chaque modification que je souhaitais moi-même dans ce langage.

Après quelques recherches, je décidai donc de passer sur Jekyll, un générateur de site statique comprenant toutes les fonctionnalités attendues d'un tel outil généraliste, dont la gestion d'articles, le theming, les plugins, etc. Je repris alors un thème existant, à savoir Researcher, le modifiai un peu pour correspondre à un peu plus à mon style, rédigeai quelques articles en plus, ajoutai un système très basique de multi-langues puisque je voulais rédiger du contenu en anglais et en français, et hop, je me suis retrouvé avec un nouveau site !

Pendant presque huit ans, j'ai donc utilisé un générateur de sites statiques développé en Ruby avec un système d'extensions dans ce même langage. Durant cette période, j'ai réalisé quelques évolutions :

À noter que le système multi-lingue a évolué entre 2017 / 2018 et 2024. En effet, entretemps, j'ai acquis le domaine de second niveau touhey.uk, et ai donc décidé de passer mon blog anglais sur thomas.touhey.uk, entraînant à l'époque la séparation du projet en deux dossiers distincts où le thème se répétait et les modifications sur celui-ci devaient être répercutés sur les deux.

De plus, bien que j'avais tenté de faire une navigation proposant la traduction de chaque page, le système se comportait bien mal lorsque la traduction n'existait pas.

Au final, je m'étais retrouvé avec un énorme système de bricolages pénible à maintenir et faire évoluer. J'ai choisi de ne pas apprendre le Ruby, puisque je connaissais déjà Python à côté.

À noter cependant que mon blog était le seul de mes sites statiques qui a terminé avec une telle complexité. J'ai fait beaucoup d'autres sites avec Jekyll, dont beaucoup de sites plus simples, par exemple touhey.pro qui est resté assez simple.

Parallèlement, à partir de 2020, j'ai commencé et appris à aimer écrire de la documentation sur certains projets avec Sphinx, en reStructuredText, dont par exemple thcolor, thox ou même, bien plus tard, Cahute. Cette syntaxe, bien qu'elle aie initialement constitué une barrière de par mon habitude au Markdown, m'a par la suite beaucoup séduite. Un article de l'époque avait beaucoup résonné en moi ; celui-ci mettait en valeur le fait que là où les différentes flavours de Markdown étaient incompatibles entre elles, le reStructuredText est clairement défini et designé pour être extensible à l'aide de directives et rôles personnalisés. Cet argument avait d'autant plus résonné en moi que sur mon blog, pour injecter des éléments à peine avancés, ou même du code, je devais ajouter du Liquid ou du HTML directement dans mon fichier Markdown, et bien que cela marchait, je restais inconfortable avec la méthode.

Aux alentours de 2021, j'ai fini par avoir marre de mon système, et me suis lancé dans différentes expérimentations pour sortir du tas de bidouillages et pouvoir enfin utiliser du reStructuredText sur mon blog. Cette expérience a finalement mené à l'outil que j'utilise aujourd'hui : thblog.

Premières envies et expérimentations

À partir de 2021, constatant ce que j'avais, j'ai progressivement défini la liste suivante de ce que je voulais, qui inclue les éléments suivants :

À l'époque, j'avais commencé à regarder les outils similaires en Python, typiquement Pelican et yozuch, mais ils ne m'avaient pas convaincus. J'avais également exploré le fait d'utiliser Sphinx directement, mais l'outil ne me semblait pas approprié pour l'utiliser avec mon blog. J'ai donc fini par décider de faire mon propre outil en Python, que j'ai appelé thblog.

Pour faire quelques expérimentations, j'ai donc commencé à rédiger mon blog pour mon outil de génération de site statique idéal, en supposant qu'il existait et en imaginant ce qu'il ferait. J'ai donc passé tous mes articles, mes pages, et même mes brouillons en reStructuredText, en organisant ces éléments ainsi que les autres fichiers tels que je voulais les voir organisés ; le résultat m'a plu, et j'ai donc voulu prendre des pas concrets vers un blog publié en reStructuredText.

Le cahier des charges pour l'outil était donc le suivant :

À noter que je ne supporte pas de theming à ce stade ; en effet, puisque je développe un outil spécifique à mes besoins, il n'a qu'un seul thème, celui que je réalise pour mon blog.

De plus, ce cahier des charges n'est que pour la version initiale. Beaucoup d'évolutions sont possibles à partir de celui-ci ; pour n'en citer que quelques-unes que je viserai probablement après :

thblog : l'outil qui rend ces ambitions possibles

La stack technologique que j'ai choisie pour cet outil est la suivante :

Le premier thème sous thblog (dont une trace est toujours trouvable sur la Wayback machine) était une expérimentation faite autour d'avril/mai 2024 ; le courant, réalisé en mars 2025, est inspiré de Lagrange, un navigateur pour Gemini, avec les polices d'écriture Atkinson Hyperlegible Next par le Braille Institute.

De la même façon que mon blog en Jekyll, ni l'outil ni le contenu source ne seront en source ouverte, bien que le contenu présent sur l'export HTML du site soit majoritairement sous CC BY-SA 4.0, bien que je suive le code et le contenu sous git dans un dépôt privé sur Gitlab.com. À ce sujet, je rejoins Josh Comeau sur la plupart des raisons qu'il exprime dans Why My Blog Is Closed-Source (pas sur la sécurité, cela dit.) :

Cela dit, le développement de cet outil et l'évolution de ce blog restent une expérience que je souhaiterais partager, possiblement dans d'autres posts ; en effet, bien que je ne souhaite pas donner le poisson, je trouve utile et satisfaisant de partager un morceau de la canne à pêche qui m'a servi à le pêcher.

Qu'est-ce que tout cela veut dire pour l'avenir du blog ?

Ce blog reste quelque chose que j'alimente sur mon temps libre, sans aucune obligation de production et lorsque j'ai envie de développer mes talents d'écriture. Cette transition technologique, bien que ne transparaissant pas directement sur le résultat, me permet d'obtenir une plus grande satisfaction dans l'alimentation de ce blog ; je n'exclus pas de sortir plus d'articles que ces sept dernières années.

Cependant, au fil des années, j'ai développé un bon nombre d'idées de sujets que j'aimerais bien traiter dans des billets pour ce blog. Parmi la quinzaine de brouillons que j'ai, l'on trouve parmi les plus aboutis :

Globalement, je fais ma veille assez régulièrement et enquête sur beaucoup de sujets dans le cadre de mes projets personnels et professionnels, de mes cours, de mes discussions loin du clavier et sur différents réseaux. Je vous conseille donc de vous abonner aux flux RSS de ce blog ; il y en a un par langue proposée, et j'essaye de traduire les articles après leur publication dans la langue originelle dans laquelle je les ai écrit.

À toutes dans mes prochains articles !