8 mai 2024

Fall in love with Hugo

codeGoHtml/Csssite statique

J’ai découvert Hugo lors de l’une de mes missions chez Tadaa pour qui le partage des connaissances est essentiel. Avec Hugo, il est plus aisé de se placer dans une démarche d’éco-conception du fait de son fonctionnement intrasèque.

Hugo est un framework générateur de site statique en langage Go. Le propre de Hugo est de fonctionner sans base de données et les pages sont générées lors de la création / modification de contenu via un système de répertoire pour les contenus (content) et modèles (layouts). Sa prise en main est rapide et simple tout comme son fonctionnement qui ne requiert aucune dépendance. Il faut juste l’installer sur sa machine.

N’étant pas développeur de métier, j’ai tout de suite adoré le coté intuitif et logique de Hugo. On construit ses modèles, on créé son contenu et Hugo se charge de compiler tout ça et de générer des pages HTML. Par exemple pour la partie Journal de ce site :

Partie Contenu
content
   journal
      hugo.md (ficher markdown, contenu de la page présente)
      …

Partie Modèle
layouts
   journal
      journal.html (modèle pour afficher tous les articles)
      single.html (modèle pour l’article, utilisé pour la page présente)

Voilà pourquoi je suis tombé amoureux de Hugo. Je peux facilement me concentrer sur le design et je peux m’inscire plus facilement dans une démarche d’éco-conception.
J’utilisais jusque là WordPress pour mes portfolios ou projets d’entreprise – en tant que développeur de thème – du fait aussi de sa simplicité en terme de développement (mais aussi pour les utilisateurs finaux qui relèvent, d’après les retours obtenus, une bonne expérience d’utilisation) mais il est plus difficle d’éco-concevoir avec ce dernier qui génère beaucoup de requêtes, des temps de chargement long en fonction des plugins ou du thème installé.

En définitive, il faut bien réfléchir en amont quant au contexte, futurs usages, personnes impliquées dans le projet pour décider de travailler avec un CMS ou site statique. Pour mes besoins, mon choix se porte évidemment vers le dernier.