Marcello Vitali-Rosati est professeur au département des littératures de langue française de l'Université de Montréal.

Si l'on se préoccupait de l'achèvement des choses, on n'entreprendrait jamais rien

Culture numérique (Lyon)

ISSN 2269-577X

WTFPL

Tous les billets --- Scholia -- Ce qui pourrait...

Un nouveau blog

2025-10-21 09:38:05.689977-04:00

générateur de sites statiques David Larlet écriture Antoine Fauchié Louis-Olivier Brassard Margot Mellet Arthur Perret

En 2021, j'avais refait mon site en passant de Wordpress à Jekyll -- aussi grâce aux conseils d'Antoine Fauchié.

Après quatre ans, cet environnement d'écriture ne me convient plus. Jekyll est très lourd et, comme d'habitude, quand on veut faire un outil qui fonctionne pour tous les besoins, on finit par avoir une usine à gaz qui ne correspond à aucun besoin précis.

Je me suis donc mis à coder un petit générateur de site statique, fait sur mesure pour mon blog. Le code est là.

Il est en Flask et utilise la librairie frozen-flask pour générer les pages statiques. C'est le même principe que j'ai adopté, il y a quelques années, pour mon site personnel vitalirosati.com qui produit une seule page html avec toutes les informations sur moi récupérées de différentes api ou repos git (le repos avec mes diapositives, mon zotero pour les publications, orcid pour ma bio etc.).

Le blog fonctionne toujours avec des fichiers en md et yaml et il produit les html en gardant les anciennes URL pour une question de pérennité.

Les avantages par rapport au Jekyll:

  1. Je sais exactement ce que fait le générateur et je peux donc l'adapter très facilement à mes besoins... Par exemple: l'arborescence et le nom des fichiers (contraint en Jekyll), le nombre de clés yaml nécessaires (beaucoup trop en Jekyll), l'ajout de catégories ou d'exceptions, ou encore l'usage de Mthml pour les formules mathématiques -- à la place de mathjs...
  2. La rapidité de génération. Je ne sais pas pourquoi, mais, avec environ 700 billets, Jekyll prenait plusieurs minutes pour générer les html, alors que mon système prend juste quelques secondes. Je peux par ailleurs définir des comportements pour régénérer seulement les pages qui changent -- j'avoue que je suis moins motivé de le faire maintenant, car le temps à gagner est minuscule.
  3. L'ajout de quelques fonctionnalités et surtout la recherche. Pour ce faire, j'ai copié le travail que David Larlet a fait pour Le pressoir. Il s'agit tout simplement d'un script en javascript qui parse un gros json, embarqué dans la page de recherche, contenant la totalité du site. Merci à David de m'avoir aidé à débugguer. Le problème que j'avais eu est juste que le contenus des billets contenait du html et cela créait des bugs.

Quelques considérations sur le processus... Construire un petit outil de ce type demande un peu de temps et certes quelques petites compétences techniques. Il faut surtout trouver le bon équilibre entre ce qui nous intéresse de comprendre et ce qui nous intéresse moins -- par exemple: malgré l'aide de David je n'arrive pas à comprendre async await en javascript et... j'embarque un json de 2Mb dans un fichier html pour ne pas devoir me poser la question.

Il y a des systèmes encore plus simples et très élégants pour créer un site. Par exemple, j'aime beaucoup l'approche d'Arthur Perret qui fait son site avec pandoc et Make.

Il y en a de plus complexes -- les nombreux environnements d'écriture de Margot Mellet, de Louis-Olivier Brassard...

De mon côté, initialement, j'aurais voulu faire mon blog en haskell en utilisant directement l'api pandoc, mais mon peu de maîtrise d'haskell m'a finalement découragé.

Reste que le processus de conception de son outil -- que cela soit la configuration d'un Wordpress, d'un Jekyll, d'un workflow de single-source publishing ou d'un générateur de sites statiques en python... ce processus est fondamental pour la pensée. On ne pense pas indépendamment de son environnement d'écriture. C'est au contraire probablement l'environnement d'écriture qui pense.

Et là un petit clin d'oeil à deux très belles thèses sur le sujet: celle d'Antoine Fauchié (Fabriquer des éditions Éditer des fabriques. Reconfiguration des processus techniques éditoriaux et nouveaux modèles épistémologiques) soutenue en janvier 2024 et celle de Roch Delannay (Environnements d’écriture numérique et production du sens) -- pas encore disponible, car elle sera soutenue le 5 novembre!