pyodide-mkdocs-theme 5.3.6__tar.gz → 5.4.0__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.3.6 → pyodide_mkdocs_theme-5.4.0}/PKG-INFO +1 -1
- {pyodide_mkdocs_theme-5.3.6 → pyodide_mkdocs_theme-5.4.0}/pyodide_mkdocs_theme/__main__.py +9 -6
- pyodide_mkdocs_theme-5.4.0/pyodide_mkdocs_theme/__version__.py +1 -0
- {pyodide_mkdocs_theme-5.3.6 → pyodide_mkdocs_theme-5.4.0}/pyodide_mkdocs_theme/pyodide_macros/macros/figure.py +0 -3
- {pyodide_mkdocs_theme-5.3.6 → pyodide_mkdocs_theme-5.4.0}/pyodide_mkdocs_theme/pyodide_macros/macros/ide_manager.py +155 -62
- {pyodide_mkdocs_theme-5.3.6 → pyodide_mkdocs_theme-5.4.0}/pyodide_mkdocs_theme/pyodide_macros/macros/qcm.py +0 -2
- {pyodide_mkdocs_theme-5.3.6 → pyodide_mkdocs_theme-5.4.0}/pyodide_mkdocs_theme/pyodide_macros/messages/de_lang.py +162 -126
- {pyodide_mkdocs_theme-5.3.6 → pyodide_mkdocs_theme-5.4.0}/pyodide_mkdocs_theme/pyodide_macros/messages/en_lang.py +162 -126
- {pyodide_mkdocs_theme-5.3.6 → pyodide_mkdocs_theme-5.4.0}/pyodide_mkdocs_theme/pyodide_macros/messages/fr_lang.py +166 -128
- {pyodide_mkdocs_theme-5.3.6 → pyodide_mkdocs_theme-5.4.0}/pyodide_mkdocs_theme/pyodide_macros/messages/proxy.py +1 -1
- {pyodide_mkdocs_theme-5.3.6 → pyodide_mkdocs_theme-5.4.0}/pyodide_mkdocs_theme/pyodide_macros/parsing.py +0 -2
- {pyodide_mkdocs_theme-5.3.6 → pyodide_mkdocs_theme-5.4.0}/pyodide_mkdocs_theme/pyodide_macros/plugin/maestro_base.py +14 -18
- pyodide_mkdocs_theme-5.4.0/pyodide_mkdocs_theme/pyodide_macros/plugin/maestro_contracts.py +484 -0
- {pyodide_mkdocs_theme-5.3.6 → pyodide_mkdocs_theme-5.4.0}/pyodide_mkdocs_theme/pyodide_macros/plugin/maestro_templates.py +13 -12
- {pyodide_mkdocs_theme-5.3.6 → pyodide_mkdocs_theme-5.4.0}/pyodide_mkdocs_theme/pyodide_macros/plugin_config/definitions/macros_configs.py +7 -3
- {pyodide_mkdocs_theme-5.3.6 → pyodide_mkdocs_theme-5.4.0}/pyodide_mkdocs_theme/pyodide_macros/plugin_config/definitions/plugin_config.py +5 -4
- {pyodide_mkdocs_theme-5.3.6 → pyodide_mkdocs_theme-5.4.0}/pyodide_mkdocs_theme/pyodide_macros/plugin_config/definitions/sub_configs.py +212 -37
- {pyodide_mkdocs_theme-5.3.6 → pyodide_mkdocs_theme-5.4.0}/pyodide_mkdocs_theme/pyodide_macros/plugin_config/plugin_config_src.py +3 -0
- {pyodide_mkdocs_theme-5.3.6 → pyodide_mkdocs_theme-5.4.0}/pyodide_mkdocs_theme/pyodide_macros/tools_and_constants.py +73 -5
- {pyodide_mkdocs_theme-5.3.6 → pyodide_mkdocs_theme-5.4.0}/pyodide_mkdocs_theme/scripts/de/mkdocs.yml +12 -6
- {pyodide_mkdocs_theme-5.3.6 → pyodide_mkdocs_theme-5.4.0}/pyodide_mkdocs_theme/scripts/en/mkdocs.yml +12 -6
- {pyodide_mkdocs_theme-5.3.6 → pyodide_mkdocs_theme-5.4.0}/pyodide_mkdocs_theme/scripts/fr/mkdocs.yml +12 -6
- pyodide_mkdocs_theme-5.4.0/pyodide_mkdocs_theme/scripts/models/main.py +26 -0
- {pyodide_mkdocs_theme-5.3.6 → pyodide_mkdocs_theme-5.4.0}/pyodide_mkdocs_theme/scripts/models/mkdocs.yml +12 -6
- {pyodide_mkdocs_theme-5.3.6 → pyodide_mkdocs_theme-5.4.0}/pyodide_mkdocs_theme/templates/js-libs/0-config.js +58 -50
- {pyodide_mkdocs_theme-5.3.6 → pyodide_mkdocs_theme-5.4.0}/pyodide_mkdocs_theme/templates/js-libs/functools.js +39 -0
- {pyodide_mkdocs_theme-5.3.6 → pyodide_mkdocs_theme-5.4.0}/pyodide_mkdocs_theme/templates/js-libs/process_and_gui.js +32 -18
- {pyodide_mkdocs_theme-5.3.6 → pyodide_mkdocs_theme-5.4.0}/pyodide_mkdocs_theme/templates/js-per-pages/4-ideRunner-ide.js +2 -2
- {pyodide_mkdocs_theme-5.3.6 → pyodide_mkdocs_theme-5.4.0}/pyproject.toml +7 -7
- pyodide_mkdocs_theme-5.3.6/pyodide_mkdocs_theme/__version__.py +0 -1
- pyodide_mkdocs_theme-5.3.6/pyodide_mkdocs_theme/pyodide_macros/plugin/maestro_contracts.py +0 -251
- pyodide_mkdocs_theme-5.3.6/pyodide_mkdocs_theme/scripts/de/main.py +0 -141
- pyodide_mkdocs_theme-5.3.6/pyodide_mkdocs_theme/scripts/en/main.py +0 -140
- pyodide_mkdocs_theme-5.3.6/pyodide_mkdocs_theme/scripts/fr/main.py +0 -144
- pyodide_mkdocs_theme-5.3.6/pyodide_mkdocs_theme/scripts/models/main.py +0 -43
- {pyodide_mkdocs_theme-5.3.6 → pyodide_mkdocs_theme-5.4.0}/LICENSE +0 -0
- {pyodide_mkdocs_theme-5.3.6 → pyodide_mkdocs_theme-5.4.0}/README.md +0 -0
- {pyodide_mkdocs_theme-5.3.6 → pyodide_mkdocs_theme-5.4.0}/pyodide_mkdocs_theme/PMT_tools/p5/__init__.py +0 -0
- {pyodide_mkdocs_theme-5.3.6 → pyodide_mkdocs_theme-5.4.0}/pyodide_mkdocs_theme/PMT_tools/vis/__init__.py +0 -0
- {pyodide_mkdocs_theme-5.3.6 → pyodide_mkdocs_theme-5.4.0}/pyodide_mkdocs_theme/PMT_tools/vis_network/__init__.py +0 -0
- {pyodide_mkdocs_theme-5.3.6 → pyodide_mkdocs_theme-5.4.0}/pyodide_mkdocs_theme/__init__.py +0 -0
- {pyodide_mkdocs_theme-5.3.6 → pyodide_mkdocs_theme-5.4.0}/pyodide_mkdocs_theme/basthon_p5_to_pmt.py +0 -0
- {pyodide_mkdocs_theme-5.3.6 → pyodide_mkdocs_theme-5.4.0}/pyodide_mkdocs_theme/pyodide_macros/__init__.py +0 -0
- {pyodide_mkdocs_theme-5.3.6 → pyodide_mkdocs_theme-5.4.0}/pyodide_mkdocs_theme/pyodide_macros/exceptions.py +0 -0
- {pyodide_mkdocs_theme-5.3.6 → pyodide_mkdocs_theme-5.4.0}/pyodide_mkdocs_theme/pyodide_macros/files_extractors/__init__.py +0 -0
- {pyodide_mkdocs_theme-5.3.6 → pyodide_mkdocs_theme-5.4.0}/pyodide_mkdocs_theme/pyodide_macros/files_extractors/_inclusions_tools.py +0 -0
- {pyodide_mkdocs_theme-5.3.6 → pyodide_mkdocs_theme-5.4.0}/pyodide_mkdocs_theme/pyodide_macros/files_extractors/base0_extractors.py +0 -0
- {pyodide_mkdocs_theme-5.3.6 → pyodide_mkdocs_theme-5.4.0}/pyodide_mkdocs_theme/pyodide_macros/files_extractors/base1_contents_extractor.py +0 -0
- {pyodide_mkdocs_theme-5.3.6 → pyodide_mkdocs_theme-5.4.0}/pyodide_mkdocs_theme/pyodide_macros/files_extractors/base2_inclusions.py +0 -0
- {pyodide_mkdocs_theme-5.3.6 → pyodide_mkdocs_theme-5.4.0}/pyodide_mkdocs_theme/pyodide_macros/files_extractors/base3_generic_extractors.py +0 -0
- {pyodide_mkdocs_theme-5.3.6 → pyodide_mkdocs_theme-5.4.0}/pyodide_mkdocs_theme/pyodide_macros/files_extractors/concrete_extractors.py +0 -0
- {pyodide_mkdocs_theme-5.3.6 → pyodide_mkdocs_theme-5.4.0}/pyodide_mkdocs_theme/pyodide_macros/html_builder/__init__.py +0 -0
- {pyodide_mkdocs_theme-5.3.6 → pyodide_mkdocs_theme-5.4.0}/pyodide_mkdocs_theme/pyodide_macros/html_builder/_html_builder.py +0 -0
- {pyodide_mkdocs_theme-5.3.6 → pyodide_mkdocs_theme-5.4.0}/pyodide_mkdocs_theme/pyodide_macros/html_dependencies/__init__.py +0 -0
- {pyodide_mkdocs_theme-5.3.6 → pyodide_mkdocs_theme-5.4.0}/pyodide_mkdocs_theme/pyodide_macros/html_dependencies/deps.py +0 -0
- {pyodide_mkdocs_theme-5.3.6 → pyodide_mkdocs_theme-5.4.0}/pyodide_mkdocs_theme/pyodide_macros/html_dependencies/deps_class.py +0 -0
- {pyodide_mkdocs_theme-5.3.6 → pyodide_mkdocs_theme-5.4.0}/pyodide_mkdocs_theme/pyodide_macros/indent_parser.py +0 -0
- {pyodide_mkdocs_theme-5.3.6 → pyodide_mkdocs_theme-5.4.0}/pyodide_mkdocs_theme/pyodide_macros/macros/IDEs.py +0 -0
- {pyodide_mkdocs_theme-5.3.6 → pyodide_mkdocs_theme-5.4.0}/pyodide_mkdocs_theme/pyodide_macros/macros/__init__.py +0 -0
- {pyodide_mkdocs_theme-5.3.6 → pyodide_mkdocs_theme-5.4.0}/pyodide_mkdocs_theme/pyodide_macros/macros/ide_ide.py +0 -0
- {pyodide_mkdocs_theme-5.3.6 → pyodide_mkdocs_theme-5.4.0}/pyodide_mkdocs_theme/pyodide_macros/macros/ide_playground.py +0 -0
- {pyodide_mkdocs_theme-5.3.6 → pyodide_mkdocs_theme-5.4.0}/pyodide_mkdocs_theme/pyodide_macros/macros/ide_py_btn.py +0 -0
- {pyodide_mkdocs_theme-5.3.6 → pyodide_mkdocs_theme-5.4.0}/pyodide_mkdocs_theme/pyodide_macros/macros/ide_run_macro.py +0 -0
- {pyodide_mkdocs_theme-5.3.6 → pyodide_mkdocs_theme-5.4.0}/pyodide_mkdocs_theme/pyodide_macros/macros/ide_term_ide.py +0 -0
- {pyodide_mkdocs_theme-5.3.6 → pyodide_mkdocs_theme-5.4.0}/pyodide_mkdocs_theme/pyodide_macros/macros/ide_terminal.py +0 -0
- {pyodide_mkdocs_theme-5.3.6 → pyodide_mkdocs_theme-5.4.0}/pyodide_mkdocs_theme/pyodide_macros/macros/ide_tester.py +0 -0
- {pyodide_mkdocs_theme-5.3.6 → pyodide_mkdocs_theme-5.4.0}/pyodide_mkdocs_theme/pyodide_macros/macros/py_script.py +0 -0
- {pyodide_mkdocs_theme-5.3.6 → pyodide_mkdocs_theme-5.4.0}/pyodide_mkdocs_theme/pyodide_macros/messages/__init__.py +0 -0
- {pyodide_mkdocs_theme-5.3.6 → pyodide_mkdocs_theme-5.4.0}/pyodide_mkdocs_theme/pyodide_macros/messages/classes.py +0 -0
- {pyodide_mkdocs_theme-5.3.6 → pyodide_mkdocs_theme-5.4.0}/pyodide_mkdocs_theme/pyodide_macros/paths_utils.py +0 -0
- {pyodide_mkdocs_theme-5.3.6 → pyodide_mkdocs_theme-5.4.0}/pyodide_mkdocs_theme/pyodide_macros/plugin/__init__.py +0 -0
- {pyodide_mkdocs_theme-5.3.6 → pyodide_mkdocs_theme-5.4.0}/pyodide_mkdocs_theme/pyodide_macros/plugin/config.py +0 -0
- {pyodide_mkdocs_theme-5.3.6 → pyodide_mkdocs_theme-5.4.0}/pyodide_mkdocs_theme/pyodide_macros/plugin/maestro_files.py +0 -0
- {pyodide_mkdocs_theme-5.3.6 → pyodide_mkdocs_theme-5.4.0}/pyodide_mkdocs_theme/pyodide_macros/plugin/maestro_indent.py +0 -0
- {pyodide_mkdocs_theme-5.3.6 → pyodide_mkdocs_theme-5.4.0}/pyodide_mkdocs_theme/pyodide_macros/plugin/maestro_macros.py +0 -0
- {pyodide_mkdocs_theme-5.3.6 → pyodide_mkdocs_theme-5.4.0}/pyodide_mkdocs_theme/pyodide_macros/plugin/maestro_meta.py +0 -0
- {pyodide_mkdocs_theme-5.3.6 → pyodide_mkdocs_theme-5.4.0}/pyodide_mkdocs_theme/pyodide_macros/plugin/pyodide_macros_plugin.py +0 -0
- {pyodide_mkdocs_theme-5.3.6 → pyodide_mkdocs_theme-5.4.0}/pyodide_mkdocs_theme/pyodide_macros/plugin_config/__init__.py +0 -0
- {pyodide_mkdocs_theme-5.3.6 → pyodide_mkdocs_theme-5.4.0}/pyodide_mkdocs_theme/pyodide_macros/plugin_config/_string_tools_and_constants.py +0 -0
- {pyodide_mkdocs_theme-5.3.6 → pyodide_mkdocs_theme-5.4.0}/pyodide_mkdocs_theme/pyodide_macros/plugin_config/common_tree_src.py +0 -0
- {pyodide_mkdocs_theme-5.3.6 → pyodide_mkdocs_theme-5.4.0}/pyodide_mkdocs_theme/pyodide_macros/plugin_config/config_option_src.py +0 -0
- {pyodide_mkdocs_theme-5.3.6 → pyodide_mkdocs_theme-5.4.0}/pyodide_mkdocs_theme/pyodide_macros/plugin_config/definitions/__init__.py +0 -0
- {pyodide_mkdocs_theme-5.3.6 → pyodide_mkdocs_theme-5.4.0}/pyodide_mkdocs_theme/pyodide_macros/plugin_config/definitions/docs_dirs_config.py +0 -0
- {pyodide_mkdocs_theme-5.3.6 → pyodide_mkdocs_theme-5.4.0}/pyodide_mkdocs_theme/pyodide_macros/plugin_config/dumpers.py +0 -0
- {pyodide_mkdocs_theme-5.3.6 → pyodide_mkdocs_theme-5.4.0}/pyodide_mkdocs_theme/pyodide_macros/plugin_config/lang_src.py +0 -0
- {pyodide_mkdocs_theme-5.3.6 → pyodide_mkdocs_theme-5.4.0}/pyodide_mkdocs_theme/pyodide_macros/plugin_config/macro_config_src.py +0 -0
- {pyodide_mkdocs_theme-5.3.6 → pyodide_mkdocs_theme-5.4.0}/pyodide_mkdocs_theme/pyodide_macros/plugin_config/sub_config_src.py +0 -0
- {pyodide_mkdocs_theme-5.3.6 → pyodide_mkdocs_theme-5.4.0}/pyodide_mkdocs_theme/pyodide_macros/plugin_tools/__init__.py +0 -0
- {pyodide_mkdocs_theme-5.3.6 → pyodide_mkdocs_theme-5.4.0}/pyodide_mkdocs_theme/pyodide_macros/plugin_tools/macros_data.py +0 -0
- {pyodide_mkdocs_theme-5.3.6 → pyodide_mkdocs_theme-5.4.0}/pyodide_mkdocs_theme/pyodide_macros/plugin_tools/maestro_tools.py +0 -0
- {pyodide_mkdocs_theme-5.3.6 → pyodide_mkdocs_theme-5.4.0}/pyodide_mkdocs_theme/pyodide_macros/plugin_tools/options_alterations.py +0 -0
- {pyodide_mkdocs_theme-5.3.6 → pyodide_mkdocs_theme-5.4.0}/pyodide_mkdocs_theme/pyodide_macros/plugin_tools/pages_and_macros_py_configs.py +0 -0
- {pyodide_mkdocs_theme-5.3.6 → pyodide_mkdocs_theme-5.4.0}/pyodide_mkdocs_theme/pyodide_macros/plugin_tools/test_cases.py +0 -0
- {pyodide_mkdocs_theme-5.3.6 → pyodide_mkdocs_theme-5.4.0}/pyodide_mkdocs_theme/pyodide_macros/pyodide_logger.py +0 -0
- {pyodide_mkdocs_theme-5.3.6 → pyodide_mkdocs_theme-5.4.0}/pyodide_mkdocs_theme/scripts/de/docs/exo.py +0 -0
- {pyodide_mkdocs_theme-5.3.6 → pyodide_mkdocs_theme-5.4.0}/pyodide_mkdocs_theme/scripts/de/docs/index.md +0 -0
- {pyodide_mkdocs_theme-5.3.6 → pyodide_mkdocs_theme-5.4.0}/pyodide_mkdocs_theme/scripts/en/docs/exo.py +0 -0
- {pyodide_mkdocs_theme-5.3.6 → pyodide_mkdocs_theme-5.4.0}/pyodide_mkdocs_theme/scripts/en/docs/index.md +0 -0
- {pyodide_mkdocs_theme-5.3.6 → pyodide_mkdocs_theme-5.4.0}/pyodide_mkdocs_theme/scripts/fr/docs/exo.py +0 -0
- {pyodide_mkdocs_theme-5.3.6 → pyodide_mkdocs_theme-5.4.0}/pyodide_mkdocs_theme/scripts/fr/docs/index.md +0 -0
- {pyodide_mkdocs_theme-5.3.6 → pyodide_mkdocs_theme-5.4.0}/pyodide_mkdocs_theme/scripts/models/.gitignore +0 -0
- {pyodide_mkdocs_theme-5.3.6 → pyodide_mkdocs_theme-5.4.0}/pyodide_mkdocs_theme/scripts/models/pyodide_plot.py +0 -0
- {pyodide_mkdocs_theme-5.3.6 → pyodide_mkdocs_theme-5.4.0}/pyodide_mkdocs_theme/scripts/models/requirements.txt +0 -0
- {pyodide_mkdocs_theme-5.3.6 → pyodide_mkdocs_theme-5.4.0}/pyodide_mkdocs_theme/scripts/models/toolbox.py +0 -0
- {pyodide_mkdocs_theme-5.3.6 → pyodide_mkdocs_theme-5.4.0}/pyodide_mkdocs_theme/templates/README.md +0 -0
- {pyodide_mkdocs_theme-5.3.6 → pyodide_mkdocs_theme-5.4.0}/pyodide_mkdocs_theme/templates/__init__.py +0 -0
- {pyodide_mkdocs_theme-5.3.6 → pyodide_mkdocs_theme-5.4.0}/pyodide_mkdocs_theme/templates/assets/images/.qcm-circle.svg +0 -0
- {pyodide_mkdocs_theme-5.3.6 → pyodide_mkdocs_theme-5.4.0}/pyodide_mkdocs_theme/templates/assets/images/icons8-check-64.png +0 -0
- {pyodide_mkdocs_theme-5.3.6 → pyodide_mkdocs_theme-5.4.0}/pyodide_mkdocs_theme/templates/assets/images/icons8-download-64.png +0 -0
- {pyodide_mkdocs_theme-5.3.6 → pyodide_mkdocs_theme-5.4.0}/pyodide_mkdocs_theme/templates/assets/images/icons8-play-64.png +0 -0
- {pyodide_mkdocs_theme-5.3.6 → pyodide_mkdocs_theme-5.4.0}/pyodide_mkdocs_theme/templates/assets/images/icons8-restart-64.png +0 -0
- {pyodide_mkdocs_theme-5.3.6 → pyodide_mkdocs_theme-5.4.0}/pyodide_mkdocs_theme/templates/assets/images/icons8-save-64.png +0 -0
- {pyodide_mkdocs_theme-5.3.6 → pyodide_mkdocs_theme-5.4.0}/pyodide_mkdocs_theme/templates/assets/images/icons8-step-64.png +0 -0
- {pyodide_mkdocs_theme-5.3.6 → pyodide_mkdocs_theme-5.4.0}/pyodide_mkdocs_theme/templates/assets/images/icons8-stop-64.png +0 -0
- {pyodide_mkdocs_theme-5.3.6 → pyodide_mkdocs_theme-5.4.0}/pyodide_mkdocs_theme/templates/assets/images/icons8-upload-64.png +0 -0
- {pyodide_mkdocs_theme-5.3.6 → pyodide_mkdocs_theme-5.4.0}/pyodide_mkdocs_theme/templates/assets/images/icons8-zip-64.png +0 -0
- {pyodide_mkdocs_theme-5.3.6 → pyodide_mkdocs_theme-5.4.0}/pyodide_mkdocs_theme/templates/base_pmt.html +0 -0
- {pyodide_mkdocs_theme-5.3.6 → pyodide_mkdocs_theme-5.4.0}/pyodide_mkdocs_theme/templates/js-libs/0-legacy-subscriber.js +0 -0
- {pyodide_mkdocs_theme-5.3.6 → pyodide_mkdocs_theme-5.4.0}/pyodide_mkdocs_theme/templates/js-libs/jsLogger.js +0 -0
- {pyodide_mkdocs_theme-5.3.6 → pyodide_mkdocs_theme-5.4.0}/pyodide_mkdocs_theme/templates/js-libs/mathjax-libs.js +0 -0
- {pyodide_mkdocs_theme-5.3.6 → pyodide_mkdocs_theme-5.4.0}/pyodide_mkdocs_theme/templates/js-per-pages/0-generic-python-snippets-pyodide.js +0 -0
- {pyodide_mkdocs_theme-5.3.6 → pyodide_mkdocs_theme-5.4.0}/pyodide_mkdocs_theme/templates/js-per-pages/1-error_logs-pyodide.js +0 -0
- {pyodide_mkdocs_theme-5.3.6 → pyodide_mkdocs_theme-5.4.0}/pyodide_mkdocs_theme/templates/js-per-pages/1-packagesInstaller-install-pyodide.js +0 -0
- {pyodide_mkdocs_theme-5.3.6 → pyodide_mkdocs_theme-5.4.0}/pyodide_mkdocs_theme/templates/js-per-pages/1-runtimeManager-runtime-pyodide.js +0 -0
- {pyodide_mkdocs_theme-5.3.6 → pyodide_mkdocs_theme-5.4.0}/pyodide_mkdocs_theme/templates/js-per-pages/2-0-runnersManager-runners.js +0 -0
- {pyodide_mkdocs_theme-5.3.6 → pyodide_mkdocs_theme-5.4.0}/pyodide_mkdocs_theme/templates/js-per-pages/2-pyodideSectionsRunner-runner-pyodide.js +0 -0
- {pyodide_mkdocs_theme-5.3.6 → pyodide_mkdocs_theme-5.4.0}/pyodide_mkdocs_theme/templates/js-per-pages/3-btnRunner-py_btn.js +0 -0
- {pyodide_mkdocs_theme-5.3.6 → pyodide_mkdocs_theme-5.4.0}/pyodide_mkdocs_theme/templates/js-per-pages/3-terminalRunner-term.js +0 -0
- {pyodide_mkdocs_theme-5.3.6 → pyodide_mkdocs_theme-5.4.0}/pyodide_mkdocs_theme/templates/js-per-pages/4-0-idesManager-ide.js +0 -0
- {pyodide_mkdocs_theme-5.3.6 → pyodide_mkdocs_theme-5.4.0}/pyodide_mkdocs_theme/templates/js-per-pages/4-ideLogistic-ide.js +0 -0
- {pyodide_mkdocs_theme-5.3.6 → pyodide_mkdocs_theme-5.4.0}/pyodide_mkdocs_theme/templates/js-per-pages/5-ideTester-ides_test.js +0 -0
- {pyodide_mkdocs_theme-5.3.6 → pyodide_mkdocs_theme-5.4.0}/pyodide_mkdocs_theme/templates/js-per-pages/6-2-init-playground.js +0 -0
- {pyodide_mkdocs_theme-5.3.6 → pyodide_mkdocs_theme-5.4.0}/pyodide_mkdocs_theme/templates/js-per-pages/6-idePlayground-playground.js +0 -0
- {pyodide_mkdocs_theme-5.3.6 → pyodide_mkdocs_theme-5.4.0}/pyodide_mkdocs_theme/templates/js-per-pages/qcms-qcm.js +0 -0
- {pyodide_mkdocs_theme-5.3.6 → pyodide_mkdocs_theme-5.4.0}/pyodide_mkdocs_theme/templates/js-per-pages/start-pyodide.js +0 -0
- {pyodide_mkdocs_theme-5.3.6 → pyodide_mkdocs_theme-5.4.0}/pyodide_mkdocs_theme/templates/js-scripts/overlord.js +0 -0
- {pyodide_mkdocs_theme-5.3.6 → pyodide_mkdocs_theme-5.4.0}/pyodide_mkdocs_theme/templates/js-scripts/subscriptions.js +0 -0
- {pyodide_mkdocs_theme-5.3.6 → pyodide_mkdocs_theme-5.4.0}/pyodide_mkdocs_theme/templates/main.html +0 -0
- {pyodide_mkdocs_theme-5.3.6 → pyodide_mkdocs_theme-5.4.0}/pyodide_mkdocs_theme/templates/mkdocs_theme.yml +0 -0
- {pyodide_mkdocs_theme-5.3.6 → pyodide_mkdocs_theme-5.4.0}/pyodide_mkdocs_theme/templates/partials/content.html +0 -0
- {pyodide_mkdocs_theme-5.3.6 → pyodide_mkdocs_theme-5.4.0}/pyodide_mkdocs_theme/templates/partials/copyright.html +0 -0
- {pyodide_mkdocs_theme-5.3.6 → pyodide_mkdocs_theme-5.4.0}/pyodide_mkdocs_theme/templates/partials/footer.html +0 -0
- {pyodide_mkdocs_theme-5.3.6 → pyodide_mkdocs_theme-5.4.0}/pyodide_mkdocs_theme/templates/partials/header.html +0 -0
- {pyodide_mkdocs_theme-5.3.6 → pyodide_mkdocs_theme-5.4.0}/pyodide_mkdocs_theme/templates/partials/social.html +0 -0
- {pyodide_mkdocs_theme-5.3.6 → pyodide_mkdocs_theme-5.4.0}/pyodide_mkdocs_theme/templates/pyodide-css/0-generic.css +0 -0
- {pyodide_mkdocs_theme-5.3.6 → pyodide_mkdocs_theme-5.4.0}/pyodide_mkdocs_theme/templates/pyodide-css/btns-header.css +0 -0
- {pyodide_mkdocs_theme-5.3.6 → pyodide_mkdocs_theme-5.4.0}/pyodide_mkdocs_theme/templates/pyodide-css/history.css +0 -0
- {pyodide_mkdocs_theme-5.3.6 → pyodide_mkdocs_theme-5.4.0}/pyodide_mkdocs_theme/templates/pyodide-css/hourglass.css +0 -0
- {pyodide_mkdocs_theme-5.3.6 → pyodide_mkdocs_theme-5.4.0}/pyodide_mkdocs_theme/templates/pyodide-css/ide.css +0 -0
- {pyodide_mkdocs_theme-5.3.6 → pyodide_mkdocs_theme-5.4.0}/pyodide_mkdocs_theme/templates/pyodide-css/qcm.css +0 -0
- {pyodide_mkdocs_theme-5.3.6 → pyodide_mkdocs_theme-5.4.0}/pyodide_mkdocs_theme/templates/pyodide-css/terminal.css +0 -0
- {pyodide_mkdocs_theme-5.3.6 → pyodide_mkdocs_theme-5.4.0}/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.
|
|
3
|
+
Version: 5.4.0
|
|
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
|
|
@@ -67,9 +67,10 @@ parser.add_argument(
|
|
|
67
67
|
parser.add_argument(
|
|
68
68
|
'--lang', action='extend', nargs='*', choices=LANGS, default=[],
|
|
69
69
|
help=f'Optional. Choices: { ", ".join(LANGS) }. '
|
|
70
|
-
'
|
|
71
|
-
'
|
|
72
|
-
'
|
|
70
|
+
'Can be used with other arguments to get the information/files in languages other '
|
|
71
|
+
'than "fr", when relevant. '
|
|
72
|
+
'([DEPRECATED]: Print the base python code to customize some messages. From PMT 5.3.0, '
|
|
73
|
+
"use the plugin's configuration to change PMT messages.)"
|
|
73
74
|
)
|
|
74
75
|
parser.add_argument( # Effect strictly equivalent to --lang, but present for semantic
|
|
75
76
|
'-M', '--macros', action='store_true',
|
|
@@ -247,8 +248,7 @@ def main():
|
|
|
247
248
|
'plot': 'pyodide_plot.py',
|
|
248
249
|
'py': 'docs/exo.py',
|
|
249
250
|
'toolbox': 'toolbox.py',
|
|
250
|
-
'yml': 'mkdocs.yml'
|
|
251
|
-
'lang': 'main.py' ,
|
|
251
|
+
'yml': 'mkdocs.yml'
|
|
252
252
|
}
|
|
253
253
|
|
|
254
254
|
if args.basthonP5:
|
|
@@ -282,7 +282,10 @@ def main():
|
|
|
282
282
|
|
|
283
283
|
if not did_some and args.lang:
|
|
284
284
|
did_some = True
|
|
285
|
-
|
|
285
|
+
print(
|
|
286
|
+
"From PMT 5.3.0, you should update Lang messages directly through the plugin's configuration. "
|
|
287
|
+
"The old `env.lang.overload` way is still supported, but it should not be used anymore."
|
|
288
|
+
)
|
|
286
289
|
|
|
287
290
|
|
|
288
291
|
if raise_toolbox:
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
__version__ = "5.4.0"
|
|
@@ -22,9 +22,6 @@ If not, see <https://www.gnu.org/licenses/>.
|
|
|
22
22
|
from functools import wraps
|
|
23
23
|
from typing import Optional
|
|
24
24
|
|
|
25
|
-
from mkdocs.exceptions import BuildError
|
|
26
|
-
|
|
27
|
-
|
|
28
25
|
|
|
29
26
|
from ..tools_and_constants import MACROS_WITH_INDENTS, HtmlClass, P5BtnLocation
|
|
30
27
|
from .. import html_builder as Html
|
|
@@ -548,87 +548,180 @@ class IdeManagerMdHtmlGenerator(IdeSectionsManager):
|
|
|
548
548
|
|
|
549
549
|
def generate_id(self):
|
|
550
550
|
"""
|
|
551
|
-
Generate
|
|
551
|
+
Generate hash part of the html id for the current element, in the form:
|
|
552
552
|
|
|
553
553
|
"{ self.PREFIX_ }{ 32 chars hex value }"
|
|
554
554
|
|
|
555
|
+
Uniqueness of the resulting hash is verified and PmtMacrosNonUniqueIdError is raised
|
|
556
|
+
if two identical hashes are encountered.
|
|
557
|
+
|
|
558
|
+
---
|
|
559
|
+
|
|
555
560
|
<br><br>
|
|
556
561
|
|
|
557
|
-
## CONSTRAINTS:
|
|
562
|
+
## CONSTRAINTS on the html ids:
|
|
558
563
|
|
|
559
|
-
|
|
560
|
-
- Stable, so that it can be used to identify what IDE goes with what file or what
|
|
564
|
+
1. Stable, so that it can be used to identify what IDE goes with what file or what
|
|
561
565
|
localStorage data.
|
|
562
|
-
|
|
563
|
-
|
|
564
|
-
|
|
565
|
-
*
|
|
566
|
-
|
|
566
|
+
|
|
567
|
+
2. Unique to every runner used throughout the whole website, and specifically for IDEs:
|
|
568
|
+
* IDEs using the same python file in different pages must have different ids.
|
|
569
|
+
* IDEs NOT using any python file must have different ids in any page.
|
|
570
|
+
* The uniqueness of the ids across different PMT projects should be "guaranteed"
|
|
571
|
+
if they are hosted on the same domain, so that IDEs of different projects do not
|
|
572
|
+
override each others in the localStorage.
|
|
573
|
+
|
|
574
|
+
3. It must be possible to guarantee the backward compatibility if the id values when
|
|
575
|
+
desired by the redactor. It may not be possible for all projects at the same time after
|
|
576
|
+
the update to 5.4+, but redactors should have a way to maintain them when it's possible.
|
|
577
|
+
|
|
578
|
+
4. If ever two identical ids from different projects are found at runtime (JS layer), the
|
|
579
|
+
user should be warned, with sufficient information to correct the problem (aka, adding an
|
|
580
|
+
ID argument to the IDE of the current project => this IDE must be fully identifiable).
|
|
581
|
+
This is not handled in the `generate_id` method.
|
|
582
|
+
|
|
583
|
+
---
|
|
567
584
|
|
|
568
585
|
<br><br>
|
|
569
586
|
|
|
570
|
-
##
|
|
571
|
-
|
|
572
|
-
|
|
573
|
-
|
|
574
|
-
|
|
575
|
-
|
|
576
|
-
|
|
577
|
-
|
|
578
|
-
|
|
579
|
-
|
|
580
|
-
|
|
581
|
-
|
|
582
|
-
|
|
583
|
-
|
|
584
|
-
|
|
585
|
-
|
|
586
|
-
|
|
587
|
-
|
|
588
|
-
|
|
589
|
-
|
|
590
|
-
|
|
591
|
-
|
|
592
|
-
|
|
593
|
-
|
|
587
|
+
## RATIONALS:
|
|
588
|
+
|
|
589
|
+
|
|
590
|
+
An id redundancy can occur in the following cases:
|
|
591
|
+
|
|
592
|
+
* IDEs without python files at the same location in the docs_dir will result in
|
|
593
|
+
identical html ids, whatever the `ides_id_hash_mode` value.
|
|
594
|
+
|
|
595
|
+
* With `ides_id_hash_mode: relative`, ides at equivalent locations in the docs_dir
|
|
596
|
+
and using the same python file (name/location) and the same ID argument will result
|
|
597
|
+
in two identical html ids.
|
|
598
|
+
|
|
599
|
+
Note that, using `ides_id_hash_mode: legacy`, the redundancy is limited to the
|
|
600
|
+
intrinsic hash collision probability, so almost non existant. So no need to
|
|
601
|
+
disambiguate IDE WITH python files in that mode. Though, a project_id value will
|
|
602
|
+
still be needed to disambiguate entries in the localStorage when using the trashcan
|
|
603
|
+
button, if several PMT projects are hosted on the same domain.
|
|
604
|
+
|
|
605
|
+
So, the chosen strategies are the following:
|
|
606
|
+
|
|
607
|
+
---
|
|
608
|
+
|
|
609
|
+
For non IDEs elements:
|
|
610
|
+
|
|
611
|
+
- They don't have to worry about the multi-projects aspects. Ids unique throughout the
|
|
612
|
+
page are more than enough.
|
|
613
|
+
- Consistency of the generated ids through time is more important than anything else.
|
|
614
|
+
- The ids are built using:
|
|
615
|
+
* the page url (relative to site_dir)
|
|
616
|
+
* the macro name (so that the counts for IDEs is not affected by adding other
|
|
617
|
+
elements earlier in the page).
|
|
618
|
+
* a counter specific to the macro name and the page
|
|
619
|
+
|
|
620
|
+
|
|
621
|
+
For IDE elements:
|
|
622
|
+
|
|
623
|
+
- Priority must be given to the consistency of the ids through time, WHEN POSSIBLE.
|
|
624
|
+
- Second most important property is uniqueness across the localStorage, meaning handling
|
|
625
|
+
the multi-projects aspects is a "must have", at the best possible extent.
|
|
626
|
+
|
|
627
|
+
For IDE elements without associated python file:
|
|
628
|
+
|
|
629
|
+
- 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 site_dir), concatenated with
|
|
631
|
+
various things that are specific to the page or the macro. So different website with the
|
|
632
|
+
same relative URL _will_ clash in the localStorage. These require the use of a project_id
|
|
633
|
+
value.
|
|
634
|
+
- Note that the value of `ides_id_hash_mode` has no effect on these IDEs and these actually
|
|
635
|
+
behave the same way as IDEs with python files and `ides_id_hash_mode: relative` is used,
|
|
636
|
+
hence the previous point.
|
|
637
|
+
|
|
638
|
+
For IDE elements with a python file:
|
|
639
|
+
|
|
640
|
+
- The python file location is used in "unresolved" fashion, whatever the value of
|
|
641
|
+
`ides_id_hash_mode` is. Meaning: `xxx/A/../B/exo.py` is used as is, instead of resolving
|
|
642
|
+
it to `xxx/B/exo.py`. This allows to reduce the occurrences where the ID argument has to
|
|
643
|
+
be added to the macro call.
|
|
644
|
+
- Projects using `ides_id_hash_mode: legacy`, despite all the problems that go with it,
|
|
645
|
+
are not subject to localStorage ids clashes for these IDEs, BUT, the trashcan button still
|
|
646
|
+
requires the project_id value to differentiate the source of each entry.
|
|
647
|
+
<br>This means the user CAN maintain backward compatibility of the ids by skipping the
|
|
648
|
+
project_id part when building the hash, even if it has been provided for the trashcan
|
|
649
|
+
functionality. The `project_disambiguate_local_storage` option allow to control this.
|
|
650
|
+
- For legacy reasons (PM), ids for IDEv macros see the `"_v"` element added to the string
|
|
651
|
+
before the hash is computed. THIS IS NOT APPLIED to IDEv WITHOUT PYTHON FILE (PMT legacy).
|
|
652
|
+
- Projects using `ides_id_hash_mode: relative` ARE way more subject to ids clashes, so the
|
|
653
|
+
project_id has to be used.
|
|
654
|
+
|
|
655
|
+
For backward compatibility, the redactor has two options:
|
|
656
|
+
1. Set the project id of one project to `""` and maintain backward compatibility for this
|
|
657
|
+
project, and use a unique value for other projects. These will get new ids for all IDEs
|
|
658
|
+
with a python file and the localStorage content will be lost.
|
|
659
|
+
2. Set `project_disambiguate_local_storage` to False along with a project_id value for
|
|
660
|
+
each project. This is kinda "relying on luck", but could work well enough: the redactor
|
|
661
|
+
hopes a minimal number of clashes and waits for the users to signal the troubles when they
|
|
662
|
+
occur, so that they can fix the clashes individually by adding ID arguments where needed.
|
|
663
|
+
|
|
664
|
+
---
|
|
665
|
+
|
|
666
|
+
___NOTE about the cache:___
|
|
667
|
+
|
|
668
|
+
The cache has been deactivated manually and isn't accessible to the user anymore, but the
|
|
669
|
+
implementation still makes reference to it, if ever I put it back in place, one day...
|
|
670
|
+
(unlikely: removed because mainly useless, by now).
|
|
671
|
+
|
|
672
|
+
|
|
673
|
+
___NOTE about `ides_id_hash_mode: legacy`:___
|
|
674
|
+
|
|
675
|
+
The `runner_path` (to the python file) used in that case is "absolute + unresolved".
|
|
676
|
+
<br>When building the site during a pipeline, the paths look like this:
|
|
677
|
+
|
|
678
|
+
/builds/frederic-zinelli/pyodide-mkdocs-theme/docs/redactors/sequential_examples/ide4.py
|
|
679
|
+
|
|
680
|
+
This has kind of "opposite" consequences:
|
|
681
|
+
|
|
682
|
+
1. The ids are automatically disambiguated considering different projects hosted in the same
|
|
683
|
+
GtiLab account/group, and probabilities of hashes collisions,event if not inexistant, are
|
|
684
|
+
probabilistically close to zero.
|
|
685
|
+
|
|
686
|
+
2. When using `mkdocs serve`:
|
|
687
|
+
- The ids during serve ARE NOT IDENTICAL to those of the same IDE on the online site.
|
|
688
|
+
- The localStorage during serve sees ALL the IDEs entries of ALL the projects on the
|
|
689
|
+
local machine.
|
|
594
690
|
"""
|
|
595
|
-
is_ide
|
|
691
|
+
is_ide = PmtPyMacrosName.is_ide(self.MACRO_NAME)
|
|
692
|
+
is_relative = not self.env.is_legacy
|
|
693
|
+
runner_path = self.exo_py
|
|
694
|
+
has_py_file = bool(runner_path)
|
|
695
|
+
project_id = self.env.project_id or ""
|
|
696
|
+
|
|
697
|
+
need_project_id = is_ide and self.env.project_disambiguate_local_storage and project_id and (
|
|
698
|
+
not has_py_file or is_relative
|
|
699
|
+
)
|
|
700
|
+
# The project_id is needed to disambiguate the html ids in the localStorage only if:
|
|
701
|
+
# 1. The element is an IDE
|
|
702
|
+
# 2. The user actually gave a value for env.project_id
|
|
703
|
+
# 3. The user _wants_ the project_id added to compute the html ids
|
|
704
|
+
# 4. Either...:
|
|
705
|
+
# - the ides_id_hash_mode is set to relative
|
|
706
|
+
# - Or there is no python file for the IDE
|
|
596
707
|
|
|
597
|
-
|
|
598
|
-
# IDE ids have to stay consistent with previous implementations, to not brake the
|
|
599
|
-
# localeStorage saves of the users.
|
|
708
|
+
project_id = f':_{ project_id }' * bool(need_project_id)
|
|
600
709
|
|
|
601
|
-
|
|
602
|
-
# so that using the same source file for different kind of macros won't generate
|
|
603
|
-
# equivalent hashes (ease the way for the users, _and_ more consistent with previous
|
|
604
|
-
# behaviors... Even if that is probably a breaking change).
|
|
605
|
-
less_ID_needs = "" if is_ide else ':'+self.MACRO_NAME
|
|
710
|
+
if has_py_file and (is_ide or self.env.ACTIVATE_CACHE):
|
|
606
711
|
|
|
607
|
-
|
|
608
|
-
if is_ide and
|
|
609
|
-
# Avoid any dependency on the domain/site name, if needed:
|
|
712
|
+
less_ID_needs = "" if is_ide else ':'+self.MACRO_NAME
|
|
713
|
+
if is_ide and is_relative:
|
|
610
714
|
runner_path = Path(self.exo_py).relative_to(self.env.docs_dir_path)
|
|
611
715
|
|
|
612
|
-
to_hash = f"{ runner_path }{ self.IDE_VERT }{ less_ID_needs }"
|
|
613
|
-
# PROBLEM for IDEs in ides_id_hash_mode:"legacy":
|
|
614
|
-
#
|
|
615
|
-
# `runner_path` is "absolute unresolved", in that case. When building the site during
|
|
616
|
-
# a pipeline, the paths look like this:
|
|
617
|
-
#
|
|
618
|
-
# /builds/frederic-zinelli/pyodide-mkdocs-theme/docs/redactors/sequential_examples/ide4.py
|
|
619
|
-
#
|
|
620
|
-
# This means the ids are disambiguated considering different projects hosted in the same
|
|
621
|
-
# GtiLab account/group, and probabilities of hashes collisions are not inexistant, but
|
|
622
|
-
# probabilistically close to zero.
|
|
716
|
+
to_hash = f"{ runner_path }{ self.IDE_VERT }{ less_ID_needs }{ project_id }"
|
|
623
717
|
|
|
624
718
|
else:
|
|
625
719
|
count = self.env.macros_counters[ self.MACRO_NAME ].inc()
|
|
626
|
-
to_hash = f"{ self.env.page.url }-{ self.MACRO_NAME }-{ count }"
|
|
627
|
-
|
|
628
|
-
|
|
720
|
+
to_hash = f"{ self.env.page.url }-{ self.MACRO_NAME }-{ count }{ project_id }"
|
|
721
|
+
# DO NOT lstrip `to_hash`, to keep implementation consistent for users, even if it
|
|
722
|
+
# looks ugly on the home page (url is ""). Nobody but me can see it anyway... :rolleyes:
|
|
629
723
|
|
|
630
724
|
hashed = self.id_to_hash(to_hash)
|
|
631
|
-
# print(hashed, to_hash)
|
|
632
725
|
return hashed
|
|
633
726
|
|
|
634
727
|
|
|
@@ -652,11 +745,11 @@ class IdeManagerMdHtmlGenerator(IdeSectionsManager):
|
|
|
652
745
|
"The same html id got generated twice.\n"
|
|
653
746
|
"If you are trying to use the same set of files for different macros calls, use "
|
|
654
747
|
"their ID argument (int >= 0) to disambiguate them.\n\n"
|
|
655
|
-
)+ self.env.ACTIVATE_CACHE*(
|
|
748
|
+
) + self.env.ACTIVATE_CACHE * (
|
|
656
749
|
"If you are encountering this problem with macros other than IDE or IDEv and you "
|
|
657
750
|
"do not need some extra speed rendering-wise, you also can deactivate the PMT "
|
|
658
751
|
f"cache, using `{ cache_option }: false`.\n\n"
|
|
659
|
-
)+(
|
|
752
|
+
) + (
|
|
660
753
|
f"ID values already in use: { self.env.get_registered_ids_for(id_path) }\n"
|
|
661
754
|
f"Id generated with: { to_hash }\n{ self.env.log() }"
|
|
662
755
|
)
|
|
@@ -22,8 +22,6 @@ from functools import wraps
|
|
|
22
22
|
from textwrap import dedent
|
|
23
23
|
from typing import Any, Dict, List, Tuple
|
|
24
24
|
|
|
25
|
-
from mkdocs.exceptions import BuildError
|
|
26
|
-
|
|
27
25
|
|
|
28
26
|
from ..pyodide_logger import logger
|
|
29
27
|
from ..tools_and_constants import MACROS_WITH_INDENTS, HtmlClass, IdeConstants
|