Start working on "FIX/Improve feedback on errors"
#53 (closed) et #35 (closed)
Première passe en vue de fermer-
Ajout d'un logger dédié pour pyodide (lié à celui de mkdocs => meilleur présentation des messages affichés dans la console). Voir
./mkdocs_macro_pyodide/pyodide_logger.py
-
Transformation du fichier
main.py
en un packagemkdocs_macros_pyodide
, afin de pouvoir utiliser du code réparti dans différents fichiers/packages durant les macros -
Renommage de
my_theme_customizations
enmkdocs_theme_pyiodide
-
Restructuration du contenu du dossier, en vue de pouvoir splitter les fichiers JS plus tard
-
Ajout d'une mécanique mettant automatiquement à jour
main.html
avec tous les fichiers.js
et.css
contenus dans lecustom_dir
, afin de ne pas avoir à synchroniser à la main le fichier (voirmacros/build_tools.py
).- La synchro se fait au début de la définition des macros, depuis
mkdocs_macro_pyodide.main:define_env
(appelantmkdocs_macro_pyodide.build_tools:update_header_for_pyodide_scripts_and_css
) - Des infos sur la mise à jour ou non de main.html son affichées dans la console
- A noter que si
main.html
est mis à jour, 2 opérations successives debuild
du site vont être faites, car le custom_dir est surveillé par mkdocs et la modification du fichier va donc être vue.
- La synchro se fait au début de la définition des macros, depuis
-
Déplacement de la configuration pour MathJax dansRetour en arrière: je n'ai pas trouvé comment faire marcher la partie MathJax si elle est insérée viamkdocs_theme_pyodide/qcm/mathjax-config.js
, et suppression demkdocs.yml/extra_javascripts
. Le chargement du cdn nécessaire est du coup rebasculé dansmain.html
(puisque nécessaire aux qcm's)main.html
...
Redécoupage de main.py
- Transformation an package
mkdocs_macros_pyodide
- Séparation des différentes macros en modules clairement identifiables
- Introduction d'un singleton
MaestroEnv
contenant les variables globales (englobe leenv
des macros)
Ajout de fonctionnalités (python)
- La classe
Html
, pour construire des tags divers et variés de manière systématique - Introduction du crochet
on_post_page_macros
:- Va permettre d'insérer les scripts JS de manière contrôlée, en ne les insérant que quand nécessaire. Notes:
- Important: les scripts ne doivent être insérés qu'une seule fois par fichier => système d'enregistrement des "besoins" dans
MaestroEnv
. - permet de se débarrasser du block
content
demain.html
, qui insère systématiquementIDE.js
dans toutes les pages, à l'heure actuelle
- Important: les scripts ne doivent être insérés qu'une seule fois par fichier => système d'enregistrement des "besoins" dans
- Devrait permettre de se passer complètement de
escape_problematic_characters_in_files
, en faisant les insertions après que le markdown ait été rendu (il faudra remplacer les appels de macros par un token spécific et enregistrer dansMaestroEnv
le code à insérer pour chaque token | ATTENTION: vérifier la faisabilité. - Va aussi permettre de transformer les macros pour utiliser au final des objets auxquels on associera des bouts spécifiques de code js, voire des fichiers css (...en gros, je suis entrain de reconstruire Angular... En fait...
😄 )
- Va permettre d'insérer les scripts JS de manière contrôlée, en ne les insérant que quand nécessaire. Notes:
- Augmentation de
MaestroEnv
, pour le rendre plus versatile. - MAJ de
macros/build_tools.py
et deMaestroEnv
pour scinder la logique de ce qui reste dans main.html et ce qui se retrouvera dans les pages elles-mêmes.
"Prétraitements" pour la partie JS
- Ajouts de qqes commentaires ici ou là
- Qqes fonctions déplacées
- Sécurisation du code de traitement des erreurs, pour empêcher les boucles infinies
- Qqes "fixes" mineurs