Créer rapidement un blogue à partir de fichiers Markdown, nous en avons toujours rêvé… et la communauté des développeurs Go l’a fait !

Introduction

Hugo est un logiciel pour générer un site statique à partir d’une arborescence de fichiers Markdown.

Création du site

L’arborescence du site est créée dans le répertoire triaxx.io avec la commande ci-dessous.

$ hugo new site triaxx.io

Cette arborescence contient un ensemble de répertoires et de fichiers.

$ cd triaxx.io
$ find .
.
./archetypes
./archetypes/default.md
./content
./layouts
./static
./i18n
./data
./assets
./themes
./hugo.toml

Création du thème

Hugo a besoin d’un thème pour générer les pages du site. Il est possible d’en créer un vierge avec la commande suivante.

$ hugo new theme triaxx

Un thème consiste également en une arborescence.

$ find themes/triaxx -depth 1
themes/triaxx/archetypes
themes/triaxx/content
themes/triaxx/layouts
themes/triaxx/static
themes/triaxx/i18n
themes/triaxx/data
themes/triaxx/assets
themes/triaxx/hugo.toml

Création de contenu

Créer un billet est aussi simple que de créer un fichier Markdown :

$ hugo new content posts/first-post.md

Le fichier créé contient une en-tête qui sera utilisée lors de la construction du site. Il s’agira alors de rédiger le contenu au format Markdown.

+++
date = '2025-05-05T22:43:11+02:00'
draft = true
title = 'First Post'
+++
# Mon premier billet
Je suis fier d'annoncer que je viens de publier mon premier billet avec Hugo !

Construction et rendu du site

Le site est construit en appelant cette simple commande :

hugo

En plus de cela, il est possible de lancer un serveur - qui construira automatiquement le site - en écoute sur le port (1313 par défaut).

hugo server --buildDrafts --disableFastRender

L’option --buildDrafts permet de construire les brouillons de billet (lorsque la valeur de leur variable draft est à true). L’option --disableFastRender permet de reconstruire le suite lorsque qu’un changement dans son arborescence est détecté. La page est également rechargée automatiquement.

Utilisation d’un thème existant

La communauté propose de nombreux thèmes élégants. Le Guide de démarrage rapide de Hugo propose d’installer un thème avec Git. Nous en installons un en téléchargeant son archive.

curl --location https://github.com/mirus-ua/hugo-theme-re-terminal/archive/refs/tags/v2.4.1.tar.gz --output hugo-theme-re-terminal-2.4.1.tar.gz
tar --extract --gzip --file hugo-theme-re-terminal-2.4.1.tar.gz --cd themes
mv themes/hugo-theme-re-terminal-2.4.1 themes/re-terminal
echo "theme = 're-terminal'" >> hugo.toml
rm -f hugo-theme-re-terminal-2.4.1.tar.gz