Python to Ruby
This commit is contained in:
1 parent
cf82698bef
commit
4c9e1f5f66
13 files changed
+360
-711
No files matched your search
+29
-50
@@ -27,15 +27,15 @@ Les fichiers `_index.md` définissent les sections et restent maintenus manuelle
|
||||
|
||||
Les commandes publiques sont :
|
||||
|
||||
- `new-content.py` : création d’un brouillon ;
|
||||
- `update-content.py` : mise à jour de l’horodatage `updated` ;
|
||||
- `check-content.py` : validation des noms et de la structure des fiches.
|
||||
- `new-content.rb` : création d’un brouillon ;
|
||||
- `update-content.rb` : mise à jour de l’horodatage `updated` ;
|
||||
- `check-content.rb` : validation des noms et de la structure des fiches.
|
||||
|
||||
`_schema.py` est leur module commun et ne se lance pas directement.
|
||||
`schema.rb` est leur module commun et ne se lance pas directement.
|
||||
|
||||
## Cycle de rédaction
|
||||
|
||||
1. créer un brouillon avec `new-content.py` ;
|
||||
1. créer un brouillon avec `new-content.rb` ;
|
||||
2. compléter les données et le corps Markdown ;
|
||||
3. contrôler son rendu avec les brouillons ;
|
||||
4. passer `draft` à `false` lorsqu’il est prêt ;
|
||||
@@ -51,7 +51,7 @@ zola --root src serve --drafts
|
||||
Avant publication :
|
||||
|
||||
```sh
|
||||
./scripts/check-content.py
|
||||
./scripts/check-content.rb
|
||||
zola --root src check --drafts
|
||||
zola --root src build --drafts
|
||||
zola --root src build
|
||||
@@ -64,19 +64,19 @@ zola --root src build
|
||||
Syntaxe générale :
|
||||
|
||||
```sh
|
||||
./scripts/new-content.py SECTION IDENTIFIANT [--nature NATURE] [--title TITRE]
|
||||
./scripts/new-content.rb SECTION IDENTIFIANT [--nature NATURE] [--title TITRE]
|
||||
```
|
||||
|
||||
Exemples :
|
||||
|
||||
```sh
|
||||
./scripts/new-content.py vocabulaire šarrum --nature nom
|
||||
./scripts/new-content.py vocabulaire epēšum --nature verbe
|
||||
./scripts/new-content.py vocabulaire --nature particule -- -ma
|
||||
./scripts/new-content.py signes 113 --title BE
|
||||
./scripts/new-content.py grammaire suffixes-pronominaux
|
||||
./scripts/new-content.py textes lettre-au-marchand
|
||||
./scripts/new-content.py articles nouvel-article
|
||||
./scripts/new-content.rb vocabulaire šarrum --nature nom
|
||||
./scripts/new-content.rb vocabulaire epēšum --nature verbe
|
||||
./scripts/new-content.rb vocabulaire --nature particule -- -ma
|
||||
./scripts/new-content.rb signes 113 --title BE
|
||||
./scripts/new-content.rb grammaire suffixes-pronominaux
|
||||
./scripts/new-content.rb textes lettre-au-marchand
|
||||
./scripts/new-content.rb articles nouvel-article
|
||||
```
|
||||
|
||||
Pour le vocabulaire, les natures reconnues sont :
|
||||
@@ -86,7 +86,7 @@ nom, adjectif, verbe, pronom, préposition,
|
||||
adverbe, conjonction, particule, numéral
|
||||
```
|
||||
|
||||
Dans un terminal interactif, l’omission de `--nature` ouvre un menu. Dans un contexte non interactif, l’option est obligatoire.
|
||||
Pour une fiche de vocabulaire, `--nature` est obligatoire. Ce choix explicite garde le générateur simple et prévisible.
|
||||
|
||||
Le générateur :
|
||||
|
||||
@@ -169,6 +169,8 @@ themes = ["morphologie-nominale"]
|
||||
genres = ["inscription-commémorative"]
|
||||
```
|
||||
|
||||
Conserver la syntaxe simple générée pour les tableaux de taxonomie : une seule ligne, avec les chaînes entre guillemets doubles. Le validateur minimal lit notamment `natures` sous cette forme (`natures = ["nom"]`).
|
||||
|
||||
Les templates rétablissent les espaces à l’affichage, tandis que les URL restent sans espace :
|
||||
|
||||
```text
|
||||
@@ -201,13 +203,13 @@ draft = true
|
||||
Pour actualiser une fiche :
|
||||
|
||||
```sh
|
||||
./scripts/update-content.py src/content/vocabulaire/bītum.md
|
||||
./scripts/update-content.rb src/content/vocabulaire/bītum.md
|
||||
```
|
||||
|
||||
La forme relative à `src/content/` est également acceptée :
|
||||
|
||||
```sh
|
||||
./scripts/update-content.py vocabulaire/bītum.md
|
||||
./scripts/update-content.rb vocabulaire/bītum.md
|
||||
```
|
||||
|
||||
Le script refuse les index, les pages autonomes et les chemins extérieurs aux cinq sections. Il remplace l’unique ligne `updated` par l’heure courante :
|
||||
@@ -314,7 +316,7 @@ Le corps Markdown reste libre. Rubriques possibles :
|
||||
Commande :
|
||||
|
||||
```sh
|
||||
./scripts/new-content.py signes 113 --title BE
|
||||
./scripts/new-content.rb signes 113 --title BE
|
||||
```
|
||||
|
||||
Champs propres :
|
||||
@@ -411,8 +413,8 @@ Ils sont ajoutés lorsqu’ils apportent un contexte réel : occurrence dans un
|
||||
Un bloc délimité par trois accents graves et associé à une langue reçoit automatiquement la coloration syntaxique :
|
||||
|
||||
````markdown
|
||||
```python
|
||||
print("šulmu")
|
||||
```ruby
|
||||
puts "šulmu"
|
||||
```
|
||||
````
|
||||
|
||||
@@ -420,45 +422,22 @@ Zola génère `giallo.css`, tandis que le HTML rendu utilise les classes corresp
|
||||
|
||||
## Ce que contrôle le validateur
|
||||
|
||||
`check-content.py` contrôle uniquement les fiches des cinq sections. Il ignore les fichiers `_index.md` et les pages placées directement dans `src/content/`.
|
||||
`check-content.rb` contrôle uniquement les fiches des cinq sections. Il ignore les fichiers `_index.md` et les pages placées directement dans `src/content/`.
|
||||
|
||||
Pour chaque fiche, il vérifie :
|
||||
|
||||
- le nom de fichier en Unicode NFC ;
|
||||
- les identifiants en minuscules avec lettres Unicode, chiffres et tirets ;
|
||||
- la forme `mzl-NNN.md` pour les signes ;
|
||||
- la lecture en UTF-8 ;
|
||||
- la présence d’un front matter délimité par `+++` ;
|
||||
- la validité du TOML ;
|
||||
- la présence des champs communs `title`, `date`, `description` et `draft` ;
|
||||
- exactement une ligne `updated`, commentée ou active ;
|
||||
- `title` et `description` de type chaîne ;
|
||||
- `date` de type horodatage TOML ;
|
||||
- `draft` de type booléen ;
|
||||
- `updated`, lorsqu’il est actif, de type horodatage TOML.
|
||||
- pour le vocabulaire, une nature grammaticale reconnue et les champs `[extra]` attendus ;
|
||||
- pour les autres sections, les champs propres à leur modèle.
|
||||
|
||||
Pour le vocabulaire, il vérifie également :
|
||||
Le validateur Ruby reste volontairement simple : il ne réimplémente pas un parseur TOML et ne contrôle pas les types de toutes les valeurs. **Zola reste responsable de la syntaxe TOML, des liens, des taxonomies et des templates.** Cette séparation évite toute dépendance Ruby supplémentaire.
|
||||
|
||||
- exactement une nature grammaticale reconnue ;
|
||||
- tous les champs `[extra]` prévus pour cette nature ;
|
||||
- des chaînes pour les champs simples ;
|
||||
- un tableau de chaînes pour `logograms`.
|
||||
|
||||
Pour les autres sections, il vérifie :
|
||||
|
||||
- `banner`, `banner_alt` et `banner_credit` pour les articles ;
|
||||
- `themes` pour la grammaire ;
|
||||
- `sign`, `mzl` et `lectures` pour les signes ;
|
||||
- `genres` pour les textes.
|
||||
|
||||
Par convention, les termes composés de `themes` et `genres` utilisent des tirets. Cette convention relève de la rédaction et n’est pas contrôlée par le validateur.
|
||||
|
||||
Le validateur accepte les chaînes et tableaux vides. Il ne contrôle pas :
|
||||
|
||||
- la qualité ou l’exactitude linguistique des valeurs ;
|
||||
- les champs supplémentaires ;
|
||||
- la correspondance entre le numéro MZL du front matter et le nom du fichier.
|
||||
|
||||
Zola reste responsable des liens, taxonomies et templates. Le générateur et le validateur appliquent les mêmes conventions de nommage ; le générateur reste responsable de produire des squelettes complets.
|
||||
Le générateur et le validateur appliquent les mêmes conventions de nommage. Le générateur produit des squelettes complets ; le validateur vérifie surtout qu’aucun champ structurel n’a disparu.
|
||||
|
||||
## Vérification avant publication
|
||||
|
||||
@@ -469,5 +448,5 @@ Avant de publier ou déployer :
|
||||
- utiliser `draft = false` uniquement pour un contenu prêt ;
|
||||
- utiliser des tirets dans les thèmes et genres composés ;
|
||||
- éviter les rubriques vides et les textes d’attente ;
|
||||
- lancer `update-content.py` seulement après une modification substantielle ;
|
||||
- lancer `update-content.rb` seulement après une modification substantielle ;
|
||||
- exécuter le validateur, `zola check`, la construction avec brouillons, puis la construction publique.
|
||||
Reference in new issue
Block a user