notes
This commit is contained in:
@@ -0,0 +1,149 @@
|
|||||||
|
# Notes de session - 2026-05-09 - Reprise qualite SVG fractions
|
||||||
|
|
||||||
|
## Bilan de la session
|
||||||
|
|
||||||
|
Session efficace de reprise qualite sur les SVG de lecon du sous-theme `01B_fractions`.
|
||||||
|
|
||||||
|
Objectif principal : fiabiliser les fractions verticales dans les SVG, notamment les barres de fraction, les alignements, les espacements et les chevauchements.
|
||||||
|
|
||||||
|
Les 8 SVG de lecon ont ete repris progressivement a partir des retours image par image.
|
||||||
|
|
||||||
|
## Fichiers concernes
|
||||||
|
|
||||||
|
Dossier :
|
||||||
|
|
||||||
|
`backend/contenus_pedagogiques/cycle_3/mathematiques/cm1/01_nombres_calcul_resolution/01B_fractions/svg/`
|
||||||
|
|
||||||
|
SVG de lecon :
|
||||||
|
|
||||||
|
- `01_lire_ecrire_fraction_simple.svg`
|
||||||
|
- `02_representer_fraction_partage.svg`
|
||||||
|
- `03_fraction_sur_demi_droite_graduee.svg`
|
||||||
|
- `04_fraction_superieure_a_un.svg`
|
||||||
|
- `05_comparer_fractions_simples.svg`
|
||||||
|
- `06_encadrer_fraction_entre_entiers.svg`
|
||||||
|
- `07_additionner_soustraire_fractions_simples.svg`
|
||||||
|
- `08_fraction_d_une_quantite.svg`
|
||||||
|
|
||||||
|
## Probleme initial
|
||||||
|
|
||||||
|
Les SVG etaient visuellement mieux que la premiere generation, mais plusieurs erreurs persistaient :
|
||||||
|
|
||||||
|
- fractions qui chevauchent des textes ou des figures ;
|
||||||
|
- numerateurs trop hauts ou trop proches des traits ;
|
||||||
|
- signes `+`, `-`, `=`, `<` mal centres par rapport aux traits de fraction ;
|
||||||
|
- fractions trop proches ou trop eloignees des signes ;
|
||||||
|
- elements qui sortent d'un panneau ;
|
||||||
|
- textes avec caracteres casses lors de certaines generations ;
|
||||||
|
- corrections ponctuelles non suffisantes pour garantir les futures fiches.
|
||||||
|
|
||||||
|
## Decisions prises
|
||||||
|
|
||||||
|
Le SVG reste le format de sortie, mais il ne doit plus etre traite comme une simple image libre.
|
||||||
|
|
||||||
|
Pour les contenus mathematiques sensibles, il faut raisonner avec des primitives et des boites :
|
||||||
|
|
||||||
|
- une fraction verticale est un composant reserve ;
|
||||||
|
- une expression mathematique est une suite de tokens ;
|
||||||
|
- chaque token expose une boite logique ;
|
||||||
|
- les panneaux imposent une zone utile ;
|
||||||
|
- le validateur doit refuser les collisions, pas seulement les erreurs XML.
|
||||||
|
|
||||||
|
La note generale est dans :
|
||||||
|
|
||||||
|
`SVG_CONTENT_ARCHITECTURE.md`
|
||||||
|
|
||||||
|
## Regles stabilisees pour les fractions
|
||||||
|
|
||||||
|
### Fraction verticale
|
||||||
|
|
||||||
|
- Utiliser `fraction-g` pour toutes les fractions visibles.
|
||||||
|
- Ajouter un `data-box` sur chaque `fraction-g`.
|
||||||
|
- Interdire les fractions obliques de type `3/4` dans les SVG eleves.
|
||||||
|
- Barre horizontale obligatoire, visible et separee des chiffres.
|
||||||
|
- Numerateur et denominateur centres sur la barre.
|
||||||
|
- Equilibrer optiquement la fraction autour du trait, pas seulement avec une symetrie de baseline SVG.
|
||||||
|
|
||||||
|
### Anti-chevauchement
|
||||||
|
|
||||||
|
- Une fraction reserve sa boite complete.
|
||||||
|
- Aucun texte, signe, figure, point, bande, disque ou autre fraction ne doit intersecter cette boite.
|
||||||
|
- Les fractions posees pres d'une figure doivent etre dans une zone mathematique separee.
|
||||||
|
- Quand une nouvelle ligne ou un nouveau token est ajoute, verifier la place disponible avec une marge suffisante par rapport aux formes deja presentes.
|
||||||
|
|
||||||
|
### Operations
|
||||||
|
|
||||||
|
- Chaque signe est un token separe.
|
||||||
|
- Chaque entier isole dans une operation est un token separe.
|
||||||
|
- Ne pas grouper `= 1 +`, `= 2`, `2 <`, `< 3` dans un seul texte lorsque la ligne contient des fractions.
|
||||||
|
- Garder des ecarts visuels constants entre les tokens d'une operation.
|
||||||
|
- Les signes sont centres sur l'axe des traits de fraction.
|
||||||
|
- Les signes de comparaison sont au milieu de l'espace entre les fractions.
|
||||||
|
|
||||||
|
### Panneaux
|
||||||
|
|
||||||
|
- Un element ne doit pas sortir de sa bulle ou de son panneau.
|
||||||
|
- Les textes longs doivent etre raccourcis, passes en `small` ou coupes sur deux lignes.
|
||||||
|
- Il faut conserver une marge perceptible, meme si le SVG est techniquement valide.
|
||||||
|
|
||||||
|
## Validateur ajoute / renforce
|
||||||
|
|
||||||
|
Fichier :
|
||||||
|
|
||||||
|
`backend/tools/validate_svg_quality.py`
|
||||||
|
|
||||||
|
Fonctions principales ajoutees ou renforcees :
|
||||||
|
|
||||||
|
- detection de fractions obliques ;
|
||||||
|
- detection de mojibake ou caracteres de remplacement suspects ;
|
||||||
|
- controle de structure `fraction-g` ;
|
||||||
|
- controle de `data-box` ;
|
||||||
|
- controle de collisions autour des fractions ;
|
||||||
|
- controle de confinement dans les panneaux ;
|
||||||
|
- controle des espacements autour des barres de fraction ;
|
||||||
|
- validation possible avec `--warnings-as-errors`.
|
||||||
|
|
||||||
|
Commande de reference :
|
||||||
|
|
||||||
|
```powershell
|
||||||
|
& C:\Users\baron\AppData\Local\Programs\Python\Python313\python.exe backend\tools\validate_svg_quality.py backend\contenus_pedagogiques\cycle_3\mathematiques\cm1\01_nombres_calcul_resolution\01B_fractions\svg --warnings-as-errors
|
||||||
|
```
|
||||||
|
|
||||||
|
Resultat final de la session :
|
||||||
|
|
||||||
|
```text
|
||||||
|
SVG controles: 8 | erreurs: 0 | warnings: 0
|
||||||
|
```
|
||||||
|
|
||||||
|
Recherche finale des caracteres casses sur les SVG de lecon : aucun resultat.
|
||||||
|
|
||||||
|
## Point important pour la suite
|
||||||
|
|
||||||
|
Les regles sont maintenant documentees et outillees, mais elles ne remplacent pas encore une vraie generation structuree.
|
||||||
|
|
||||||
|
Pour les futures fiches, eviter de produire directement du SVG brut. Idealement, generer :
|
||||||
|
|
||||||
|
1. une description structuree des zones ;
|
||||||
|
2. des tokens mathematiques ;
|
||||||
|
3. des primitives controlees ;
|
||||||
|
4. le SVG final ;
|
||||||
|
5. une validation automatique.
|
||||||
|
|
||||||
|
## Prochaine reprise
|
||||||
|
|
||||||
|
La prochaine session doit repartir sur les JSON ou des commentaires auront ete ajoutes.
|
||||||
|
|
||||||
|
Priorites annoncees :
|
||||||
|
|
||||||
|
1. relire les JSON commentes ;
|
||||||
|
2. valider les parcours ;
|
||||||
|
3. valider le diagnostic ;
|
||||||
|
4. valider la lecon ;
|
||||||
|
5. garder en tete que les SVG fractions de lecon sont proches du niveau attendu, mais que les futures generations doivent passer par les nouvelles regles.
|
||||||
|
|
||||||
|
## A ne pas oublier
|
||||||
|
|
||||||
|
- Ne pas reprendre les SVG fractions en mode correction ponctuelle sans relancer le validateur.
|
||||||
|
- Si un nouveau SVG contient une fraction, lancer le validateur avant revue utilisateur.
|
||||||
|
- Les exercices SVG existants peuvent encore remonter des warnings de `data-box` manquant si on valide tout `backend/contenus_pedagogiques`.
|
||||||
|
- Le lot de lecons `01B_fractions/svg` est le lot de reference propre pour les nouvelles regles.
|
||||||
@@ -82,6 +82,13 @@ Decision :
|
|||||||
- utiliser un composant de fraction stable, avec espacements imposes et controles visuels ;
|
- utiliser un composant de fraction stable, avec espacements imposes et controles visuels ;
|
||||||
- ne pas assimiler definitivement ces SVG tant que la reprise n'est pas validee.
|
- ne pas assimiler definitivement ces SVG tant que la reprise n'est pas validee.
|
||||||
|
|
||||||
|
Reprise qualite du `2026-05-09` :
|
||||||
|
|
||||||
|
- notes detaillees : `NOTES_SESSION_2026-05-09.md` ;
|
||||||
|
- architecture et regles SVG : `SVG_CONTENT_ARCHITECTURE.md` ;
|
||||||
|
- validateur : `backend/tools/validate_svg_quality.py` ;
|
||||||
|
- commande de reference : valider `svg/` avec `--warnings-as-errors`.
|
||||||
|
|
||||||
## Contextes dynamiques generes
|
## Contextes dynamiques generes
|
||||||
|
|
||||||
Phase 4A : 24 contextes dynamiques par card generes dans `card_contexts/`.
|
Phase 4A : 24 contextes dynamiques par card generes dans `card_contexts/`.
|
||||||
|
|||||||
Reference in New Issue
Block a user