No description
Find a file
romain.chauveau 45e5b71254
All checks were successful
Build & deploy blog / build (push) Successful in 5m3s
Build & deploy blog / deploy (push) Successful in 2s
fix mistakes
2026-08-26 17:12:48 +02:00
.forgejo/workflows feat/tags-source-nix (#2) 2026-07-15 18:03:01 +00:00
content fix mistakes 2026-08-26 17:12:48 +02:00
static finish scratch on rubber duck method 2026-08-26 14:22:06 +02:00
templates tags cliquables dans articles/notes + commandes grep <tag> et ls tags/ 2026-07-21 16:55:00 +02:00
.dockerignore Blog statique (Zola) — thème terminal + déploiement GitOps 2026-07-06 16:24:39 +02:00
.envrc feat/tags-source-nix (#2) 2026-07-15 18:03:01 +00:00
.gitignore feat/tags-source-nix (#2) 2026-07-15 18:03:01 +00:00
config.toml feat/tags-source-nix (#2) 2026-07-15 18:03:01 +00:00
Dockerfile Blog statique (Zola) — thème terminal + déploiement GitOps 2026-07-06 16:24:39 +02:00
flake.lock feat/tags-source-nix (#2) 2026-07-15 18:03:01 +00:00
flake.nix feat/tags-source-nix (#2) 2026-07-15 18:03:01 +00:00
justfile add scratch & fix just command 2026-07-31 13:17:57 +02:00
nginx.conf Blog statique (Zola) — thème terminal + déploiement GitOps 2026-07-06 16:24:39 +02:00
README.md feat/tags-source-nix (#2) 2026-07-15 18:03:01 +00:00

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).