| .forgejo/workflows | ||
| content | ||
| static | ||
| templates | ||
| .dockerignore | ||
| .envrc | ||
| .gitignore | ||
| config.toml | ||
| Dockerfile | ||
| flake.lock | ||
| flake.nix | ||
| justfile | ||
| nginx.conf | ||
| README.md | ||
blog
Blog perso/tech statique, généré par Zola, servi sur blog.yagni.fr. Thème « terminal » : monospace (JetBrains Mono), sombre par défaut, avec une barre de commande interactive dans l'en-tête.
Écrire un article
Un article = un fichier Markdown dans content/blog/, avec un frontmatter TOML :
+++
title = "Mon titre"
date = 2026-07-06
[taxonomies]
tags = ["web", "outils"]
+++
Le corps de l'article en Markdown…
Le plus simple : le justfile génère le fichier (slug + date du jour
pré-remplis) :
just new "Mon titre" web,outils # → content/blog/mon-titre.md
just scratch "Note rapide" # → content/scratch/… (titre & tags optionnels)
just scratch # scratch sans titre, slug horodaté
- Le temps de lecture est calculé automatiquement au build (pas à saisir).
- Les articles sont triés par date décroissante sur l'accueil.
- La page à-propos est
content/about.md.
Articles bilingues (fr/en)
Le français (fr) est la langue par défaut : un article content/blog/mon-article.md
reste mono-langue tel quel. Pour lui ajouter une version anglaise, créer
content/blog/mon-article.en.md (même nom de fichier, suffixe .en) — Zola relie
les deux automatiquement et affiche un lien de bascule FR/EN dans le header.
Rien à faire pour un article qui reste français (ou anglais) uniquement.
Développer en local
just serve # zola serve — http://127.0.0.1:1111 avec live-reload
just build # zola build — génère ./public
just # liste les commandes disponibles
Sans rien installer : nix develop ouvre un shell avec just + zola (voir
flake.nix), ou automatiquement via direnv (.envrc).
Sinon just (le lanceur de commandes, casey/just)
doit être installé : cargo install just, brew install just ou apt install just.
Barre de commande (en-tête)
JavaScript vanilla (static/js/terminal.js), aucune dépendance. Commandes :
ls / home (accueil), cat about.md / about, open <n|mot> (ouvrir un
article), cd .. (retour), help, clear. Le toggle de thème est persisté dans
localStorage.
Déploiement
Un push sur main déclenche .forgejo/workflows/deploy.yml : le site est bâti en
image nginx (Dockerfile) avec kaniko, poussée sur le registry Forgejo
(forgejo.yagni.fr/yagni/blog:<sha>), puis un déploiement GitOps est déclenché hors
de ce dépôt.
Secrets CI requis : DEPLOY_USER / DEPLOY_TOKEN (voir l'en-tête du workflow).