Garbage Collector


The little space of a writer, tinkerer, and a coffee addict

Hello Hugo

Hello Hugo

Hello Hugo

Après plus d’un an avec l’outil de blogging Plume, j’ai voulu changer de logiciel et aller vers quelque chose de plus adapté à mes attentes.

Le logo Hugo est sous licence Apache 2.0

Qu’est-ce qui n’allait pas avec Plume ? Bien qu’encore en développement et expérimental, il s’avère stable et plutôt bien foutu dans l’ensemble avec une interface simple sans pour autant être trop minimaliste qui me plaisait. Il s’agissait de l’un de mes premiers pas dans le monde du Fediverse et j’ai pu constater avec Mastodon comment cela s’interfaçait via le protocole ActivityPub. C’est un outil prometteur mais qui a encore un peu de chemin à faire. Mais ce n’est pas ce point qui m’a donné envie de changer.

D’abord, je n’aimais pas son interface en français. Celle-ci utilise l’écriture inclusive avec le point médian et c’est une graphie qui m’insupporte, je la trouve illisible. Egalement, ça me donnait l’impression de devoir subir un choix politique, et si je peux me passer de ce genre de décision ça m’arrange. C’est d’ailleurs à cause de cette pratique qui se répand en français que j’ai fini par basculer mon environnement de travail en anglais par défaut.

Cependant, je ne reprocherai pas aux développeurs de l’application ce choix qui est le leur et que je respecte. Je n’y adhère pas pour des raisons strictement personnelles, rien de plus.

Autre point qui m’a récemment gêné, la dernière mise à jour semble avoir réduit la largeur d’affichage du texte. Je ne sais pas si c’est une régression, mais c’est clairement très gênant sur un affichage desktop car j’ai eu l’impression d’avoir un affichage pour smartphone…

Bref, ces quelques désagréments m’ont motivé à essayer d’autres méthodes auxquelles je réfléchissais depuis quelques temps.

Hugo qui ?

Hugo est un générateur de sites statiques. Un parmi d’autres tels que Jekyll que j’ai aussi essayé rapidement, ou encore Sphinx-Doc. C’est un logiciel qui permet de transformer des fichiers textes plats (ici, formatés en Markdown mais d’autres sont aussi supportés) en sites web adaptés aux différents paradigmes de navigation. Leur intérêt principal est bien évidemment de pouvoir générer du contenu Web sans avoir besoin de savoir écrire du code associé. Les vieux de la vieille feront le rapprochement avec les outils de développement Web tels que Dreamviewer ou feu Microsoft FrontPage qui répondaient au même besoin. (mais qui dont la qualité du code générée était parfois glaçante)

Dans un premier temps, j’avais aussi envisagé de construire ma propre solution en me basant sur le framework Django développé en Python car j’ai une légère expérience avec celui-ci. Mais grâce aux conseils de la communauté de Fosstodon, j’ai préféré tester les outils proposés.

Je connaissais Sphinx depuis quelques temps car je l’ai utilisé à mon travail pour lui faire générer automatiquement la documentation de nos diverses projets. Les docs sont maintenues dans des fichiers Markdown sur les repositories Git, et à chaque modif il régénère le site web. Je l’ai écarté de mes tests car Sphinx est vraiment conçu pour faire de la documentation. Pour un usage Blog, c’est pas le top.

J’ai d’abord testé Jekyll qui est le moteur qui propulse le service GitHub Pages du célèbre hébergeur, développé justement par le co-fondateur de l’entreprise. Mais la sauce n’a pas pris, je ne saurais dire ce qui m’a réellement bloqué mais j’ai trouvé l’outil assez difficile à appréhender et exploiter. Probablement parce que je ne suis pas familier des concepts de Ruby, le langage dans lequel il est développé.

J’ai donc continué en testant ensuite Hugo. Celui-ci propose une approche très simpliste où le logiciel est fourni sous forme d’un unique binaire à installer. il est écrit en Go, d’où son nom, et il est proposé en licence Apache 2.0. Son fonctionnement m’a rappelé celui de Sphinx que j’ai cité plus haut car il permet de générer le contenu statique pour l’exposer sur un serveur web banal. Etant alors dans un schéma familier avec Sphinx, j’ai donc opté pour mettre en place un peu d’automatisation. Hugo se vante d’être le “générateur de sites le plus rapide au monde”. Selon plusieurs tests, il arrive effectivement a produire le contenu à raison de moins d’une milliseconde par page. Cette rapidité serait due à la fois par le fait que Go est un langage puissant et rapide, mais aussi que les développeurs gardent cet objectif de rapidité en tête.

Pour rédiger mes articles, je me sers de Zettrl. Il s’agit d’un éditeur de Markdown libre qui fait aussi office de logiciel de prise de notes (je m’en sers ainsi au taff). Avant, je copiais/collais le contenu dans l’éditeur de texte de Plume pour l’enregistrer.

J’ai donc automatisé toute cette petite chaîne pour me contenter ainsi d’écrire les fichiers, git push sur mon repository, puis automatiquement mon instance Jenkins déclenche la génération du site web et publie le contenu sur le serveur. Je ferai un billet plus détaillé sur le fonctionnement.

Me voilà donc avec un nouvel outil qui est plus proche de mon besoin. Par contre, je perds l’aspect fédéré et l’interconnexion avec Mastodon. Peut être qu’il existe un moyen d’utiliser ActivityPub avec cet outil, à creuser !


📑 Table of Contents

📚 Read my latest book

Follow me on Mastodon

🏷️ All Tags 📄 All Posts 🗺 Sitemap RSS Feed