Fichier monolithique : plan_de_classe_vtab.html (~15 400 lignes) : HTML + CSS + JS inline.
Repères : config du plan en clés anglaises rows/tablesPerRow/studentsPerTable ; modes dans MODES_ORDRE = ['deplacement','evaluation','competence','bilan'] (ligne 12066) ; mode actif currentMode (42 usages) ; sous-modes modeRetraitActif, modeMultiTagsActif, modeSanctionActif ; stockage via CKPT_MIROIR_KEY='abc_ckpt_miroir_v1', SANCTIONS_LS_KEY='abc_sanctions_v1', ZIP_ATTENTE_KEY='zipEnAttente'.
⚠️ Avant tout
⚠️ Clés localStorage : renommer une clé côté lecture sans le faire côté écriture (ou l'inverse) casse silencieusement la persistance. Toujours vérifier TOUS les
sed -i : copie de sécurité — cp plan_de_classe_vtab.html /tmp/plan_$(date +%s).html.⚠️ Clés localStorage : renommer une clé côté lecture sans le faire côté écriture (ou l'inverse) casse silencieusement la persistance. Toujours vérifier TOUS les
getItem/setItem/removeItem de la clé (grep).
grep — Rechercher · 15
▸1grep
grep -n "function applyConfig" plan_de_classe_vtab.htmlTrouve la définition de
applyConfig(), la fonction qui (re)calcule les places du plan à partir de rows × tablesPerRow × studentsPerTable et redessine la grille.▸2grep
grep -n "applyConfig(" plan_de_classe_vtab.htmlListe les 7 appels : chaque endroit qui applique une nouvelle capacité (lecture d'un export CSV importé, édition de la config, bascule de classe, etc.).
▸3grep
grep -n "currentMode" plan_de_classe_vtab.htmlLes 42 emplacements qui testent le mode actif (déplacement / évaluation / compétence / bilan) — boutons actifs, comportement des clics, bandeau.
▸4grep
grep -n "const MODES_ORDRE" plan_de_classe_vtab.htmlAffiche la ligne 12066 définissant l'ordre des onglets de mode
['deplacement','evaluation','competence','bilan']. Utile pour réordonner ou ajouter un mode.▸5grep
grep -n "modeRetraitActif" plan_de_classe_vtab.htmlTout ce qui pilote le mode retrait (déplacer des élèves hors plan / en réserve), 24 références.
▸6grep
grep -n "modeMultiTagsActif" plan_de_classe_vtab.htmlLe mode multi-tags : sélection de plusieurs tags puis application sur une zone.
▸7grep
grep -n "modeSanctionActif" plan_de_classe_vtab.htmlLe mode sanctions (punitions) : affichage, ajout via
ajouterSanction, clic sur élève via clicEleveSanction.▸8grep
grep -n "SANCTIONS_LS_KEY" plan_de_classe_vtab.htmlLe miroir localStorage des sanctions (
abc_sanctions_v1) : sauvegarde/restauration de l'état vivant à la fermeture/ouverture.▸9grep
grep -n "CKPT_MIROIR_KEY" plan_de_classe_vtab.htmlLe miroir localStorage des checkpoints (
abc_ckpt_miroir_v1) : recopie locale, puis purge ligne 12013 via removeItem.▸10grep
grep -on "localStorage" plan_de_classe_vtab.html | wc -lCompte les 13 usages de
localStorage (getItem/setItem/removeItem) — rapide pour repérer toutes les zones de persistance à garder cohérentes.▸11grep
grep -n "innerHTML" plan_de_classe_vtab.htmlLes 89 insertions de HTML dynamique : rendu du plan, bandeaux, séances, bilans… Attention aux templates HTML inline dedans.
▸12grep
grep -on "addEventListener('click'" plan_de_classe_vtab.html | wc -lCompte les gestionnaires de clic (sur les ~90
addEventListener du fichier). Perforer ici = retrouver les briques d'interaction.▸13grep
grep -noE 'function [A-Za-z_$][A-Za-z0-9_$]*' plan_de_classe_vtab.htmlDump de toutes les définitions de fonctions avec leur ligne — carte du fichier. Ex :
applyConfig, chargerClasse, changerMode, construireCSV…▸14grep
grep -noE 'const [A-Z_]+_KEY[^;]*' plan_de_classe_vtab.htmlListe toutes les constantes de clés de stockage (
_KEY) : pour débusquer d'éventuels chevauchements avant d'en ajouter une.▸15grep
grep -n "rows:" plan_de_classe_vtab.htmlToutes les constructions d'objet
config (ex. ligne 9724 config = { rows, tablesPerRow, studentsPerTable }). Vérifie qu'on lit/écrit les mêmes champs partout.sed — Éditer « en flux » · 8
▸16sed
sed -n '12066p' plan_de_classe_vtab.htmlSans rien modifier : affiche uniquement la ligne 12066 (
MODES_ORDRE). Voir un extrait = sed -n '4000,4200p'.▸17sed
sed 's/currentMode/modeActif/g' plan_de_classe_vtab.htmlAperçu (stdout seulement) du résultat si on renommait
currentMode → modeActif partout. Sans g, seule la 1re occurrence de chaque ligne.▸18sed
sed -i 's/modeRetraitActif/SOUS_MODE_RETRAIT/g' plan_de_classe_vtab.htmlRenomme en place (
-i) le drapeau du mode retrait sur toutes les lignes. Toujours vérifier ensuite : grep -n "SOUS_MODE_RETRAIT".▸19sed
sed 's/abc_ckpt_miroir_v1/abc_ckpt_miroir_v2/g' cp.txt > plan_de_classe_vtab.htmlRenommer une clé localStorage (versionnage). On écrit dans une copie (
cp.txt) puis on remplace l'original. ⚠️ Le LECTEUR et l'ÉCRIVAIN doivent changer ensemble (cf. avertissement).▸20sed
sed -i.bak -E 's/(rows|tablesPerRow|studentsPerTable)/\U\1/g' plan_de_classe_vtab.htmlMasse les réécritures par groupes capturés en gardant un backup auto (
.bak). Ici on passerait les 3 clés de config en MAJUSCULES — style à ne PAS faire à la légère, car il faut suivre toute leur utilisation.▸21sed
sed -i '/^[[:space:]]*\/\/.*debug/d' plan_de_classe_vtab.htmlSupprime les lignes entièrement en commentaire contenant « debug ». Penser à retirer d'éventuelles lignes vides dupliquées ensuite.
▸22sed
sed -i '/console\.log(/d' plan_de_classe_vtab.htmlEfface toutes les lignes contenant un
console.log — nettoyage des traces de debug avant une mise en prod.▸23sed
sed -n '/applyConfig/,/^[[:space:]]*}/p' plan_de_classe_vtab.htmlLecture seule du bloc entier de
applyConfig jusqu'à l'accolade fermante — pour relire une fonction complète sans ouvrir le fichier entier.vim — %s (remplacer, confirmation et limites) · 7
▸24vim
:%s/currentMode/modeActif/gcRenomme
currentMode → modeActif partout avec confirmation ligne par ligne (c) — le plus sûr pour un paramètre aussi central (42 usages).▸25vim
:%s/suivi/suiviDesSeances/gcRemplacer chaque
suivi. ⚠️ sans c ni limites de mot, ça toucherait aussi modeMultiTagsActif… Donc TOUJOURS le c ou des \< \>.▸26vim
:%s/\<suivi\>/suiviDesSeances/gcMême idée mais mot entier uniquement (
\< et \> = début/fin de mot) : ne touche PAS modeMultiTagsActif ni --suivi--.▸27vim
:6,14s/deplacement/dep/gNe remplace que dans une plage de lignes (6 → 14). Idéal pour un correctif localisé sans risque pour le reste du fichier.
▸28vim
:/^[[:space:]]*function applyConfig/,/}/s/rows/nLignes/gSubstitution limitée au corps d'une fonction précise :
rows → nLignes uniquement dans applyConfig(), pas ailleurs dans le fichier.▸29vim
:%g/console\.log/dVariante vim de la suppression des logs :
:global efface toutes les lignes qui correspondent à console.log.▸30vim
:%s/eleve[0-9]\+_nom\b/&_sauve/gCapture + réemploi avec
& = tout le texte matché (ex. suffixer chaque identifiant d'élève). Les \1… \9 désignent les groupes (...) ; \+ = un ou plusieurs.