Ajout d'un script d'horodatage des fiches, affichage des fiches récement modifiées sur la page d'accueil

This commit is contained in:
julien
2026-08-05 17:46:30 +02:00
parent 2b8c088e57
commit 65642a5983
35 changed files with 279 additions and 60 deletions
+24 -5
View File
@@ -16,7 +16,7 @@ Le site est construit avec [Zola](https://www.getzola.org/) à partir de fichier
| `textes` | translittérations, traductions et commentaires | genres |
| `vocabulaire` | fiches lexicales adaptées à leur nature grammaticale | natures |
La page daccueil présente le dernier article et les trois fiches datées les plus récentes parmi les signes, le vocabulaire, la grammaire et les textes. Des flux Atom et RSS sont également générés.
La page daccueil présente le dernier article et les trois fiches les plus récemment publiées ou mises à jour parmi les signes, le vocabulaire, la grammaire et les textes. Des flux Atom et RSS sont également générés.
Les conventions de rédaction et les champs disponibles sont décrits dans le [guide de rédaction](GUIDE_REDACTION.md).
@@ -92,7 +92,7 @@ Exemples :
Chaque fichier est créé avec :
- une date au format TOML dans le fuseau `Europe/Paris` ;
- un repère commenté `# updated = YYYY-MM-DD` pour les mises à jour substantielles ;
- un repère commenté `# updated = YYYY-MM-DDTHH:MM:SS+HH:MM` pour les mises à jour substantielles ;
- `draft = true` ;
- tous les champs prévus par son modèle ;
- des chaînes vides ou des listes vides pour les données à compléter.
@@ -103,6 +103,22 @@ Le générateur refuse d’écraser un fichier existant. Son aide complète est
./scripts/new-content.py --help
```
## Horodater une mise à jour
Après une modification substantielle, renseigner automatiquement `updated` avec lheure courante de `Europe/Paris` :
```sh
./scripts/update-content.py src/content/vocabulaire/bītum.md
```
Ce chemin se complète directement avec la touche Tab du shell. La forme abrégée, relative à `src/content/`, est également acceptée :
```sh
./scripts/update-content.py vocabulaire/bītum.md
```
Le script active le repère commenté, remplace lhorodatage existant ou insère `updated` après `date` lorsquil est absent.
## Publier un contenu
Le cycle de rédaction recommandé est simple :
@@ -124,7 +140,8 @@ Le validateur contrôle les invariants qui doivent rester vrais indépendamment
- front matter TOML valide ;
- section connue et statut de brouillon valide ;
- titre des index et des pages publiées ;
- date des pages publiées dans une section ;
- horodatage de publication des pages publiées dans une section ;
- horodatage de `updated` lorsquil est renseigné ;
- nom et numéro MZL des fiches de signes ;
- nature, champs et types des fiches de vocabulaire publiées.
@@ -145,7 +162,8 @@ Une erreur renvoie un code de sortie non nul et bloque également la constructio
├── scripts
│ ├── _schema.py
│ ├── check-content.py
── new-content.py
── new-content.py
│ └── update-content.py
└── src
├── content
├── sass
@@ -160,8 +178,9 @@ Une erreur renvoie un code de sortie non nul et bloque également la constructio
- `src/static/` contient les ressources servies telles quelles ;
- `src/zola.toml` contient la configuration de Zola ;
- `scripts/new-content.py` crée les brouillons ;
- `scripts/update-content.py` horodate les modifications substantielles ;
- `scripts/check-content.py` valide les contenus ;
- `scripts/_schema.py` contient les définitions communes aux deux scripts.
- `scripts/_schema.py` contient les définitions communes aux outils de gestion des contenus.
Les chemins et les taxonomies utilisent la stratégie de slugification `safe` de Zola. Les diacritiques sont donc conservés : des lectures comme `tim` et `ṭim` restent distinctes.