Un exécutable Rust qui transforme du Markdown en site statique
Zola est un générateur de sites statiques écrit en Rust et livré en un seul exécutable, avec des binaires précompilés pour macOS, Linux et Windows. zola build passe le contenu Markdown dans des gabarits Tera, un moteur proche de Jinja2 et de Twig, et écrit le site dans public/ ; zola serve le reconstruit et recharge le navigateur à chaque modification. Zola ne présuppose aucune organisation du site : on part de ses propres gabarits ou d'un thème.
Sass compilé en Rust, liens cassés refusés au build
- Sass sans compilateur à part : grass, une implémentation Rust que la documentation dit à peu près équivalente à dart-sass, compile le dossier
sass/dès quecompile_sassest activé. - Coloration par Giallo : ce moteur, maintenu dans l'organisation GitHub du projet, a remplacé syntect en 0.22.
- Images retaillées au build :
resize_images'appelle depuis un gabarit comme depuis le contenu, redimensionne et convertit, AVIF compris. - Liens internes vérifiés : un lien
@/blog/article.mdqui ne mène nulle part fait échouer le build par défaut, etzola checkteste en plus les liens externes du Markdown sans rien écrire sur le disque. - Composants dans le Markdown : depuis la 0.23, un composant Tera s'appelle aussi bien depuis un gabarit que depuis le contenu.
- Fonctions à activer soi-même : seul
base_urlest obligatoire, et presque tout reste désactivé tant que la configuration ne l'active pas.
Shortcodes supprimés en 0.23, recherche livrée sans interface
Passer en 0.23 demande une migration. Publiée le 5 août 2026, cette version passe Tera en v2 et supprime les shortcodes, à réécrire en composants. Le changelog la présente comme probablement la plus cassante que Zola connaîtra, et prévient qu'un thème devra le plus souvent être mis à jour avant de pouvoir monter de version. En janvier 2026, la 0.22.0 avait déjà remplacé syntect par Giallo, avec d'autres thèmes de coloration et des options déplacées dans la configuration.
Zola reste en 0.x. La dernière version, 0.23.6, date du 12 septembre 2026 : c'est le sixième correctif publié depuis la 0.23.0, en moins de six semaines. Le dépôt n'est pas archivé et reçoit encore des commits en octobre 2026.
La recherche s'arrête à l'index. build_search_index produit un index pour elasticlunr ou fuse.js, mais la documentation précise que Zola ne fournit ni le JavaScript ni le CSS qui interrogent cet index et affichent les résultats. L'indexation du chinois et du japonais demande de recompiler Zola avec des options dédiées, qui alourdissent le binaire d'environ 5 et 70 Mo. Pagefind prend l'autre chemin : il indexe le HTML une fois construit et fournit des composants d'interface prêts à l'emploi.
Le README qualifie lui-même le multilingue de basique. Le code de langue se place dans le nom du fichier (article.fr.md), et aucune langue ne se replie sur une autre : chaque _index.md de la langue par défaut demande son équivalent traduit.
Zola est né en réaction à Hugo. Le README raconte que Zola et son moteur Tera viennent d'un rejet du moteur de gabarits de Go, et donc de Hugo, que l'auteur employait pour au moins six sites.
Deux licences cohabitent dans le dépôt. Le code ajouté après la 0.22 est sous EUPL-1.2 ; celui qui existait avant le commit 3c9131d reste sous MIT, y compris dans les versions suivantes.
