pyodide-mkdocs-theme 5.4.0__tar.gz → 5.4.2__tar.gz
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- {pyodide_mkdocs_theme-5.4.0 → pyodide_mkdocs_theme-5.4.2}/PKG-INFO +1 -1
- {pyodide_mkdocs_theme-5.4.0 → pyodide_mkdocs_theme-5.4.2}/pyodide_mkdocs_theme/PMT_tools/p5/__init__.py +1 -1
- pyodide_mkdocs_theme-5.4.2/pyodide_mkdocs_theme/__version__.py +1 -0
- {pyodide_mkdocs_theme-5.4.0 → pyodide_mkdocs_theme-5.4.2}/pyodide_mkdocs_theme/pyodide_macros/files_extractors/_inclusions_tools.py +1 -1
- {pyodide_mkdocs_theme-5.4.0 → pyodide_mkdocs_theme-5.4.2}/pyodide_mkdocs_theme/pyodide_macros/files_extractors/base0_extractors.py +32 -34
- {pyodide_mkdocs_theme-5.4.0 → pyodide_mkdocs_theme-5.4.2}/pyodide_mkdocs_theme/pyodide_macros/files_extractors/base1_contents_extractor.py +1 -2
- {pyodide_mkdocs_theme-5.4.0 → pyodide_mkdocs_theme-5.4.2}/pyodide_mkdocs_theme/pyodide_macros/files_extractors/base2_inclusions.py +5 -2
- {pyodide_mkdocs_theme-5.4.0 → pyodide_mkdocs_theme-5.4.2}/pyodide_mkdocs_theme/pyodide_macros/macros/ide_manager.py +17 -6
- {pyodide_mkdocs_theme-5.4.0 → pyodide_mkdocs_theme-5.4.2}/pyodide_mkdocs_theme/pyodide_macros/macros/ide_term_ide.py +3 -1
- {pyodide_mkdocs_theme-5.4.0 → pyodide_mkdocs_theme-5.4.2}/pyodide_mkdocs_theme/pyodide_macros/macros/ide_tester.py +6 -8
- {pyodide_mkdocs_theme-5.4.0 → pyodide_mkdocs_theme-5.4.2}/pyodide_mkdocs_theme/pyodide_macros/macros/qcm.py +26 -0
- {pyodide_mkdocs_theme-5.4.0 → pyodide_mkdocs_theme-5.4.2}/pyodide_mkdocs_theme/pyodide_macros/plugin/maestro_base.py +1 -0
- {pyodide_mkdocs_theme-5.4.0 → pyodide_mkdocs_theme-5.4.2}/pyodide_mkdocs_theme/pyodide_macros/plugin/maestro_macros.py +4 -2
- {pyodide_mkdocs_theme-5.4.0 → pyodide_mkdocs_theme-5.4.2}/pyodide_mkdocs_theme/pyodide_macros/plugin_config/definitions/macros_configs.py +7 -0
- {pyodide_mkdocs_theme-5.4.0 → pyodide_mkdocs_theme-5.4.2}/pyodide_mkdocs_theme/pyodide_macros/plugin_config/definitions/sub_configs.py +1 -1
- {pyodide_mkdocs_theme-5.4.0 → pyodide_mkdocs_theme-5.4.2}/pyodide_mkdocs_theme/pyodide_macros/plugin_tools/macros_data.py +1 -0
- {pyodide_mkdocs_theme-5.4.0 → pyodide_mkdocs_theme-5.4.2}/pyodide_mkdocs_theme/templates/js-libs/functools.js +10 -4
- {pyodide_mkdocs_theme-5.4.0 → pyodide_mkdocs_theme-5.4.2}/pyodide_mkdocs_theme/templates/js-per-pages/qcms-qcm.js +12 -8
- {pyodide_mkdocs_theme-5.4.0 → pyodide_mkdocs_theme-5.4.2}/pyproject.toml +1 -1
- pyodide_mkdocs_theme-5.4.0/pyodide_mkdocs_theme/__version__.py +0 -1
- {pyodide_mkdocs_theme-5.4.0 → pyodide_mkdocs_theme-5.4.2}/LICENSE +0 -0
- {pyodide_mkdocs_theme-5.4.0 → pyodide_mkdocs_theme-5.4.2}/README.md +0 -0
- {pyodide_mkdocs_theme-5.4.0 → pyodide_mkdocs_theme-5.4.2}/pyodide_mkdocs_theme/PMT_tools/vis/__init__.py +0 -0
- {pyodide_mkdocs_theme-5.4.0 → pyodide_mkdocs_theme-5.4.2}/pyodide_mkdocs_theme/PMT_tools/vis_network/__init__.py +0 -0
- {pyodide_mkdocs_theme-5.4.0 → pyodide_mkdocs_theme-5.4.2}/pyodide_mkdocs_theme/__init__.py +0 -0
- {pyodide_mkdocs_theme-5.4.0 → pyodide_mkdocs_theme-5.4.2}/pyodide_mkdocs_theme/__main__.py +0 -0
- {pyodide_mkdocs_theme-5.4.0 → pyodide_mkdocs_theme-5.4.2}/pyodide_mkdocs_theme/basthon_p5_to_pmt.py +0 -0
- {pyodide_mkdocs_theme-5.4.0 → pyodide_mkdocs_theme-5.4.2}/pyodide_mkdocs_theme/pyodide_macros/__init__.py +0 -0
- {pyodide_mkdocs_theme-5.4.0 → pyodide_mkdocs_theme-5.4.2}/pyodide_mkdocs_theme/pyodide_macros/exceptions.py +0 -0
- {pyodide_mkdocs_theme-5.4.0 → pyodide_mkdocs_theme-5.4.2}/pyodide_mkdocs_theme/pyodide_macros/files_extractors/__init__.py +0 -0
- {pyodide_mkdocs_theme-5.4.0 → pyodide_mkdocs_theme-5.4.2}/pyodide_mkdocs_theme/pyodide_macros/files_extractors/base3_generic_extractors.py +0 -0
- {pyodide_mkdocs_theme-5.4.0 → pyodide_mkdocs_theme-5.4.2}/pyodide_mkdocs_theme/pyodide_macros/files_extractors/concrete_extractors.py +0 -0
- {pyodide_mkdocs_theme-5.4.0 → pyodide_mkdocs_theme-5.4.2}/pyodide_mkdocs_theme/pyodide_macros/html_builder/__init__.py +0 -0
- {pyodide_mkdocs_theme-5.4.0 → pyodide_mkdocs_theme-5.4.2}/pyodide_mkdocs_theme/pyodide_macros/html_builder/_html_builder.py +0 -0
- {pyodide_mkdocs_theme-5.4.0 → pyodide_mkdocs_theme-5.4.2}/pyodide_mkdocs_theme/pyodide_macros/html_dependencies/__init__.py +0 -0
- {pyodide_mkdocs_theme-5.4.0 → pyodide_mkdocs_theme-5.4.2}/pyodide_mkdocs_theme/pyodide_macros/html_dependencies/deps.py +0 -0
- {pyodide_mkdocs_theme-5.4.0 → pyodide_mkdocs_theme-5.4.2}/pyodide_mkdocs_theme/pyodide_macros/html_dependencies/deps_class.py +0 -0
- {pyodide_mkdocs_theme-5.4.0 → pyodide_mkdocs_theme-5.4.2}/pyodide_mkdocs_theme/pyodide_macros/indent_parser.py +0 -0
- {pyodide_mkdocs_theme-5.4.0 → pyodide_mkdocs_theme-5.4.2}/pyodide_mkdocs_theme/pyodide_macros/macros/IDEs.py +0 -0
- {pyodide_mkdocs_theme-5.4.0 → pyodide_mkdocs_theme-5.4.2}/pyodide_mkdocs_theme/pyodide_macros/macros/__init__.py +0 -0
- {pyodide_mkdocs_theme-5.4.0 → pyodide_mkdocs_theme-5.4.2}/pyodide_mkdocs_theme/pyodide_macros/macros/figure.py +0 -0
- {pyodide_mkdocs_theme-5.4.0 → pyodide_mkdocs_theme-5.4.2}/pyodide_mkdocs_theme/pyodide_macros/macros/ide_ide.py +0 -0
- {pyodide_mkdocs_theme-5.4.0 → pyodide_mkdocs_theme-5.4.2}/pyodide_mkdocs_theme/pyodide_macros/macros/ide_playground.py +0 -0
- {pyodide_mkdocs_theme-5.4.0 → pyodide_mkdocs_theme-5.4.2}/pyodide_mkdocs_theme/pyodide_macros/macros/ide_py_btn.py +0 -0
- {pyodide_mkdocs_theme-5.4.0 → pyodide_mkdocs_theme-5.4.2}/pyodide_mkdocs_theme/pyodide_macros/macros/ide_run_macro.py +0 -0
- {pyodide_mkdocs_theme-5.4.0 → pyodide_mkdocs_theme-5.4.2}/pyodide_mkdocs_theme/pyodide_macros/macros/ide_terminal.py +0 -0
- {pyodide_mkdocs_theme-5.4.0 → pyodide_mkdocs_theme-5.4.2}/pyodide_mkdocs_theme/pyodide_macros/macros/py_script.py +0 -0
- {pyodide_mkdocs_theme-5.4.0 → pyodide_mkdocs_theme-5.4.2}/pyodide_mkdocs_theme/pyodide_macros/messages/__init__.py +0 -0
- {pyodide_mkdocs_theme-5.4.0 → pyodide_mkdocs_theme-5.4.2}/pyodide_mkdocs_theme/pyodide_macros/messages/classes.py +0 -0
- {pyodide_mkdocs_theme-5.4.0 → pyodide_mkdocs_theme-5.4.2}/pyodide_mkdocs_theme/pyodide_macros/messages/de_lang.py +0 -0
- {pyodide_mkdocs_theme-5.4.0 → pyodide_mkdocs_theme-5.4.2}/pyodide_mkdocs_theme/pyodide_macros/messages/en_lang.py +0 -0
- {pyodide_mkdocs_theme-5.4.0 → pyodide_mkdocs_theme-5.4.2}/pyodide_mkdocs_theme/pyodide_macros/messages/fr_lang.py +0 -0
- {pyodide_mkdocs_theme-5.4.0 → pyodide_mkdocs_theme-5.4.2}/pyodide_mkdocs_theme/pyodide_macros/messages/proxy.py +0 -0
- {pyodide_mkdocs_theme-5.4.0 → pyodide_mkdocs_theme-5.4.2}/pyodide_mkdocs_theme/pyodide_macros/parsing.py +0 -0
- {pyodide_mkdocs_theme-5.4.0 → pyodide_mkdocs_theme-5.4.2}/pyodide_mkdocs_theme/pyodide_macros/paths_utils.py +0 -0
- {pyodide_mkdocs_theme-5.4.0 → pyodide_mkdocs_theme-5.4.2}/pyodide_mkdocs_theme/pyodide_macros/plugin/__init__.py +0 -0
- {pyodide_mkdocs_theme-5.4.0 → pyodide_mkdocs_theme-5.4.2}/pyodide_mkdocs_theme/pyodide_macros/plugin/config.py +0 -0
- {pyodide_mkdocs_theme-5.4.0 → pyodide_mkdocs_theme-5.4.2}/pyodide_mkdocs_theme/pyodide_macros/plugin/maestro_contracts.py +0 -0
- {pyodide_mkdocs_theme-5.4.0 → pyodide_mkdocs_theme-5.4.2}/pyodide_mkdocs_theme/pyodide_macros/plugin/maestro_files.py +0 -0
- {pyodide_mkdocs_theme-5.4.0 → pyodide_mkdocs_theme-5.4.2}/pyodide_mkdocs_theme/pyodide_macros/plugin/maestro_indent.py +0 -0
- {pyodide_mkdocs_theme-5.4.0 → pyodide_mkdocs_theme-5.4.2}/pyodide_mkdocs_theme/pyodide_macros/plugin/maestro_meta.py +0 -0
- {pyodide_mkdocs_theme-5.4.0 → pyodide_mkdocs_theme-5.4.2}/pyodide_mkdocs_theme/pyodide_macros/plugin/maestro_templates.py +0 -0
- {pyodide_mkdocs_theme-5.4.0 → pyodide_mkdocs_theme-5.4.2}/pyodide_mkdocs_theme/pyodide_macros/plugin/pyodide_macros_plugin.py +0 -0
- {pyodide_mkdocs_theme-5.4.0 → pyodide_mkdocs_theme-5.4.2}/pyodide_mkdocs_theme/pyodide_macros/plugin_config/__init__.py +0 -0
- {pyodide_mkdocs_theme-5.4.0 → pyodide_mkdocs_theme-5.4.2}/pyodide_mkdocs_theme/pyodide_macros/plugin_config/_string_tools_and_constants.py +0 -0
- {pyodide_mkdocs_theme-5.4.0 → pyodide_mkdocs_theme-5.4.2}/pyodide_mkdocs_theme/pyodide_macros/plugin_config/common_tree_src.py +0 -0
- {pyodide_mkdocs_theme-5.4.0 → pyodide_mkdocs_theme-5.4.2}/pyodide_mkdocs_theme/pyodide_macros/plugin_config/config_option_src.py +0 -0
- {pyodide_mkdocs_theme-5.4.0 → pyodide_mkdocs_theme-5.4.2}/pyodide_mkdocs_theme/pyodide_macros/plugin_config/definitions/__init__.py +0 -0
- {pyodide_mkdocs_theme-5.4.0 → pyodide_mkdocs_theme-5.4.2}/pyodide_mkdocs_theme/pyodide_macros/plugin_config/definitions/docs_dirs_config.py +0 -0
- {pyodide_mkdocs_theme-5.4.0 → pyodide_mkdocs_theme-5.4.2}/pyodide_mkdocs_theme/pyodide_macros/plugin_config/definitions/plugin_config.py +0 -0
- {pyodide_mkdocs_theme-5.4.0 → pyodide_mkdocs_theme-5.4.2}/pyodide_mkdocs_theme/pyodide_macros/plugin_config/dumpers.py +0 -0
- {pyodide_mkdocs_theme-5.4.0 → pyodide_mkdocs_theme-5.4.2}/pyodide_mkdocs_theme/pyodide_macros/plugin_config/lang_src.py +0 -0
- {pyodide_mkdocs_theme-5.4.0 → pyodide_mkdocs_theme-5.4.2}/pyodide_mkdocs_theme/pyodide_macros/plugin_config/macro_config_src.py +0 -0
- {pyodide_mkdocs_theme-5.4.0 → pyodide_mkdocs_theme-5.4.2}/pyodide_mkdocs_theme/pyodide_macros/plugin_config/plugin_config_src.py +0 -0
- {pyodide_mkdocs_theme-5.4.0 → pyodide_mkdocs_theme-5.4.2}/pyodide_mkdocs_theme/pyodide_macros/plugin_config/sub_config_src.py +0 -0
- {pyodide_mkdocs_theme-5.4.0 → pyodide_mkdocs_theme-5.4.2}/pyodide_mkdocs_theme/pyodide_macros/plugin_tools/__init__.py +0 -0
- {pyodide_mkdocs_theme-5.4.0 → pyodide_mkdocs_theme-5.4.2}/pyodide_mkdocs_theme/pyodide_macros/plugin_tools/maestro_tools.py +0 -0
- {pyodide_mkdocs_theme-5.4.0 → pyodide_mkdocs_theme-5.4.2}/pyodide_mkdocs_theme/pyodide_macros/plugin_tools/options_alterations.py +0 -0
- {pyodide_mkdocs_theme-5.4.0 → pyodide_mkdocs_theme-5.4.2}/pyodide_mkdocs_theme/pyodide_macros/plugin_tools/pages_and_macros_py_configs.py +0 -0
- {pyodide_mkdocs_theme-5.4.0 → pyodide_mkdocs_theme-5.4.2}/pyodide_mkdocs_theme/pyodide_macros/plugin_tools/test_cases.py +0 -0
- {pyodide_mkdocs_theme-5.4.0 → pyodide_mkdocs_theme-5.4.2}/pyodide_mkdocs_theme/pyodide_macros/pyodide_logger.py +0 -0
- {pyodide_mkdocs_theme-5.4.0 → pyodide_mkdocs_theme-5.4.2}/pyodide_mkdocs_theme/pyodide_macros/tools_and_constants.py +0 -0
- {pyodide_mkdocs_theme-5.4.0 → pyodide_mkdocs_theme-5.4.2}/pyodide_mkdocs_theme/scripts/de/docs/exo.py +0 -0
- {pyodide_mkdocs_theme-5.4.0 → pyodide_mkdocs_theme-5.4.2}/pyodide_mkdocs_theme/scripts/de/docs/index.md +0 -0
- {pyodide_mkdocs_theme-5.4.0 → pyodide_mkdocs_theme-5.4.2}/pyodide_mkdocs_theme/scripts/de/mkdocs.yml +0 -0
- {pyodide_mkdocs_theme-5.4.0 → pyodide_mkdocs_theme-5.4.2}/pyodide_mkdocs_theme/scripts/en/docs/exo.py +0 -0
- {pyodide_mkdocs_theme-5.4.0 → pyodide_mkdocs_theme-5.4.2}/pyodide_mkdocs_theme/scripts/en/docs/index.md +0 -0
- {pyodide_mkdocs_theme-5.4.0 → pyodide_mkdocs_theme-5.4.2}/pyodide_mkdocs_theme/scripts/en/mkdocs.yml +0 -0
- {pyodide_mkdocs_theme-5.4.0 → pyodide_mkdocs_theme-5.4.2}/pyodide_mkdocs_theme/scripts/fr/docs/exo.py +0 -0
- {pyodide_mkdocs_theme-5.4.0 → pyodide_mkdocs_theme-5.4.2}/pyodide_mkdocs_theme/scripts/fr/docs/index.md +0 -0
- {pyodide_mkdocs_theme-5.4.0 → pyodide_mkdocs_theme-5.4.2}/pyodide_mkdocs_theme/scripts/fr/mkdocs.yml +0 -0
- {pyodide_mkdocs_theme-5.4.0 → pyodide_mkdocs_theme-5.4.2}/pyodide_mkdocs_theme/scripts/models/.gitignore +0 -0
- {pyodide_mkdocs_theme-5.4.0 → pyodide_mkdocs_theme-5.4.2}/pyodide_mkdocs_theme/scripts/models/main.py +0 -0
- {pyodide_mkdocs_theme-5.4.0 → pyodide_mkdocs_theme-5.4.2}/pyodide_mkdocs_theme/scripts/models/mkdocs.yml +0 -0
- {pyodide_mkdocs_theme-5.4.0 → pyodide_mkdocs_theme-5.4.2}/pyodide_mkdocs_theme/scripts/models/pyodide_plot.py +0 -0
- {pyodide_mkdocs_theme-5.4.0 → pyodide_mkdocs_theme-5.4.2}/pyodide_mkdocs_theme/scripts/models/requirements.txt +0 -0
- {pyodide_mkdocs_theme-5.4.0 → pyodide_mkdocs_theme-5.4.2}/pyodide_mkdocs_theme/scripts/models/toolbox.py +0 -0
- {pyodide_mkdocs_theme-5.4.0 → pyodide_mkdocs_theme-5.4.2}/pyodide_mkdocs_theme/templates/README.md +0 -0
- {pyodide_mkdocs_theme-5.4.0 → pyodide_mkdocs_theme-5.4.2}/pyodide_mkdocs_theme/templates/__init__.py +0 -0
- {pyodide_mkdocs_theme-5.4.0 → pyodide_mkdocs_theme-5.4.2}/pyodide_mkdocs_theme/templates/assets/images/.qcm-circle.svg +0 -0
- {pyodide_mkdocs_theme-5.4.0 → pyodide_mkdocs_theme-5.4.2}/pyodide_mkdocs_theme/templates/assets/images/icons8-check-64.png +0 -0
- {pyodide_mkdocs_theme-5.4.0 → pyodide_mkdocs_theme-5.4.2}/pyodide_mkdocs_theme/templates/assets/images/icons8-download-64.png +0 -0
- {pyodide_mkdocs_theme-5.4.0 → pyodide_mkdocs_theme-5.4.2}/pyodide_mkdocs_theme/templates/assets/images/icons8-play-64.png +0 -0
- {pyodide_mkdocs_theme-5.4.0 → pyodide_mkdocs_theme-5.4.2}/pyodide_mkdocs_theme/templates/assets/images/icons8-restart-64.png +0 -0
- {pyodide_mkdocs_theme-5.4.0 → pyodide_mkdocs_theme-5.4.2}/pyodide_mkdocs_theme/templates/assets/images/icons8-save-64.png +0 -0
- {pyodide_mkdocs_theme-5.4.0 → pyodide_mkdocs_theme-5.4.2}/pyodide_mkdocs_theme/templates/assets/images/icons8-step-64.png +0 -0
- {pyodide_mkdocs_theme-5.4.0 → pyodide_mkdocs_theme-5.4.2}/pyodide_mkdocs_theme/templates/assets/images/icons8-stop-64.png +0 -0
- {pyodide_mkdocs_theme-5.4.0 → pyodide_mkdocs_theme-5.4.2}/pyodide_mkdocs_theme/templates/assets/images/icons8-upload-64.png +0 -0
- {pyodide_mkdocs_theme-5.4.0 → pyodide_mkdocs_theme-5.4.2}/pyodide_mkdocs_theme/templates/assets/images/icons8-zip-64.png +0 -0
- {pyodide_mkdocs_theme-5.4.0 → pyodide_mkdocs_theme-5.4.2}/pyodide_mkdocs_theme/templates/base_pmt.html +0 -0
- {pyodide_mkdocs_theme-5.4.0 → pyodide_mkdocs_theme-5.4.2}/pyodide_mkdocs_theme/templates/js-libs/0-config.js +0 -0
- {pyodide_mkdocs_theme-5.4.0 → pyodide_mkdocs_theme-5.4.2}/pyodide_mkdocs_theme/templates/js-libs/0-legacy-subscriber.js +0 -0
- {pyodide_mkdocs_theme-5.4.0 → pyodide_mkdocs_theme-5.4.2}/pyodide_mkdocs_theme/templates/js-libs/jsLogger.js +0 -0
- {pyodide_mkdocs_theme-5.4.0 → pyodide_mkdocs_theme-5.4.2}/pyodide_mkdocs_theme/templates/js-libs/mathjax-libs.js +0 -0
- {pyodide_mkdocs_theme-5.4.0 → pyodide_mkdocs_theme-5.4.2}/pyodide_mkdocs_theme/templates/js-libs/process_and_gui.js +0 -0
- {pyodide_mkdocs_theme-5.4.0 → pyodide_mkdocs_theme-5.4.2}/pyodide_mkdocs_theme/templates/js-per-pages/0-generic-python-snippets-pyodide.js +0 -0
- {pyodide_mkdocs_theme-5.4.0 → pyodide_mkdocs_theme-5.4.2}/pyodide_mkdocs_theme/templates/js-per-pages/1-error_logs-pyodide.js +0 -0
- {pyodide_mkdocs_theme-5.4.0 → pyodide_mkdocs_theme-5.4.2}/pyodide_mkdocs_theme/templates/js-per-pages/1-packagesInstaller-install-pyodide.js +0 -0
- {pyodide_mkdocs_theme-5.4.0 → pyodide_mkdocs_theme-5.4.2}/pyodide_mkdocs_theme/templates/js-per-pages/1-runtimeManager-runtime-pyodide.js +0 -0
- {pyodide_mkdocs_theme-5.4.0 → pyodide_mkdocs_theme-5.4.2}/pyodide_mkdocs_theme/templates/js-per-pages/2-0-runnersManager-runners.js +0 -0
- {pyodide_mkdocs_theme-5.4.0 → pyodide_mkdocs_theme-5.4.2}/pyodide_mkdocs_theme/templates/js-per-pages/2-pyodideSectionsRunner-runner-pyodide.js +0 -0
- {pyodide_mkdocs_theme-5.4.0 → pyodide_mkdocs_theme-5.4.2}/pyodide_mkdocs_theme/templates/js-per-pages/3-btnRunner-py_btn.js +0 -0
- {pyodide_mkdocs_theme-5.4.0 → pyodide_mkdocs_theme-5.4.2}/pyodide_mkdocs_theme/templates/js-per-pages/3-terminalRunner-term.js +0 -0
- {pyodide_mkdocs_theme-5.4.0 → pyodide_mkdocs_theme-5.4.2}/pyodide_mkdocs_theme/templates/js-per-pages/4-0-idesManager-ide.js +0 -0
- {pyodide_mkdocs_theme-5.4.0 → pyodide_mkdocs_theme-5.4.2}/pyodide_mkdocs_theme/templates/js-per-pages/4-ideLogistic-ide.js +0 -0
- {pyodide_mkdocs_theme-5.4.0 → pyodide_mkdocs_theme-5.4.2}/pyodide_mkdocs_theme/templates/js-per-pages/4-ideRunner-ide.js +0 -0
- {pyodide_mkdocs_theme-5.4.0 → pyodide_mkdocs_theme-5.4.2}/pyodide_mkdocs_theme/templates/js-per-pages/5-ideTester-ides_test.js +0 -0
- {pyodide_mkdocs_theme-5.4.0 → pyodide_mkdocs_theme-5.4.2}/pyodide_mkdocs_theme/templates/js-per-pages/6-2-init-playground.js +0 -0
- {pyodide_mkdocs_theme-5.4.0 → pyodide_mkdocs_theme-5.4.2}/pyodide_mkdocs_theme/templates/js-per-pages/6-idePlayground-playground.js +0 -0
- {pyodide_mkdocs_theme-5.4.0 → pyodide_mkdocs_theme-5.4.2}/pyodide_mkdocs_theme/templates/js-per-pages/start-pyodide.js +0 -0
- {pyodide_mkdocs_theme-5.4.0 → pyodide_mkdocs_theme-5.4.2}/pyodide_mkdocs_theme/templates/js-scripts/overlord.js +0 -0
- {pyodide_mkdocs_theme-5.4.0 → pyodide_mkdocs_theme-5.4.2}/pyodide_mkdocs_theme/templates/js-scripts/subscriptions.js +0 -0
- {pyodide_mkdocs_theme-5.4.0 → pyodide_mkdocs_theme-5.4.2}/pyodide_mkdocs_theme/templates/main.html +0 -0
- {pyodide_mkdocs_theme-5.4.0 → pyodide_mkdocs_theme-5.4.2}/pyodide_mkdocs_theme/templates/mkdocs_theme.yml +0 -0
- {pyodide_mkdocs_theme-5.4.0 → pyodide_mkdocs_theme-5.4.2}/pyodide_mkdocs_theme/templates/partials/content.html +0 -0
- {pyodide_mkdocs_theme-5.4.0 → pyodide_mkdocs_theme-5.4.2}/pyodide_mkdocs_theme/templates/partials/copyright.html +0 -0
- {pyodide_mkdocs_theme-5.4.0 → pyodide_mkdocs_theme-5.4.2}/pyodide_mkdocs_theme/templates/partials/footer.html +0 -0
- {pyodide_mkdocs_theme-5.4.0 → pyodide_mkdocs_theme-5.4.2}/pyodide_mkdocs_theme/templates/partials/header.html +0 -0
- {pyodide_mkdocs_theme-5.4.0 → pyodide_mkdocs_theme-5.4.2}/pyodide_mkdocs_theme/templates/partials/social.html +0 -0
- {pyodide_mkdocs_theme-5.4.0 → pyodide_mkdocs_theme-5.4.2}/pyodide_mkdocs_theme/templates/pyodide-css/0-generic.css +0 -0
- {pyodide_mkdocs_theme-5.4.0 → pyodide_mkdocs_theme-5.4.2}/pyodide_mkdocs_theme/templates/pyodide-css/btns-header.css +0 -0
- {pyodide_mkdocs_theme-5.4.0 → pyodide_mkdocs_theme-5.4.2}/pyodide_mkdocs_theme/templates/pyodide-css/history.css +0 -0
- {pyodide_mkdocs_theme-5.4.0 → pyodide_mkdocs_theme-5.4.2}/pyodide_mkdocs_theme/templates/pyodide-css/hourglass.css +0 -0
- {pyodide_mkdocs_theme-5.4.0 → pyodide_mkdocs_theme-5.4.2}/pyodide_mkdocs_theme/templates/pyodide-css/ide.css +0 -0
- {pyodide_mkdocs_theme-5.4.0 → pyodide_mkdocs_theme-5.4.2}/pyodide_mkdocs_theme/templates/pyodide-css/qcm.css +0 -0
- {pyodide_mkdocs_theme-5.4.0 → pyodide_mkdocs_theme-5.4.2}/pyodide_mkdocs_theme/templates/pyodide-css/terminal.css +0 -0
- {pyodide_mkdocs_theme-5.4.0 → pyodide_mkdocs_theme-5.4.2}/pyodide_mkdocs_theme/templates/pyodide-css/testing.css +0 -0
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
Metadata-Version: 2.3
|
|
2
2
|
Name: pyodide-mkdocs-theme
|
|
3
|
-
Version: 5.4.
|
|
3
|
+
Version: 5.4.2
|
|
4
4
|
Summary: Package embedding the necessary tools to host pyodide, ACE editors, jQuery terminals in mkdocs documentations
|
|
5
5
|
License: GPL-3.0-or-later
|
|
6
6
|
Keywords: mkdocs,mkdocs-plugin,pyodide,IDE,terminal
|
|
@@ -4,7 +4,7 @@ p5.js wrapper for Pyodide-MkDocs-Theme, by Frédéric Zinelli.
|
|
|
4
4
|
Basic use:
|
|
5
5
|
|
|
6
6
|
1. Import p5 as a namespace (no wildcard imports!):
|
|
7
|
-
2. Define the setup and draw callbacks, using calls to the original
|
|
7
|
+
2. Define the setup and draw callbacks, using calls to the original p5 JS functions,
|
|
8
8
|
using`p5.functionName()` syntax.
|
|
9
9
|
3. Call `p5.run(setup, draw, preload, target="div_id")` at the end of the code (`preload`
|
|
10
10
|
is optional / `target` is also optional and defaults to the current PMT option value
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
__version__ = "5.4.2"
|
|
@@ -136,7 +136,7 @@ Replacements:{ replacements }"""
|
|
|
136
136
|
self.err_stack_closing()
|
|
137
137
|
j = self.i
|
|
138
138
|
str_repr = ''.join(self.tokens[i:j])
|
|
139
|
-
return eval(str_repr)
|
|
139
|
+
return eval(str_repr) # Using eval to automatically handle escaped chars
|
|
140
140
|
|
|
141
141
|
|
|
142
142
|
INCLUSION_PARSER = InclusionParser()
|
|
@@ -17,45 +17,42 @@ along with this program.
|
|
|
17
17
|
If not, see <https://www.gnu.org/licenses/>.
|
|
18
18
|
"""
|
|
19
19
|
|
|
20
|
+
|
|
21
|
+
|
|
22
|
+
|
|
20
23
|
"""
|
|
21
24
|
# Extractor general contracts/logic:
|
|
22
25
|
------------------------------------
|
|
23
26
|
|
|
24
27
|
|
|
25
|
-
Represent all the files associated to a runner (IDE, terminal, ...), holding the
|
|
26
|
-
to build the various sections contents.
|
|
28
|
+
Represent all the files associated to a runner (IDE, terminal, sqlide, ...), holding the
|
|
29
|
+
logic/tools to build the various sections contents.
|
|
27
30
|
|
|
28
31
|
Context/Contracts/Goals:
|
|
29
32
|
|
|
30
33
|
* An Extractor is linked to a single PMT file, with its potential "direct" dependencies
|
|
31
|
-
(aka REMs, or tests/corr files
|
|
32
|
-
|
|
33
|
-
* The PMT file can actually not exist at all! (in that case,
|
|
34
|
-
|
|
35
|
-
* A PMT file, if it exists, contains sections
|
|
36
|
-
|
|
37
|
-
|
|
38
|
-
|
|
39
|
-
|
|
40
|
-
|
|
41
|
-
|
|
42
|
-
|
|
43
|
-
|
|
44
|
-
|
|
45
|
-
|
|
46
|
-
* The contents of the files are stored in the instance, avoiding multiple HDD
|
|
47
|
-
|
|
48
|
-
|
|
49
|
-
|
|
50
|
-
|
|
51
|
-
|
|
52
|
-
|
|
53
|
-
require specific content in the parent file while they aren't actually needed for this file.
|
|
54
|
-
|
|
55
|
-
* The final/actual contents are never stored in the object: sections (inclusions) are rebuilt
|
|
56
|
-
on the fly each time they are needed (relying on the fact reading a file is longer than string
|
|
57
|
-
concatenations, and that the simplification this allows in the implementation compensate for
|
|
58
|
-
the extra computation time).
|
|
34
|
+
(aka REMs, or tests/corr files with the PM source project's setup).
|
|
35
|
+
|
|
36
|
+
* The PMT file can actually not exist at all! (in that case, exo_file is None)
|
|
37
|
+
|
|
38
|
+
* A PMT file, if it exists, contains sections delimited by tokens (comments) in the form:
|
|
39
|
+
|
|
40
|
+
{head} (PMT|PYODIDE):{section} {tail}
|
|
41
|
+
|
|
42
|
+
Where `head` and `tail` depend on the type of the file, to build a valide comment (python, sql, ...).
|
|
43
|
+
|
|
44
|
+
* An Extractor instance is cached based on the absolute/resolved path to the targeted
|
|
45
|
+
file (aka `self.exo_file`).
|
|
46
|
+
|
|
47
|
+
* The file is automatically refreshed when a local file has been modified.
|
|
48
|
+
|
|
49
|
+
* The concrete contents of the files are stored in the instance, avoiding multiple HDD
|
|
50
|
+
reads operations. Note that the content is stored "as is", meaning the inclusions are not
|
|
51
|
+
resolved yet, but the code is analyzed so that the inclusions are known upfront.
|
|
52
|
+
|
|
53
|
+
* The final/actual contents are never stored in the object: the concrete contents are
|
|
54
|
+
always built on the fly/on demand, so that all inclusions redirections can apply where
|
|
55
|
+
needed.
|
|
59
56
|
"""
|
|
60
57
|
# pylint: disable=multiple-statements, missing-function-docstring
|
|
61
58
|
|
|
@@ -121,14 +118,15 @@ class BaseFilesExtractor:
|
|
|
121
118
|
Path to the master main file (if any).
|
|
122
119
|
Also used as key cache to retrieve an Extractor instance.
|
|
123
120
|
|
|
124
|
-
WARNING: This path is absolute
|
|
125
|
-
absolute
|
|
126
|
-
when
|
|
121
|
+
WARNING: This path is absolute + resolved, whereas the runner_file for an IDE actually is
|
|
122
|
+
absolute but NOT normalized (to reduce the needs of ID arugments in macros calls,
|
|
123
|
+
when generating the html ids of the resulting elements).
|
|
127
124
|
"""
|
|
128
125
|
|
|
129
126
|
docs_file: Optional[Path] = None
|
|
130
127
|
"""
|
|
131
|
-
Same as self.exo_file, but relative to the CWD (logging and error messages purpose
|
|
128
|
+
Same as self.exo_file, but relative to the CWD (logging and error messages purpose / NOTE:
|
|
129
|
+
also used to identify an inclusion location, when resolving them).
|
|
132
130
|
"""
|
|
133
131
|
|
|
134
132
|
in_pages: Set[str] = field(default_factory=set)
|
|
@@ -546,8 +546,7 @@ class BasePmtSectionsExtractor(BasePmtSectionsTools):
|
|
|
546
546
|
Extraction of a bare file, supposedly containing only one section (implicitly / consider
|
|
547
547
|
it's a `code` section).
|
|
548
548
|
"""
|
|
549
|
-
|
|
550
|
-
self.env.outdated_PM_files.append( (log_exo, self.env.file_location()) )
|
|
549
|
+
self.env.outdated_PM_files.append( (self.docs_file, self.env.file_location()) )
|
|
551
550
|
|
|
552
551
|
sections_and_contents = (
|
|
553
552
|
(ScriptData.code, script_content),
|
|
@@ -49,13 +49,16 @@ class FileExtractorWithInclusions(BasePmtSectionsExtractor):
|
|
|
49
49
|
"""
|
|
50
50
|
Manage inclusions in the python files, following this kind of syntaxes:
|
|
51
51
|
|
|
52
|
+
## {{ [cwd]py_name:section:section }}
|
|
52
53
|
## {{ [md]py_name:section:section }}
|
|
53
54
|
## {{ [py]py_name:section:section }}
|
|
54
55
|
## {{ py_name:section:section }}
|
|
55
56
|
|
|
56
|
-
Relative paths usable:
|
|
57
|
+
Relative paths are usable:
|
|
57
58
|
## {{ ../bal/py_name:section }}
|
|
58
|
-
|
|
59
|
+
|
|
60
|
+
If no `py_name` element, extract from the current python file:
|
|
61
|
+
## {{ :section }}
|
|
59
62
|
|
|
60
63
|
Possible to change the file extractor type on the fly by giving the extension file in py_name.
|
|
61
64
|
"""
|
|
@@ -528,6 +528,12 @@ class IdeManagerMdHtmlGenerator(IdeSectionsManager):
|
|
|
528
528
|
Generic html handling (ids, buttons, ...)
|
|
529
529
|
"""
|
|
530
530
|
|
|
531
|
+
FORCE_PROJECT_ID_IN_HASH: ClassVar[bool] = False
|
|
532
|
+
"""
|
|
533
|
+
Some kind of IDEs (generated ones: IDE_tester, IDE_playground) have to use the project id,
|
|
534
|
+
otherwise their html id _will_ always collide between different projects.
|
|
535
|
+
"""
|
|
536
|
+
|
|
531
537
|
editor_name: str = ''
|
|
532
538
|
""" tail part of most html elements' ids, in the shape of 'editor_{32 bits hexadecimal}' """
|
|
533
539
|
|
|
@@ -546,7 +552,7 @@ class IdeManagerMdHtmlGenerator(IdeSectionsManager):
|
|
|
546
552
|
|
|
547
553
|
|
|
548
554
|
|
|
549
|
-
def
|
|
555
|
+
def _build_string_to_be_hashed(self):
|
|
550
556
|
"""
|
|
551
557
|
Generate hash part of the html id for the current element, in the form:
|
|
552
558
|
|
|
@@ -612,9 +618,9 @@ class IdeManagerMdHtmlGenerator(IdeSectionsManager):
|
|
|
612
618
|
page are more than enough.
|
|
613
619
|
- Consistency of the generated ids through time is more important than anything else.
|
|
614
620
|
- The ids are built using:
|
|
615
|
-
* the page url (relative to
|
|
621
|
+
* the page url (relative to the docs_dir).
|
|
616
622
|
* the macro name (so that the counts for IDEs is not affected by adding other
|
|
617
|
-
elements earlier in the page).
|
|
623
|
+
elements earlier in the page -> stability guarantee).
|
|
618
624
|
* a counter specific to the macro name and the page
|
|
619
625
|
|
|
620
626
|
|
|
@@ -627,7 +633,7 @@ class IdeManagerMdHtmlGenerator(IdeSectionsManager):
|
|
|
627
633
|
For IDE elements without associated python file:
|
|
628
634
|
|
|
629
635
|
- These are more often subject to side effects across different projects, because the
|
|
630
|
-
html ids are generated using the PAGE URL (relative to the
|
|
636
|
+
html ids are generated using the PAGE URL (relative to the docs_dir), concatenated with
|
|
631
637
|
various things that are specific to the page or the macro. So different website with the
|
|
632
638
|
same relative URL _will_ clash in the localStorage. These require the use of a project_id
|
|
633
639
|
value.
|
|
@@ -696,7 +702,7 @@ class IdeManagerMdHtmlGenerator(IdeSectionsManager):
|
|
|
696
702
|
|
|
697
703
|
need_project_id = is_ide and self.env.project_disambiguate_local_storage and project_id and (
|
|
698
704
|
not has_py_file or is_relative
|
|
699
|
-
)
|
|
705
|
+
) or self.FORCE_PROJECT_ID_IN_HASH
|
|
700
706
|
# The project_id is needed to disambiguate the html ids in the localStorage only if:
|
|
701
707
|
# 1. The element is an IDE
|
|
702
708
|
# 2. The user actually gave a value for env.project_id
|
|
@@ -721,7 +727,12 @@ class IdeManagerMdHtmlGenerator(IdeSectionsManager):
|
|
|
721
727
|
# DO NOT lstrip `to_hash`, to keep implementation consistent for users, even if it
|
|
722
728
|
# looks ugly on the home page (url is ""). Nobody but me can see it anyway... :rolleyes:
|
|
723
729
|
|
|
724
|
-
|
|
730
|
+
return to_hash
|
|
731
|
+
|
|
732
|
+
|
|
733
|
+
def generate_id(self):
|
|
734
|
+
to_hash = self._build_string_to_be_hashed()
|
|
735
|
+
hashed = self.id_to_hash(to_hash)
|
|
725
736
|
return hashed
|
|
726
737
|
|
|
727
738
|
|
|
@@ -19,7 +19,7 @@ If not, see <https://www.gnu.org/licenses/>.
|
|
|
19
19
|
|
|
20
20
|
|
|
21
21
|
from abc import ABCMeta
|
|
22
|
-
from typing import Optional
|
|
22
|
+
from typing import ClassVar, Optional
|
|
23
23
|
|
|
24
24
|
|
|
25
25
|
from .. import html_builder as Html
|
|
@@ -67,6 +67,8 @@ _BTN_MATERIAL_OVERFLOW = admonition_safe_html('''
|
|
|
67
67
|
|
|
68
68
|
class CommonGeneratedIde(IdeManager, metaclass=ABCMeta):
|
|
69
69
|
|
|
70
|
+
FORCE_PROJECT_ID_IN_HASH: ClassVar[bool] = True
|
|
71
|
+
|
|
70
72
|
@classmethod
|
|
71
73
|
def get_markdown(cls, use_mermaid:bool):
|
|
72
74
|
raise NotImplementedError()
|
|
@@ -20,17 +20,15 @@ If not, see <https://www.gnu.org/licenses/>.
|
|
|
20
20
|
|
|
21
21
|
import json
|
|
22
22
|
from dataclasses import dataclass, field
|
|
23
|
-
import re
|
|
24
23
|
from textwrap import dedent
|
|
25
|
-
from typing import Any,
|
|
24
|
+
from typing import Any, ClassVar, Dict, List, TYPE_CHECKING, NewType, Optional, Tuple, Type
|
|
26
25
|
|
|
27
26
|
|
|
28
27
|
|
|
29
28
|
|
|
30
29
|
|
|
31
|
-
from ..exceptions import PmtMacrosInvalidArgumentError
|
|
32
30
|
from .. import html_builder as Html
|
|
33
|
-
from ..tools_and_constants import HtmlClass, PageUrl, PmtPyMacrosName, PageInclusion, Prefix, Qcm,
|
|
31
|
+
from ..tools_and_constants import HtmlClass, PageUrl, PmtPyMacrosName, PageInclusion, Prefix, Qcm, ScriptData
|
|
34
32
|
from ..parsing import compress_LZW
|
|
35
33
|
from ..html_dependencies.deps_class import DepKind
|
|
36
34
|
from ..plugin_tools.test_cases import Case
|
|
@@ -121,12 +119,12 @@ class IdeTester(CommonGeneratedIde, Ide):
|
|
|
121
119
|
Build the code generating the IdeTester object. Insert the MERMAID logistic only if
|
|
122
120
|
the `mkdocs.yml` holds the custom fences code configuration.
|
|
123
121
|
"""
|
|
124
|
-
return dedent(f"""
|
|
125
|
-
|
|
122
|
+
return dedent(f"""\
|
|
123
|
+
# Testing all IDEs in the documentation {'{'} data-search-exclude {'}'}
|
|
126
124
|
|
|
127
|
-
|
|
125
|
+
<br>
|
|
128
126
|
|
|
129
|
-
|
|
127
|
+
{'{{'} IDE_tester(MAX='+', MERMAID={ use_mermaid }, TERM_H=15) {'}}'}
|
|
130
128
|
|
|
131
129
|
""")
|
|
132
130
|
|
|
@@ -19,6 +19,8 @@ If not, see <https://www.gnu.org/licenses/>.
|
|
|
19
19
|
# pylint: disable=unused-argument
|
|
20
20
|
|
|
21
21
|
from functools import wraps
|
|
22
|
+
import json
|
|
23
|
+
from pathlib import Path
|
|
22
24
|
from textwrap import dedent
|
|
23
25
|
from typing import Any, Dict, List, Tuple
|
|
24
26
|
|
|
@@ -75,6 +77,7 @@ def multi_qcm(env:MaestroMacros):
|
|
|
75
77
|
qcm_title: str = None,
|
|
76
78
|
tag_list_of_qs: str = None,
|
|
77
79
|
DEBUG: bool = None,
|
|
80
|
+
DUMP: bool = None,
|
|
78
81
|
SHOW: str = None, # sink (not needed here!)
|
|
79
82
|
ID=None, # sink (deprecated)
|
|
80
83
|
):
|
|
@@ -280,6 +283,29 @@ def multi_qcm(env:MaestroMacros):
|
|
|
280
283
|
|
|
281
284
|
qcm_close()
|
|
282
285
|
|
|
286
|
+
if DUMP:
|
|
287
|
+
json_data = {
|
|
288
|
+
'questions': questions,
|
|
289
|
+
'description': description,
|
|
290
|
+
'hide': hide,
|
|
291
|
+
'multi': multi,
|
|
292
|
+
'shuffle': shuffle,
|
|
293
|
+
'shuffle_questions': shuffle_questions,
|
|
294
|
+
'shuffle_items': shuffle_items,
|
|
295
|
+
'admo_kind': admo_kind,
|
|
296
|
+
'admo_class': admo_class,
|
|
297
|
+
'qcm_title': qcm_title,
|
|
298
|
+
'tag_list_of_qs': tag_list_of_qs,
|
|
299
|
+
'DEBUG': DEBUG,
|
|
300
|
+
}
|
|
301
|
+
|
|
302
|
+
name = env.page.url.strip('/').split('/')[-1]
|
|
303
|
+
loc = Path(env.page.file.abs_src_path).with_name(f"qcm_{ name }_{ env.compteur_qcms }.json")
|
|
304
|
+
content = json.dumps(json_data, indent=2)
|
|
305
|
+
loc.touch(exist_ok=True)
|
|
306
|
+
loc.write_text(content, encoding='utf-8')
|
|
307
|
+
|
|
308
|
+
|
|
283
309
|
|
|
284
310
|
output = '\n'.join(admonition_lst)
|
|
285
311
|
output = f'\n\n{ output }\n\n' # Enforce empty spaces around in the markdown admonition
|
|
@@ -148,6 +148,7 @@ class BaseMaestro(BasePlugin[PyodideMacrosConfig]):
|
|
|
148
148
|
args_figure_p5_buttons: str = ConfigExtractor('config.args.figure', prop='p5_buttons')
|
|
149
149
|
|
|
150
150
|
args_multi_qcm_DEBUG: bool = ConfigExtractor('config.args.multi_qcm', prop='DEBUG')
|
|
151
|
+
args_multi_qcm_DUMP: bool = ConfigExtractor('config.args.multi_qcm', prop='DUMP')
|
|
151
152
|
args_multi_qcm_SHOW: str = ConfigExtractor('config.args.multi_qcm', prop='SHOW')
|
|
152
153
|
args_multi_qcm_admo_class: str = ConfigExtractor('config.args.multi_qcm', prop='admo_class')
|
|
153
154
|
args_multi_qcm_admo_kind: str = ConfigExtractor('config.args.multi_qcm', prop='admo_kind')
|
|
@@ -76,7 +76,7 @@ class MaestroMacroManager(MaestroIndent):
|
|
|
76
76
|
"""
|
|
77
77
|
|
|
78
78
|
|
|
79
|
-
compteur_qcms: int =
|
|
79
|
+
compteur_qcms: int = 0
|
|
80
80
|
""" Number of qcm or qcs in the docs """
|
|
81
81
|
|
|
82
82
|
_editors_ids: Set[str]
|
|
@@ -102,7 +102,9 @@ class MaestroMacroManager(MaestroIndent):
|
|
|
102
102
|
|
|
103
103
|
|
|
104
104
|
def get_qcm_id(self):
|
|
105
|
-
|
|
105
|
+
id = f"{ Prefix.py_mk_qcm_id_ }{ self.compteur_qcms :0>5}"
|
|
106
|
+
self.compteur_qcms += 1
|
|
107
|
+
return id
|
|
106
108
|
|
|
107
109
|
|
|
108
110
|
def is_unique_then_register(self, id_ide:str, no_id_path:str, ID:Optional[str]) -> bool :
|
|
@@ -1300,6 +1300,13 @@ MULTI_QCM = MultiQcmConfigSrc.with_default_docs(
|
|
|
1300
1300
|
""",
|
|
1301
1301
|
yaml_desc="Display macro related infos in the terminal.",
|
|
1302
1302
|
),
|
|
1303
|
+
ConfigOptionSrc(
|
|
1304
|
+
'DUMP', bool, default=False,
|
|
1305
|
+
docs="""
|
|
1306
|
+
Crée un fichier json avec les données du qcm en cours dans le dossier de la page en cours.
|
|
1307
|
+
""",
|
|
1308
|
+
yaml_desc="Dump the MCQ content as json.",
|
|
1309
|
+
),
|
|
1303
1310
|
))
|
|
1304
1311
|
|
|
1305
1312
|
|
|
@@ -877,7 +877,7 @@ TESTING_CONFIG = SubConfigSrc(
|
|
|
877
877
|
extra_docs = f"""
|
|
878
878
|
Définit si la page de tests des IDEs doit être générée et de quelle façon.
|
|
879
879
|
{'{{'}ul_li([
|
|
880
|
-
"`#!py '{PageInclusion.none}'`
|
|
880
|
+
"`#!py '{PageInclusion.none}'` : la page de tests n'est pas générée.",
|
|
881
881
|
"`#!py '{PageInclusion.serve}'` : la page de tests est générée pendant `mkdocs serve`,
|
|
882
882
|
et est ajoutée automatiquement à la navigation.",
|
|
883
883
|
"`#!py '{PageInclusion.site}'` : La page de tests est ajoutée au site construit,
|
|
@@ -533,6 +533,7 @@ class MacroArgsDataMulti_qcm(ObjectWithDataGetters):
|
|
|
533
533
|
tag_list_of_qs: str = DataGetter()
|
|
534
534
|
DEBUG: bool = DataGetter()
|
|
535
535
|
SHOW: str = DataGetter()
|
|
536
|
+
DUMP: bool = DataGetter()
|
|
536
537
|
|
|
537
538
|
class MacroDataMulti_qcm(MacroData):
|
|
538
539
|
""" Runtime data object for the multi_qcm macro. """
|
|
@@ -1086,18 +1086,24 @@ export function getIdeDataFromStorage(editorId, ide=null){
|
|
|
1086
1086
|
code = obj.code ?? ""
|
|
1087
1087
|
}catch(_){}
|
|
1088
1088
|
|
|
1089
|
-
|
|
1090
|
-
|
|
1089
|
+
// If the update to 5.4.0 has occured before the `project.id` was filled by the author,
|
|
1090
|
+
// users might have the localStorage updated with a `project: null` entry. This is not to
|
|
1091
|
+
// be considered "up to date", to avoid basillions of warning for the users (1 per IDE!).
|
|
1092
|
+
const pmt_540_ok = (obj.project??null)!==null
|
|
1093
|
+
const upToDate = PMT_LOCAL_STORAGE_KEYS_WRITE.every(k=> k in obj) && pmt_540_ok
|
|
1094
|
+
const storage = upToDate ? obj : freshStore(code, obj, ide)
|
|
1091
1095
|
|
|
1092
1096
|
if(ide && !CONFIG.projectNoJsWarning && storage.project !== CONFIG.projectId){
|
|
1093
1097
|
const msg = [
|
|
1094
1098
|
CONFIG.lang.storageIdCollision.msg,
|
|
1095
1099
|
'',
|
|
1100
|
+
`Project id: "${ CONFIG.projectId }"`,
|
|
1096
1101
|
`Page: ${ document.location }`,
|
|
1097
1102
|
`py_name: ${ ide.pyName }`,
|
|
1098
|
-
`Project id: "${ CONFIG.projectId }"`,
|
|
1099
|
-
`Collision id: "${ storage.project }"`,
|
|
1100
1103
|
`(id: ${ editorId })`,
|
|
1104
|
+
'------------------------\nCollision source:',
|
|
1105
|
+
`Project id: "${ storage.project }"`,
|
|
1106
|
+
`py_name: ${ storage.name }`,
|
|
1101
1107
|
]
|
|
1102
1108
|
window.alert(msg.join('\n'))
|
|
1103
1109
|
}
|
|
@@ -151,7 +151,7 @@ class QCM {
|
|
|
151
151
|
perennialMathJaxUpdate()
|
|
152
152
|
renderMermaidGraphs()
|
|
153
153
|
}
|
|
154
|
-
const [good,all] = this.questions.reduce( (track,quest)=>quest._validate(...track), [0,0])
|
|
154
|
+
const [good,all] = this.questions.reduce( (track,quest)=>quest._validate(this.reveal, ...track), [0,0])
|
|
155
155
|
this.updateCounter(`${good}/${all}`)
|
|
156
156
|
this.locked = true
|
|
157
157
|
}
|
|
@@ -266,21 +266,25 @@ class Question {
|
|
|
266
266
|
}
|
|
267
267
|
}
|
|
268
268
|
|
|
269
|
-
_validate(goods, all){
|
|
269
|
+
_validate(revealed, goods, all){
|
|
270
270
|
const values = Object.values(this.byId)
|
|
271
271
|
|
|
272
272
|
/*
|
|
273
273
|
// Count per item:
|
|
274
|
-
|
|
275
|
-
|
|
274
|
+
const localGood = values.reduce( (s,o)=>s+(o.checked === o.correct), 0)
|
|
275
|
+
const localAll = values.length
|
|
276
276
|
|
|
277
277
|
/*/
|
|
278
278
|
// Count per question:
|
|
279
|
-
|
|
280
|
-
|
|
279
|
+
const localGood = values.every( o => o.checked === o.correct )
|
|
280
|
+
const localAll = true
|
|
281
281
|
//*/
|
|
282
282
|
|
|
283
|
-
|
|
283
|
+
if(revealed && this.comment && localGood===localAll){
|
|
284
|
+
this.comment.prop('open', true)
|
|
285
|
+
}
|
|
286
|
+
|
|
287
|
+
return [goods+localGood, all+localAll]
|
|
284
288
|
}
|
|
285
289
|
|
|
286
290
|
_reveal(){
|
|
@@ -312,7 +316,7 @@ class Question {
|
|
|
312
316
|
|
|
313
317
|
|
|
314
318
|
resetAllItems(always=false){
|
|
315
|
-
if(this.comment) this.comment.detach()
|
|
319
|
+
if(this.comment) this.comment.detach().prop('open', false)
|
|
316
320
|
Object.entries(this.byId).forEach(([itemId,it])=>{
|
|
317
321
|
if(always || it.checked) this.updateItem(itemId, false)
|
|
318
322
|
})
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
[project]
|
|
2
2
|
name = "pyodide-mkdocs-theme"
|
|
3
|
-
version = "5.4.
|
|
3
|
+
version = "5.4.2"
|
|
4
4
|
requires-python = ">=3.9, <4.0"
|
|
5
5
|
license = { text = "GPL-3.0-or-later" }
|
|
6
6
|
description = "Package embedding the necessary tools to host pyodide, ACE editors, jQuery terminals in mkdocs documentations"
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
__version__ = "5.4.0"
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{pyodide_mkdocs_theme-5.4.0 → pyodide_mkdocs_theme-5.4.2}/pyodide_mkdocs_theme/basthon_p5_to_pmt.py
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{pyodide_mkdocs_theme-5.4.0 → pyodide_mkdocs_theme-5.4.2}/pyodide_mkdocs_theme/scripts/de/mkdocs.yml
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
{pyodide_mkdocs_theme-5.4.0 → pyodide_mkdocs_theme-5.4.2}/pyodide_mkdocs_theme/scripts/en/mkdocs.yml
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
{pyodide_mkdocs_theme-5.4.0 → pyodide_mkdocs_theme-5.4.2}/pyodide_mkdocs_theme/scripts/fr/mkdocs.yml
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{pyodide_mkdocs_theme-5.4.0 → pyodide_mkdocs_theme-5.4.2}/pyodide_mkdocs_theme/templates/README.md
RENAMED
|
File without changes
|
{pyodide_mkdocs_theme-5.4.0 → pyodide_mkdocs_theme-5.4.2}/pyodide_mkdocs_theme/templates/__init__.py
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{pyodide_mkdocs_theme-5.4.0 → pyodide_mkdocs_theme-5.4.2}/pyodide_mkdocs_theme/templates/main.html
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|