Meilleurs scripts
This commit is contained in:
+25
-22
@@ -168,7 +168,7 @@ La forme abrégée, relative à `src/content/`, est également acceptée :
|
||||
./scripts/update-content.py vocabulaire/bītum.md
|
||||
```
|
||||
|
||||
Le chemin complet peut être saisi rapidement avec l’autocomplétion du shell. Le script refuse les index et les fichiers extérieurs à `src/content/`, puis remplace l’unique ligne `updated` par l’heure courante de `Europe/Paris` :
|
||||
Le chemin complet peut être saisi rapidement avec l’autocomplétion du shell. Le script accepte uniquement les fiches Markdown placées dans une section connue ; il refuse donc les index, les pages situées directement dans `src/content/` et les fichiers extérieurs à ce répertoire. Il remplace ensuite l’unique ligne `updated` par l’heure courante de `Europe/Paris` :
|
||||
|
||||
```toml
|
||||
updated = 2026-08-05T16:47:00+02:00
|
||||
@@ -186,7 +186,7 @@ La métadescription HTML utilise alors, en dernier recours, la description gén
|
||||
|
||||
## Brouillons et publication
|
||||
|
||||
Un brouillon peut rester incomplet. Pour publier une fiche :
|
||||
Un brouillon peut conserver des valeurs vides, mais tous les champs de son modèle restent présents afin que sa structure puisse être vérifiée dès sa création. Pour publier une fiche :
|
||||
|
||||
1. compléter les données disponibles sans supprimer les champs de son modèle ;
|
||||
2. rédiger le corps Markdown ;
|
||||
@@ -237,7 +237,7 @@ natures = ["nature"]
|
||||
+++
|
||||
```
|
||||
|
||||
`meaning` contient le sens principal ou une courte série de sens. Il doit être renseigné avant publication.
|
||||
`meaning` contient le sens principal ou une courte série de sens. Il est normalement renseigné avant publication, mais peut rester vide pendant la rédaction.
|
||||
|
||||
`logograms` reste toujours un tableau de chaînes :
|
||||
|
||||
@@ -259,7 +259,7 @@ Chaque nature ajoute les champs suivants, dans l’ordre produit par le généra
|
||||
| Particule | `function` |
|
||||
| Numéral | `numeral_type`, `value`, `gender`, `feminine` |
|
||||
|
||||
Tous les champs simples restent des chaînes, même lorsqu’ils sont vides. Une fiche publiée doit contenir exactement les champs de sa nature. Pour un verbe, `stem` doit être renseigné avant publication. Le titre fournit déjà l’infinitif et ne le répète donc pas dans `[extra]`.
|
||||
Tous les champs simples restent des chaînes, même lorsqu’ils sont vides. Chaque fiche, brouillon compris, doit conserver tous les champs prévus pour sa nature. Le validateur contrôle leur présence et leur type, sans imposer de valeur non vide ni refuser d’éventuels champs supplémentaires. Le titre fournit déjà l’infinitif et ne le répète donc pas dans `[extra]`.
|
||||
|
||||
### Sens des principaux champs
|
||||
|
||||
@@ -324,7 +324,7 @@ lectures = []
|
||||
- `mzl` reprend exactement les trois chiffres du nom de fichier ;
|
||||
- `lectures` contient les lectures translittérées.
|
||||
|
||||
Le nom `mzl-XXX.md` est contrôlé même lorsque la fiche est en brouillon. Avant publication, le titre, le glyphe et le numéro MZL doivent être renseignés, et le numéro doit correspondre au nom du fichier.
|
||||
Le générateur forme automatiquement le nom `mzl-XXX.md` et renseigne le numéro MZL correspondant. Le validateur vérifie ensuite que `sign`, `mzl` et `lectures` restent présents avec le type attendu, même lorsque la fiche est en brouillon. Il n’impose pas de valeur non vide et ne compare pas le numéro au nom du fichier.
|
||||
|
||||
Le corps peut accueillir, selon le besoin :
|
||||
|
||||
@@ -422,31 +422,34 @@ Ils sont ajoutés lorsqu’ils apportent un contexte réel : occurrence dans un
|
||||
|
||||
## Ce que contrôle le validateur
|
||||
|
||||
Pour tous les fichiers Markdown, le validateur vérifie :
|
||||
Le validateur est volontairement limité à la structure des fiches placées dans `articles/`, `grammaire/`, `signes/`, `textes/` et `vocabulaire/`. Les pages situées directement dans `src/content/`, comme la bibliographie et les mentions légales, ainsi que les fichiers `_index.md`, sont entièrement ignorés.
|
||||
|
||||
- l’encodage UTF-8 ;
|
||||
- la normalisation Unicode NFC du contenu et du chemin ;
|
||||
- la présence et la validité du front matter TOML ;
|
||||
- l’appartenance à une section connue lorsque le fichier est placé dans un sous-répertoire de `src/content/`.
|
||||
Pour chaque fiche, il vérifie que le fichier peut être lu en UTF-8, que son front matter TOML est valide et qu’il contient exactement une ligne `updated`, commentée ou active. Il contrôle ensuite la présence et le type des champs communs :
|
||||
|
||||
Pour les fichiers `_index.md`, il exige un titre non vide.
|
||||
- `title` et `description` doivent être des chaînes, éventuellement vides ;
|
||||
- `date` doit être un horodatage TOML ;
|
||||
- `draft` doit être un booléen ;
|
||||
- `updated`, lorsqu’il est actif, doit également être un horodatage TOML.
|
||||
|
||||
Pour les autres pages, `draft` doit être un booléen. Les brouillons ne sont pas soumis aux contrôles de complétude, à l’exception du nom des fiches de signes.
|
||||
Les brouillons et les fiches publiées sont contrôlés de la même façon. Le validateur n’évalue pas la qualité éditoriale des valeurs et n’exige donc ni titre, ni sens, ni thème verbal non vide.
|
||||
|
||||
Pour toute page publiée, il exige un titre non vide. Lorsque la page appartient à une section, `date` doit être un horodatage TOML avec fuseau horaire. Si `updated` est actif, il doit respecter le même format. Les pages permanentes placées directement dans `src/content/`, comme la bibliographie et les mentions légales, n’ont pas besoin de date.
|
||||
Pour le vocabulaire, il vérifie en plus :
|
||||
|
||||
Pour une fiche de vocabulaire publiée, il contrôle en plus :
|
||||
|
||||
- une seule nature grammaticale connue ;
|
||||
- la présence exacte des champs prévus pour cette nature ;
|
||||
- la présence d’une seule nature grammaticale connue dans `taxonomies.natures` ;
|
||||
- la présence de tous les champs `[extra]` prévus pour cette nature ;
|
||||
- des chaînes pour les champs simples ;
|
||||
- un tableau de chaînes non vides pour `logograms` ;
|
||||
- un `meaning` non vide ;
|
||||
- un `stem` non vide pour les verbes.
|
||||
- un tableau de chaînes pour `logograms`, qui peut être vide.
|
||||
|
||||
Pour une fiche de signe publiée, il contrôle le glyphe, le numéro MZL sur trois chiffres et sa correspondance avec le nom du fichier.
|
||||
Pour les autres sections, il vérifie les modèles centralisés dans `_schema.py` :
|
||||
|
||||
Zola reste responsable de la construction, des liens internes, des taxonomies et du rendu des templates.
|
||||
- `banner`, `banner_alt` et `banner_credit` pour les articles ;
|
||||
- `themes` pour la grammaire ;
|
||||
- `sign`, `mzl` et `lectures` pour les signes ;
|
||||
- `genres` pour les textes.
|
||||
|
||||
Les tableaux peuvent être vides et les chaînes peuvent être vides. Les champs supplémentaires ne sont pas rejetés. Le validateur ne contrôle ni la forme des noms de fichiers, ni la correspondance du numéro MZL avec le fichier, ni la normalisation Unicode du chemin ou du contenu.
|
||||
|
||||
Zola reste responsable de la construction, des liens internes, des taxonomies et du rendu des templates. Le générateur reste responsable de produire les noms de fichiers attendus et des squelettes complets.
|
||||
|
||||
## Principes de cohérence
|
||||
|
||||
|
||||
Reference in New Issue
Block a user