Les Carnets d’Akkadien
Les Carnets d’Akkadien est un site personnel consacré à l’apprentissage de l’akkadien et de l’écriture cunéiforme. Il rassemble des fiches de vocabulaire et de signes, des notes de grammaire, des textes étudiés et des articles de parcours.
Site public : https://lescarnetsdakkadien.netig.net
Le site est généré avec Zola 0.23.1 et Tera 2 à partir de fichiers Markdown. Il est entièrement statique : aucune base de données, aucune interface d’administration et aucune exécution côté serveur ne sont nécessaires.
Contenu
- Signes : signes cunéiformes classés par numéro MZL et par lecture ;
- Vocabulaire : fiches adaptées à la nature grammaticale des mots ;
- Grammaire : notes regroupées par thème ;
- Textes : translittérations, traductions et commentaires classés par genre ;
- Articles : billets consacrés à l’apprentissage et au projet.
La page d’accueil présente le dernier article et les trois fiches les plus récemment publiées ou mises à jour. Un flux Atom est disponible à l’adresse /atom.xml.
Prérequis
Pour le développement local :
- Python 3.11 ou ultérieur ;
- Zola 0.23.1 ;
- Git, si le dépôt est versionné avec Git.
Pour le déploiement décrit ici :
- Docker Engine et Docker Compose ;
- Caddy 2 sur l’hôte public.
Toutes les commandes suivantes sont exécutées depuis la racine du dépôt.
Développement local
Valider la structure des fiches :
./scripts/check-content.py
Vérifier le chargement du site et ses liens, brouillons compris :
zola --root src check --drafts
Sans accès réseau, les liens externes peuvent être ignorés :
zola --root src check --drafts --skip-external-links
Rendre le site avec les brouillons afin de tester tous les templates :
zola --root src build --drafts
Construire ensuite la version publique, sans les brouillons :
zola --root src build
Les fichiers générés sont écrits dans src/public/, répertoire ignoré par Git.
Lancer le serveur de développement :
zola --root src serve
Afficher également les brouillons :
zola --root src serve --drafts
Rédaction
Les contenus sont stockés dans src/content/. Trois commandes accompagnent leur rédaction :
new-content.pycrée un brouillon complet pour une section donnée ;update-content.pyactualise son horodatageupdated;check-content.pyvérifie la présence et le type des champs prévus.
Le module _schema.py centralise les modèles utilisés par le générateur et le validateur ; il n’est pas exécuté directement.
Les commandes, conventions et modèles de front matter sont détaillés dans le guide de rédaction.
Architecture
.
├── Caddyfile.example
├── Dockerfile
├── compose.yml
├── README.md
├── GUIDE_REDACTION.md
├── LICENSE-CODE
├── LICENSE-CONTENT
├── scripts/
└── src/
├── content/
├── sass/main.scss
├── static/
├── templates/
│ ├── components.html
│ ├── partials/
│ └── *.html
└── zola.toml
src/content/contient les sources Markdown ;src/templates/components.htmlcontient les composants Tera 2 paramétrés ;src/templates/partials/contient les fragments utilisant le contexte courant ;src/templates/sitemap.xmlretire du sitemap les taxonomies sans contenu publié ;src/sass/main.scssdéfinit l’apparence, le responsive et l’impression ;- Zola génère
giallo.cssà partir du thèmegithub-lightpour la coloration syntaxique par classes ; src/static/contient les images, la police et le favicon servis tels quels ;src/zola.tomlcontient la configuration générale, les taxonomies et le flux Atom.
giallo.css et main.css sont des fichiers générés dans src/public/ : ils ne doivent pas être ajoutés manuellement à src/static/.
Déploiement avec Docker Compose
L’image est construite en trois étapes :
- validation des fiches avec Python ;
- génération du site avec Zola 0.23.1 ;
- copie des seuls fichiers publics dans un serveur HTTP statique.
Vérifier puis démarrer le service :
docker compose config
docker compose up -d --build
Le conteneur est exposé uniquement sur l’interface locale de l’hôte :
http://127.0.0.1:8002
Pour mettre à jour le déploiement :
git pull --ff-only
docker compose up -d --build
Pour l’arrêter :
docker compose down
Proxy inverse Caddy
Caddy prend en charge le domaine public, HTTPS, les en-têtes de sécurité et la politique de cache. Le serveur HTTP interne désactive ses propres en-têtes de cache et de sécurité afin d’éviter deux configurations concurrentes.
Caddyfile.example fournit le bloc correspondant au port publié par compose.yml. Il applique :
Cache-Control: no-cacheaux documents ;- un cache navigateur d’une journée aux feuilles de style, images et polices ;
- une CSP compatible avec les ressources locales du site ;
- HSTS,
Referrer-Policy,X-Content-Type-OptionsetX-Frame-Options.
Le fichier peut être importé au niveau principal du Caddyfile de l’hôte ou servir de modèle pour un bloc existant. Sa syntaxe peut être contrôlée avec :
caddy validate --config Caddyfile.example --adapter caddyfile
Flux Atom
Le flux est activé dans src/zola.toml :
generate_feeds = true
feed_filenames = ["atom.xml"]
Le template de base affiche automatiquement la balise de découverte et le lien du pied de page lorsque cette configuration est active.
Licences
Le code propre au projet est distribué sous licence MIT ; voir LICENSE-CODE.
Sauf mention contraire, les contenus originaux de src/content/ sont publiés sous licence CC BY-SA 4.0 ; voir LICENSE-CONTENT.
Les polices, photographies et autres ressources tierces restent soumises à leurs propres droits et licences.