Hello Hugo
Table of Contents

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 !
â This blog is powered by a coffee-lover
If you enjoyed this post, or any other of this blog content, you can send your feedback by contacting me or also contributing with a virtual coffee.
Thank you ! đ