⌥ Aide-mémoire shell — plan_de_classe_vtab.html

Clique sur la flèche ▸ d'une commande pour dérouler son explication.

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 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

1grepgrep -n "function applyConfig" plan_de_classe_vtab.html
Trouve la définition de applyConfig(), la fonction qui (re)calcule les places du plan à partir de rows × tablesPerRow × studentsPerTable et redessine la grille.
2grepgrep -n "applyConfig(" plan_de_classe_vtab.html
Liste les 7 appels : chaque endroit qui applique une nouvelle capacité (lecture d'un export CSV importé, édition de la config, bascule de classe, etc.).
3grepgrep -n "currentMode" plan_de_classe_vtab.html
Les 42 emplacements qui testent le mode actif (déplacement / évaluation / compétence / bilan) — boutons actifs, comportement des clics, bandeau.
4grepgrep -n "const MODES_ORDRE" plan_de_classe_vtab.html
Affiche la ligne 12066 définissant l'ordre des onglets de mode ['deplacement','evaluation','competence','bilan']. Utile pour réordonner ou ajouter un mode.
5grepgrep -n "modeRetraitActif" plan_de_classe_vtab.html
Tout ce qui pilote le mode retrait (déplacer des élèves hors plan / en réserve), 24 références.
6grepgrep -n "modeMultiTagsActif" plan_de_classe_vtab.html
Le mode multi-tags : sélection de plusieurs tags puis application sur une zone.
7grepgrep -n "modeSanctionActif" plan_de_classe_vtab.html
Le mode sanctions (punitions) : affichage, ajout via ajouterSanction, clic sur élève via clicEleveSanction.
8grepgrep -n "SANCTIONS_LS_KEY" plan_de_classe_vtab.html
Le miroir localStorage des sanctions (abc_sanctions_v1) : sauvegarde/restauration de l'état vivant à la fermeture/ouverture.
9grepgrep -n "CKPT_MIROIR_KEY" plan_de_classe_vtab.html
Le miroir localStorage des checkpoints (abc_ckpt_miroir_v1) : recopie locale, puis purge ligne 12013 via removeItem.
10grepgrep -on "localStorage" plan_de_classe_vtab.html | wc -l
Compte les 13 usages de localStorage (getItem/setItem/removeItem) — rapide pour repérer toutes les zones de persistance à garder cohérentes.
11grepgrep -n "innerHTML" plan_de_classe_vtab.html
Les 89 insertions de HTML dynamique : rendu du plan, bandeaux, séances, bilans… Attention aux templates HTML inline dedans.
12grepgrep -on "addEventListener('click'" plan_de_classe_vtab.html | wc -l
Compte les gestionnaires de clic (sur les ~90 addEventListener du fichier). Perforer ici = retrouver les briques d'interaction.
13grepgrep -noE 'function [A-Za-z_$][A-Za-z0-9_$]*' plan_de_classe_vtab.html
Dump de toutes les définitions de fonctions avec leur ligne — carte du fichier. Ex : applyConfig, chargerClasse, changerMode, construireCSV
14grepgrep -noE 'const [A-Z_]+_KEY[^;]*' plan_de_classe_vtab.html
Liste toutes les constantes de clés de stockage (_KEY) : pour débusquer d'éventuels chevauchements avant d'en ajouter une.
15grepgrep -n "rows:" plan_de_classe_vtab.html
Toutes 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

16sedsed -n '12066p' plan_de_classe_vtab.html
Sans rien modifier : affiche uniquement la ligne 12066 (MODES_ORDRE). Voir un extrait = sed -n '4000,4200p'.
17sedsed 's/currentMode/modeActif/g' plan_de_classe_vtab.html
Aperçu (stdout seulement) du résultat si on renommait currentModemodeActif partout. Sans g, seule la 1re occurrence de chaque ligne.
18sedsed -i 's/modeRetraitActif/SOUS_MODE_RETRAIT/g' plan_de_classe_vtab.html
Renomme en place (-i) le drapeau du mode retrait sur toutes les lignes. Toujours vérifier ensuite : grep -n "SOUS_MODE_RETRAIT".
19sedsed 's/abc_ckpt_miroir_v1/abc_ckpt_miroir_v2/g' cp.txt > plan_de_classe_vtab.html
Renommer 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).
20sedsed -i.bak -E 's/(rows|tablesPerRow|studentsPerTable)/\U\1/g' plan_de_classe_vtab.html
Masse 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.
21sedsed -i '/^[[:space:]]*\/\/.*debug/d' plan_de_classe_vtab.html
Supprime les lignes entièrement en commentaire contenant « debug ». Penser à retirer d'éventuelles lignes vides dupliquées ensuite.
22sedsed -i '/console\.log(/d' plan_de_classe_vtab.html
Efface toutes les lignes contenant un console.log — nettoyage des traces de debug avant une mise en prod.
23sedsed -n '/applyConfig/,/^[[:space:]]*}/p' plan_de_classe_vtab.html
Lecture 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/gc
Renomme currentModemodeActif partout avec confirmation ligne par ligne (c) — le plus sûr pour un paramètre aussi central (42 usages).
25vim:%s/suivi/suiviDesSeances/gc
Remplacer chaque suivi. ⚠️ sans c ni limites de mot, ça toucherait aussi modeMultiTagsActif… Donc TOUJOURS le c ou des \< \>.
26vim:%s/\<suivi\>/suiviDesSeances/gc
Même idée mais mot entier uniquement (\< et \> = début/fin de mot) : ne touche PAS modeMultiTagsActif ni --suivi--.
27vim:6,14s/deplacement/dep/g
Ne 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/g
Substitution limitée au corps d'une fonction précise : rowsnLignes uniquement dans applyConfig(), pas ailleurs dans le fichier.
29vim:%g/console\.log/d
Variante vim de la suppression des logs : :global efface toutes les lignes qui correspondent à console.log.
30vim:%s/eleve[0-9]\+_nom\b/&_sauve/g
Capture + réemploi avec & = tout le texte matché (ex. suffixer chaque identifiant d'élève). Les \1\9 désignent les groupes (...) ; \+ = un ou plusieurs.