pyodide-mkdocs-theme 5.4.3__tar.gz → 5.4.5__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.3 → pyodide_mkdocs_theme-5.4.5}/PKG-INFO +1 -1
- pyodide_mkdocs_theme-5.4.5/pyodide_mkdocs_theme/__version__.py +1 -0
- {pyodide_mkdocs_theme-5.4.3 → pyodide_mkdocs_theme-5.4.5}/pyodide_mkdocs_theme/pyodide_macros/macros/ide_ide.py +9 -9
- {pyodide_mkdocs_theme-5.4.3 → pyodide_mkdocs_theme-5.4.5}/pyodide_mkdocs_theme/pyodide_macros/macros/ide_manager.py +3 -1
- {pyodide_mkdocs_theme-5.4.3 → pyodide_mkdocs_theme-5.4.5}/pyodide_mkdocs_theme/pyodide_macros/macros/ide_playground.py +14 -4
- {pyodide_mkdocs_theme-5.4.3 → pyodide_mkdocs_theme-5.4.5}/pyodide_mkdocs_theme/pyodide_macros/plugin/maestro_macros.py +0 -4
- {pyodide_mkdocs_theme-5.4.3 → pyodide_mkdocs_theme-5.4.5}/pyodide_mkdocs_theme/pyodide_macros/plugin_config/definitions/macros_configs.py +6 -5
- {pyodide_mkdocs_theme-5.4.3 → pyodide_mkdocs_theme-5.4.5}/pyodide_mkdocs_theme/pyodide_macros/plugin_config/definitions/sub_configs.py +4 -0
- {pyodide_mkdocs_theme-5.4.3 → pyodide_mkdocs_theme-5.4.5}/pyodide_mkdocs_theme/pyodide_macros/plugin_tools/test_cases.py +5 -0
- {pyodide_mkdocs_theme-5.4.3 → pyodide_mkdocs_theme-5.4.5}/pyodide_mkdocs_theme/templates/js-per-pages/2-pyodideSectionsRunner-runner-pyodide.js +9 -2
- {pyodide_mkdocs_theme-5.4.3 → pyodide_mkdocs_theme-5.4.5}/pyodide_mkdocs_theme/templates/js-per-pages/4-ideLogistic-ide.js +4 -0
- {pyodide_mkdocs_theme-5.4.3 → pyodide_mkdocs_theme-5.4.5}/pyodide_mkdocs_theme/templates/js-per-pages/4-ideRunner-ide.js +73 -15
- {pyodide_mkdocs_theme-5.4.3 → pyodide_mkdocs_theme-5.4.5}/pyodide_mkdocs_theme/templates/js-per-pages/5-ideTester-ides_test.js +7 -0
- {pyodide_mkdocs_theme-5.4.3 → pyodide_mkdocs_theme-5.4.5}/pyodide_mkdocs_theme/templates/js-scripts/subscriptions.js +7 -3
- {pyodide_mkdocs_theme-5.4.3 → pyodide_mkdocs_theme-5.4.5}/pyodide_mkdocs_theme/templates/pyodide-css/0-generic.css +1 -1
- {pyodide_mkdocs_theme-5.4.3 → pyodide_mkdocs_theme-5.4.5}/pyodide_mkdocs_theme/templates/pyodide-css/history.css +1 -1
- {pyodide_mkdocs_theme-5.4.3 → pyodide_mkdocs_theme-5.4.5}/pyodide_mkdocs_theme/templates/pyodide-css/ide.css +3 -0
- {pyodide_mkdocs_theme-5.4.3 → pyodide_mkdocs_theme-5.4.5}/pyproject.toml +1 -1
- pyodide_mkdocs_theme-5.4.3/pyodide_mkdocs_theme/__version__.py +0 -1
- {pyodide_mkdocs_theme-5.4.3 → pyodide_mkdocs_theme-5.4.5}/LICENSE +0 -0
- {pyodide_mkdocs_theme-5.4.3 → pyodide_mkdocs_theme-5.4.5}/README.md +0 -0
- {pyodide_mkdocs_theme-5.4.3 → pyodide_mkdocs_theme-5.4.5}/pyodide_mkdocs_theme/PMT_tools/p5/__init__.py +0 -0
- {pyodide_mkdocs_theme-5.4.3 → pyodide_mkdocs_theme-5.4.5}/pyodide_mkdocs_theme/PMT_tools/vis/__init__.py +0 -0
- {pyodide_mkdocs_theme-5.4.3 → pyodide_mkdocs_theme-5.4.5}/pyodide_mkdocs_theme/PMT_tools/vis_network/__init__.py +0 -0
- {pyodide_mkdocs_theme-5.4.3 → pyodide_mkdocs_theme-5.4.5}/pyodide_mkdocs_theme/__init__.py +0 -0
- {pyodide_mkdocs_theme-5.4.3 → pyodide_mkdocs_theme-5.4.5}/pyodide_mkdocs_theme/__main__.py +0 -0
- {pyodide_mkdocs_theme-5.4.3 → pyodide_mkdocs_theme-5.4.5}/pyodide_mkdocs_theme/basthon_p5_to_pmt.py +0 -0
- {pyodide_mkdocs_theme-5.4.3 → pyodide_mkdocs_theme-5.4.5}/pyodide_mkdocs_theme/pyodide_macros/__init__.py +0 -0
- {pyodide_mkdocs_theme-5.4.3 → pyodide_mkdocs_theme-5.4.5}/pyodide_mkdocs_theme/pyodide_macros/exceptions.py +0 -0
- {pyodide_mkdocs_theme-5.4.3 → pyodide_mkdocs_theme-5.4.5}/pyodide_mkdocs_theme/pyodide_macros/files_extractors/__init__.py +0 -0
- {pyodide_mkdocs_theme-5.4.3 → pyodide_mkdocs_theme-5.4.5}/pyodide_mkdocs_theme/pyodide_macros/files_extractors/_inclusions_tools.py +0 -0
- {pyodide_mkdocs_theme-5.4.3 → pyodide_mkdocs_theme-5.4.5}/pyodide_mkdocs_theme/pyodide_macros/files_extractors/base0_extractors.py +0 -0
- {pyodide_mkdocs_theme-5.4.3 → pyodide_mkdocs_theme-5.4.5}/pyodide_mkdocs_theme/pyodide_macros/files_extractors/base1_contents_extractor.py +0 -0
- {pyodide_mkdocs_theme-5.4.3 → pyodide_mkdocs_theme-5.4.5}/pyodide_mkdocs_theme/pyodide_macros/files_extractors/base2_inclusions.py +0 -0
- {pyodide_mkdocs_theme-5.4.3 → pyodide_mkdocs_theme-5.4.5}/pyodide_mkdocs_theme/pyodide_macros/files_extractors/base3_generic_extractors.py +0 -0
- {pyodide_mkdocs_theme-5.4.3 → pyodide_mkdocs_theme-5.4.5}/pyodide_mkdocs_theme/pyodide_macros/files_extractors/concrete_extractors.py +0 -0
- {pyodide_mkdocs_theme-5.4.3 → pyodide_mkdocs_theme-5.4.5}/pyodide_mkdocs_theme/pyodide_macros/html_builder/__init__.py +0 -0
- {pyodide_mkdocs_theme-5.4.3 → pyodide_mkdocs_theme-5.4.5}/pyodide_mkdocs_theme/pyodide_macros/html_builder/_html_builder.py +0 -0
- {pyodide_mkdocs_theme-5.4.3 → pyodide_mkdocs_theme-5.4.5}/pyodide_mkdocs_theme/pyodide_macros/html_dependencies/__init__.py +0 -0
- {pyodide_mkdocs_theme-5.4.3 → pyodide_mkdocs_theme-5.4.5}/pyodide_mkdocs_theme/pyodide_macros/html_dependencies/deps.py +0 -0
- {pyodide_mkdocs_theme-5.4.3 → pyodide_mkdocs_theme-5.4.5}/pyodide_mkdocs_theme/pyodide_macros/html_dependencies/deps_class.py +0 -0
- {pyodide_mkdocs_theme-5.4.3 → pyodide_mkdocs_theme-5.4.5}/pyodide_mkdocs_theme/pyodide_macros/indent_parser.py +0 -0
- {pyodide_mkdocs_theme-5.4.3 → pyodide_mkdocs_theme-5.4.5}/pyodide_mkdocs_theme/pyodide_macros/macros/IDEs.py +0 -0
- {pyodide_mkdocs_theme-5.4.3 → pyodide_mkdocs_theme-5.4.5}/pyodide_mkdocs_theme/pyodide_macros/macros/__init__.py +0 -0
- {pyodide_mkdocs_theme-5.4.3 → pyodide_mkdocs_theme-5.4.5}/pyodide_mkdocs_theme/pyodide_macros/macros/figure.py +0 -0
- {pyodide_mkdocs_theme-5.4.3 → pyodide_mkdocs_theme-5.4.5}/pyodide_mkdocs_theme/pyodide_macros/macros/ide_py_btn.py +0 -0
- {pyodide_mkdocs_theme-5.4.3 → pyodide_mkdocs_theme-5.4.5}/pyodide_mkdocs_theme/pyodide_macros/macros/ide_run_macro.py +0 -0
- {pyodide_mkdocs_theme-5.4.3 → pyodide_mkdocs_theme-5.4.5}/pyodide_mkdocs_theme/pyodide_macros/macros/ide_term_ide.py +0 -0
- {pyodide_mkdocs_theme-5.4.3 → pyodide_mkdocs_theme-5.4.5}/pyodide_mkdocs_theme/pyodide_macros/macros/ide_terminal.py +0 -0
- {pyodide_mkdocs_theme-5.4.3 → pyodide_mkdocs_theme-5.4.5}/pyodide_mkdocs_theme/pyodide_macros/macros/ide_tester.py +0 -0
- {pyodide_mkdocs_theme-5.4.3 → pyodide_mkdocs_theme-5.4.5}/pyodide_mkdocs_theme/pyodide_macros/macros/py_script.py +0 -0
- {pyodide_mkdocs_theme-5.4.3 → pyodide_mkdocs_theme-5.4.5}/pyodide_mkdocs_theme/pyodide_macros/macros/qcm.py +0 -0
- {pyodide_mkdocs_theme-5.4.3 → pyodide_mkdocs_theme-5.4.5}/pyodide_mkdocs_theme/pyodide_macros/messages/__init__.py +0 -0
- {pyodide_mkdocs_theme-5.4.3 → pyodide_mkdocs_theme-5.4.5}/pyodide_mkdocs_theme/pyodide_macros/messages/classes.py +0 -0
- {pyodide_mkdocs_theme-5.4.3 → pyodide_mkdocs_theme-5.4.5}/pyodide_mkdocs_theme/pyodide_macros/messages/de_lang.py +0 -0
- {pyodide_mkdocs_theme-5.4.3 → pyodide_mkdocs_theme-5.4.5}/pyodide_mkdocs_theme/pyodide_macros/messages/en_lang.py +0 -0
- {pyodide_mkdocs_theme-5.4.3 → pyodide_mkdocs_theme-5.4.5}/pyodide_mkdocs_theme/pyodide_macros/messages/fr_lang.py +0 -0
- {pyodide_mkdocs_theme-5.4.3 → pyodide_mkdocs_theme-5.4.5}/pyodide_mkdocs_theme/pyodide_macros/messages/proxy.py +0 -0
- {pyodide_mkdocs_theme-5.4.3 → pyodide_mkdocs_theme-5.4.5}/pyodide_mkdocs_theme/pyodide_macros/parsing.py +0 -0
- {pyodide_mkdocs_theme-5.4.3 → pyodide_mkdocs_theme-5.4.5}/pyodide_mkdocs_theme/pyodide_macros/paths_utils.py +0 -0
- {pyodide_mkdocs_theme-5.4.3 → pyodide_mkdocs_theme-5.4.5}/pyodide_mkdocs_theme/pyodide_macros/plugin/__init__.py +0 -0
- {pyodide_mkdocs_theme-5.4.3 → pyodide_mkdocs_theme-5.4.5}/pyodide_mkdocs_theme/pyodide_macros/plugin/config.py +0 -0
- {pyodide_mkdocs_theme-5.4.3 → pyodide_mkdocs_theme-5.4.5}/pyodide_mkdocs_theme/pyodide_macros/plugin/maestro_base.py +0 -0
- {pyodide_mkdocs_theme-5.4.3 → pyodide_mkdocs_theme-5.4.5}/pyodide_mkdocs_theme/pyodide_macros/plugin/maestro_contracts.py +0 -0
- {pyodide_mkdocs_theme-5.4.3 → pyodide_mkdocs_theme-5.4.5}/pyodide_mkdocs_theme/pyodide_macros/plugin/maestro_files.py +0 -0
- {pyodide_mkdocs_theme-5.4.3 → pyodide_mkdocs_theme-5.4.5}/pyodide_mkdocs_theme/pyodide_macros/plugin/maestro_indent.py +0 -0
- {pyodide_mkdocs_theme-5.4.3 → pyodide_mkdocs_theme-5.4.5}/pyodide_mkdocs_theme/pyodide_macros/plugin/maestro_meta.py +0 -0
- {pyodide_mkdocs_theme-5.4.3 → pyodide_mkdocs_theme-5.4.5}/pyodide_mkdocs_theme/pyodide_macros/plugin/maestro_templates.py +0 -0
- {pyodide_mkdocs_theme-5.4.3 → pyodide_mkdocs_theme-5.4.5}/pyodide_mkdocs_theme/pyodide_macros/plugin/pyodide_macros_plugin.py +0 -0
- {pyodide_mkdocs_theme-5.4.3 → pyodide_mkdocs_theme-5.4.5}/pyodide_mkdocs_theme/pyodide_macros/plugin_config/__init__.py +0 -0
- {pyodide_mkdocs_theme-5.4.3 → pyodide_mkdocs_theme-5.4.5}/pyodide_mkdocs_theme/pyodide_macros/plugin_config/_string_tools_and_constants.py +0 -0
- {pyodide_mkdocs_theme-5.4.3 → pyodide_mkdocs_theme-5.4.5}/pyodide_mkdocs_theme/pyodide_macros/plugin_config/common_tree_src.py +0 -0
- {pyodide_mkdocs_theme-5.4.3 → pyodide_mkdocs_theme-5.4.5}/pyodide_mkdocs_theme/pyodide_macros/plugin_config/config_option_src.py +0 -0
- {pyodide_mkdocs_theme-5.4.3 → pyodide_mkdocs_theme-5.4.5}/pyodide_mkdocs_theme/pyodide_macros/plugin_config/definitions/__init__.py +0 -0
- {pyodide_mkdocs_theme-5.4.3 → pyodide_mkdocs_theme-5.4.5}/pyodide_mkdocs_theme/pyodide_macros/plugin_config/definitions/docs_dirs_config.py +0 -0
- {pyodide_mkdocs_theme-5.4.3 → pyodide_mkdocs_theme-5.4.5}/pyodide_mkdocs_theme/pyodide_macros/plugin_config/definitions/plugin_config.py +0 -0
- {pyodide_mkdocs_theme-5.4.3 → pyodide_mkdocs_theme-5.4.5}/pyodide_mkdocs_theme/pyodide_macros/plugin_config/dumpers.py +0 -0
- {pyodide_mkdocs_theme-5.4.3 → pyodide_mkdocs_theme-5.4.5}/pyodide_mkdocs_theme/pyodide_macros/plugin_config/lang_src.py +0 -0
- {pyodide_mkdocs_theme-5.4.3 → pyodide_mkdocs_theme-5.4.5}/pyodide_mkdocs_theme/pyodide_macros/plugin_config/macro_config_src.py +0 -0
- {pyodide_mkdocs_theme-5.4.3 → pyodide_mkdocs_theme-5.4.5}/pyodide_mkdocs_theme/pyodide_macros/plugin_config/plugin_config_src.py +0 -0
- {pyodide_mkdocs_theme-5.4.3 → pyodide_mkdocs_theme-5.4.5}/pyodide_mkdocs_theme/pyodide_macros/plugin_config/sub_config_src.py +0 -0
- {pyodide_mkdocs_theme-5.4.3 → pyodide_mkdocs_theme-5.4.5}/pyodide_mkdocs_theme/pyodide_macros/plugin_tools/__init__.py +0 -0
- {pyodide_mkdocs_theme-5.4.3 → pyodide_mkdocs_theme-5.4.5}/pyodide_mkdocs_theme/pyodide_macros/plugin_tools/macros_data.py +0 -0
- {pyodide_mkdocs_theme-5.4.3 → pyodide_mkdocs_theme-5.4.5}/pyodide_mkdocs_theme/pyodide_macros/plugin_tools/maestro_tools.py +0 -0
- {pyodide_mkdocs_theme-5.4.3 → pyodide_mkdocs_theme-5.4.5}/pyodide_mkdocs_theme/pyodide_macros/plugin_tools/options_alterations.py +0 -0
- {pyodide_mkdocs_theme-5.4.3 → pyodide_mkdocs_theme-5.4.5}/pyodide_mkdocs_theme/pyodide_macros/plugin_tools/pages_and_macros_py_configs.py +0 -0
- {pyodide_mkdocs_theme-5.4.3 → pyodide_mkdocs_theme-5.4.5}/pyodide_mkdocs_theme/pyodide_macros/pyodide_logger.py +0 -0
- {pyodide_mkdocs_theme-5.4.3 → pyodide_mkdocs_theme-5.4.5}/pyodide_mkdocs_theme/pyodide_macros/tools_and_constants.py +0 -0
- {pyodide_mkdocs_theme-5.4.3 → pyodide_mkdocs_theme-5.4.5}/pyodide_mkdocs_theme/scripts/de/docs/exo.py +0 -0
- {pyodide_mkdocs_theme-5.4.3 → pyodide_mkdocs_theme-5.4.5}/pyodide_mkdocs_theme/scripts/de/docs/index.md +0 -0
- {pyodide_mkdocs_theme-5.4.3 → pyodide_mkdocs_theme-5.4.5}/pyodide_mkdocs_theme/scripts/de/mkdocs.yml +0 -0
- {pyodide_mkdocs_theme-5.4.3 → pyodide_mkdocs_theme-5.4.5}/pyodide_mkdocs_theme/scripts/en/docs/exo.py +0 -0
- {pyodide_mkdocs_theme-5.4.3 → pyodide_mkdocs_theme-5.4.5}/pyodide_mkdocs_theme/scripts/en/docs/index.md +0 -0
- {pyodide_mkdocs_theme-5.4.3 → pyodide_mkdocs_theme-5.4.5}/pyodide_mkdocs_theme/scripts/en/mkdocs.yml +0 -0
- {pyodide_mkdocs_theme-5.4.3 → pyodide_mkdocs_theme-5.4.5}/pyodide_mkdocs_theme/scripts/fr/docs/exo.py +0 -0
- {pyodide_mkdocs_theme-5.4.3 → pyodide_mkdocs_theme-5.4.5}/pyodide_mkdocs_theme/scripts/fr/docs/index.md +0 -0
- {pyodide_mkdocs_theme-5.4.3 → pyodide_mkdocs_theme-5.4.5}/pyodide_mkdocs_theme/scripts/fr/mkdocs.yml +0 -0
- {pyodide_mkdocs_theme-5.4.3 → pyodide_mkdocs_theme-5.4.5}/pyodide_mkdocs_theme/scripts/models/.gitignore +0 -0
- {pyodide_mkdocs_theme-5.4.3 → pyodide_mkdocs_theme-5.4.5}/pyodide_mkdocs_theme/scripts/models/main.py +0 -0
- {pyodide_mkdocs_theme-5.4.3 → pyodide_mkdocs_theme-5.4.5}/pyodide_mkdocs_theme/scripts/models/mkdocs.yml +0 -0
- {pyodide_mkdocs_theme-5.4.3 → pyodide_mkdocs_theme-5.4.5}/pyodide_mkdocs_theme/scripts/models/pyodide_plot.py +0 -0
- {pyodide_mkdocs_theme-5.4.3 → pyodide_mkdocs_theme-5.4.5}/pyodide_mkdocs_theme/scripts/models/requirements.txt +0 -0
- {pyodide_mkdocs_theme-5.4.3 → pyodide_mkdocs_theme-5.4.5}/pyodide_mkdocs_theme/scripts/models/toolbox.py +0 -0
- {pyodide_mkdocs_theme-5.4.3 → pyodide_mkdocs_theme-5.4.5}/pyodide_mkdocs_theme/templates/README.md +0 -0
- {pyodide_mkdocs_theme-5.4.3 → pyodide_mkdocs_theme-5.4.5}/pyodide_mkdocs_theme/templates/__init__.py +0 -0
- {pyodide_mkdocs_theme-5.4.3 → pyodide_mkdocs_theme-5.4.5}/pyodide_mkdocs_theme/templates/assets/images/.qcm-circle.svg +0 -0
- {pyodide_mkdocs_theme-5.4.3 → pyodide_mkdocs_theme-5.4.5}/pyodide_mkdocs_theme/templates/assets/images/icons8-check-64.png +0 -0
- {pyodide_mkdocs_theme-5.4.3 → pyodide_mkdocs_theme-5.4.5}/pyodide_mkdocs_theme/templates/assets/images/icons8-download-64.png +0 -0
- {pyodide_mkdocs_theme-5.4.3 → pyodide_mkdocs_theme-5.4.5}/pyodide_mkdocs_theme/templates/assets/images/icons8-play-64.png +0 -0
- {pyodide_mkdocs_theme-5.4.3 → pyodide_mkdocs_theme-5.4.5}/pyodide_mkdocs_theme/templates/assets/images/icons8-restart-64.png +0 -0
- {pyodide_mkdocs_theme-5.4.3 → pyodide_mkdocs_theme-5.4.5}/pyodide_mkdocs_theme/templates/assets/images/icons8-save-64.png +0 -0
- {pyodide_mkdocs_theme-5.4.3 → pyodide_mkdocs_theme-5.4.5}/pyodide_mkdocs_theme/templates/assets/images/icons8-step-64.png +0 -0
- {pyodide_mkdocs_theme-5.4.3 → pyodide_mkdocs_theme-5.4.5}/pyodide_mkdocs_theme/templates/assets/images/icons8-stop-64.png +0 -0
- {pyodide_mkdocs_theme-5.4.3 → pyodide_mkdocs_theme-5.4.5}/pyodide_mkdocs_theme/templates/assets/images/icons8-upload-64.png +0 -0
- {pyodide_mkdocs_theme-5.4.3 → pyodide_mkdocs_theme-5.4.5}/pyodide_mkdocs_theme/templates/assets/images/icons8-zip-64.png +0 -0
- {pyodide_mkdocs_theme-5.4.3 → pyodide_mkdocs_theme-5.4.5}/pyodide_mkdocs_theme/templates/base_pmt.html +0 -0
- {pyodide_mkdocs_theme-5.4.3 → pyodide_mkdocs_theme-5.4.5}/pyodide_mkdocs_theme/templates/js-libs/0-config.js +0 -0
- {pyodide_mkdocs_theme-5.4.3 → pyodide_mkdocs_theme-5.4.5}/pyodide_mkdocs_theme/templates/js-libs/0-legacy-subscriber.js +0 -0
- {pyodide_mkdocs_theme-5.4.3 → pyodide_mkdocs_theme-5.4.5}/pyodide_mkdocs_theme/templates/js-libs/functools.js +0 -0
- {pyodide_mkdocs_theme-5.4.3 → pyodide_mkdocs_theme-5.4.5}/pyodide_mkdocs_theme/templates/js-libs/jsLogger.js +0 -0
- {pyodide_mkdocs_theme-5.4.3 → pyodide_mkdocs_theme-5.4.5}/pyodide_mkdocs_theme/templates/js-libs/mathjax-libs.js +0 -0
- {pyodide_mkdocs_theme-5.4.3 → pyodide_mkdocs_theme-5.4.5}/pyodide_mkdocs_theme/templates/js-libs/process_and_gui.js +0 -0
- {pyodide_mkdocs_theme-5.4.3 → pyodide_mkdocs_theme-5.4.5}/pyodide_mkdocs_theme/templates/js-per-pages/0-generic-python-snippets-pyodide.js +0 -0
- {pyodide_mkdocs_theme-5.4.3 → pyodide_mkdocs_theme-5.4.5}/pyodide_mkdocs_theme/templates/js-per-pages/1-error_logs-pyodide.js +0 -0
- {pyodide_mkdocs_theme-5.4.3 → pyodide_mkdocs_theme-5.4.5}/pyodide_mkdocs_theme/templates/js-per-pages/1-packagesInstaller-install-pyodide.js +0 -0
- {pyodide_mkdocs_theme-5.4.3 → pyodide_mkdocs_theme-5.4.5}/pyodide_mkdocs_theme/templates/js-per-pages/1-runtimeManager-runtime-pyodide.js +0 -0
- {pyodide_mkdocs_theme-5.4.3 → pyodide_mkdocs_theme-5.4.5}/pyodide_mkdocs_theme/templates/js-per-pages/2-0-runnersManager-runners.js +0 -0
- {pyodide_mkdocs_theme-5.4.3 → pyodide_mkdocs_theme-5.4.5}/pyodide_mkdocs_theme/templates/js-per-pages/3-btnRunner-py_btn.js +0 -0
- {pyodide_mkdocs_theme-5.4.3 → pyodide_mkdocs_theme-5.4.5}/pyodide_mkdocs_theme/templates/js-per-pages/3-terminalRunner-term.js +0 -0
- {pyodide_mkdocs_theme-5.4.3 → pyodide_mkdocs_theme-5.4.5}/pyodide_mkdocs_theme/templates/js-per-pages/4-0-idesManager-ide.js +0 -0
- {pyodide_mkdocs_theme-5.4.3 → pyodide_mkdocs_theme-5.4.5}/pyodide_mkdocs_theme/templates/js-per-pages/6-2-init-playground.js +0 -0
- {pyodide_mkdocs_theme-5.4.3 → pyodide_mkdocs_theme-5.4.5}/pyodide_mkdocs_theme/templates/js-per-pages/6-idePlayground-playground.js +0 -0
- {pyodide_mkdocs_theme-5.4.3 → pyodide_mkdocs_theme-5.4.5}/pyodide_mkdocs_theme/templates/js-per-pages/qcms-qcm.js +0 -0
- {pyodide_mkdocs_theme-5.4.3 → pyodide_mkdocs_theme-5.4.5}/pyodide_mkdocs_theme/templates/js-per-pages/start-pyodide.js +0 -0
- {pyodide_mkdocs_theme-5.4.3 → pyodide_mkdocs_theme-5.4.5}/pyodide_mkdocs_theme/templates/js-scripts/overlord.js +0 -0
- {pyodide_mkdocs_theme-5.4.3 → pyodide_mkdocs_theme-5.4.5}/pyodide_mkdocs_theme/templates/main.html +0 -0
- {pyodide_mkdocs_theme-5.4.3 → pyodide_mkdocs_theme-5.4.5}/pyodide_mkdocs_theme/templates/mkdocs_theme.yml +0 -0
- {pyodide_mkdocs_theme-5.4.3 → pyodide_mkdocs_theme-5.4.5}/pyodide_mkdocs_theme/templates/partials/content.html +0 -0
- {pyodide_mkdocs_theme-5.4.3 → pyodide_mkdocs_theme-5.4.5}/pyodide_mkdocs_theme/templates/partials/copyright.html +0 -0
- {pyodide_mkdocs_theme-5.4.3 → pyodide_mkdocs_theme-5.4.5}/pyodide_mkdocs_theme/templates/partials/footer.html +0 -0
- {pyodide_mkdocs_theme-5.4.3 → pyodide_mkdocs_theme-5.4.5}/pyodide_mkdocs_theme/templates/partials/header.html +0 -0
- {pyodide_mkdocs_theme-5.4.3 → pyodide_mkdocs_theme-5.4.5}/pyodide_mkdocs_theme/templates/partials/social.html +0 -0
- {pyodide_mkdocs_theme-5.4.3 → pyodide_mkdocs_theme-5.4.5}/pyodide_mkdocs_theme/templates/pyodide-css/btns-header.css +0 -0
- {pyodide_mkdocs_theme-5.4.3 → pyodide_mkdocs_theme-5.4.5}/pyodide_mkdocs_theme/templates/pyodide-css/hourglass.css +0 -0
- {pyodide_mkdocs_theme-5.4.3 → pyodide_mkdocs_theme-5.4.5}/pyodide_mkdocs_theme/templates/pyodide-css/qcm.css +0 -0
- {pyodide_mkdocs_theme-5.4.3 → pyodide_mkdocs_theme-5.4.5}/pyodide_mkdocs_theme/templates/pyodide-css/terminal.css +0 -0
- {pyodide_mkdocs_theme-5.4.3 → pyodide_mkdocs_theme-5.4.5}/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.5
|
|
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
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
__version__ = "5.4.5"
|
|
@@ -577,26 +577,26 @@ class Ide(CommonTermIde):
|
|
|
577
577
|
Build a list of all the buttons to add after the IDE.
|
|
578
578
|
"""
|
|
579
579
|
buttons = [
|
|
580
|
-
self.create_button("play"),
|
|
581
|
-
self.create_button("check") if self.has_check_btn else "",
|
|
582
|
-
self.create_button("download", margin_left=1 ),
|
|
583
|
-
self.create_button("upload", margin_right=1 ),
|
|
584
|
-
self.create_button("restart"),
|
|
585
|
-
self.create_button("save"),
|
|
580
|
+
self.create_button("play", bare_tip=True),
|
|
581
|
+
self.create_button("check", bare_tip=True) if self.has_check_btn else "",
|
|
582
|
+
self.create_button("download", bare_tip=True, margin_left=1 ),
|
|
583
|
+
self.create_button("upload", bare_tip=True, margin_right=1 ),
|
|
584
|
+
self.create_button("restart", bare_tip=True),
|
|
585
|
+
self.create_button("save", bare_tip=True),
|
|
586
586
|
]
|
|
587
587
|
|
|
588
588
|
if self.export:
|
|
589
589
|
buttons.append(
|
|
590
|
-
self.create_button("zip")
|
|
590
|
+
self.create_button("zip", bare_tip=True)
|
|
591
591
|
)
|
|
592
592
|
if self.has_corr_btn: # "mkdocs serve" only:
|
|
593
593
|
buttons.append(
|
|
594
|
-
self.create_button("corr_btn", margin_left=1)
|
|
594
|
+
self.create_button("corr_btn", bare_tip=True, margin_left=1)
|
|
595
595
|
)
|
|
596
596
|
if self.has_reveal_btn: # "mkdocs serve" only:
|
|
597
597
|
margin_left = {} if self.has_corr_btn else {"margin_left": 1}
|
|
598
598
|
buttons.append(
|
|
599
|
-
self.create_button("show", **margin_left),
|
|
599
|
+
self.create_button("show", bare_tip=True, **margin_left),
|
|
600
600
|
)
|
|
601
601
|
|
|
602
602
|
return buttons
|
|
@@ -777,6 +777,7 @@ class IdeManagerMdHtmlGenerator(IdeSectionsManager):
|
|
|
777
777
|
margin_right: float = 0.2,
|
|
778
778
|
extra_btn_kls: str = "",
|
|
779
779
|
tip_side: P5BtnLocation = "",
|
|
780
|
+
bare_tip: bool = False,
|
|
780
781
|
**kwargs
|
|
781
782
|
) -> str:
|
|
782
783
|
"""
|
|
@@ -794,6 +795,7 @@ class IdeManagerMdHtmlGenerator(IdeSectionsManager):
|
|
|
794
795
|
margin_right = margin_right,
|
|
795
796
|
extra_btn_kls = extra_btn_kls,
|
|
796
797
|
tip_side = tip_side,
|
|
798
|
+
bare_tip = bare_tip,
|
|
797
799
|
**kwargs
|
|
798
800
|
)
|
|
799
801
|
|
|
@@ -834,7 +836,7 @@ class IdeManagerMdHtmlGenerator(IdeSectionsManager):
|
|
|
834
836
|
if bare_tip:
|
|
835
837
|
tip_span = ""
|
|
836
838
|
kwargs['data'] = kwargs.get('data', {})
|
|
837
|
-
kwargs['data']['tip-txt'] = tip_txt
|
|
839
|
+
kwargs['data']['tip-txt'] = str(tip_txt)
|
|
838
840
|
if tip_txt.em: kwargs['data']['tip-width'] = tip_txt.em
|
|
839
841
|
else:
|
|
840
842
|
tip_span = Html.tooltip(tip_txt, tip_txt.em, tip_side=tip_side or P5BtnLocation.bottom)
|
|
@@ -65,6 +65,14 @@ class IdePlayground(CommonGeneratedIde, Ide):
|
|
|
65
65
|
|
|
66
66
|
|
|
67
67
|
|
|
68
|
+
def exported_items(self):
|
|
69
|
+
yield from (
|
|
70
|
+
(k,v) if k!='deactivate_stdout_for_secrets' else (k, False)
|
|
71
|
+
for k,v in super().exported_items()
|
|
72
|
+
)
|
|
73
|
+
|
|
74
|
+
|
|
75
|
+
|
|
68
76
|
def register_ide_for_tests(self):
|
|
69
77
|
""" IdeTester instances are never registered for testing... """
|
|
70
78
|
|
|
@@ -106,16 +114,18 @@ class IdePlayground(CommonGeneratedIde, Ide):
|
|
|
106
114
|
"""
|
|
107
115
|
|
|
108
116
|
return f"""
|
|
109
|
-
# Playground {
|
|
117
|
+
# Playground {{ data-search-exclude }}
|
|
110
118
|
|
|
111
119
|
|
|
112
120
|
Cette page permet de développer dynamiquement dans un contexte où les différentes sections sont modifiables et exécutables à volonté : lorsque l'IDE est exécuté, les contenus de tous les autres éditeurs de la page sont utilisés en tant que sections de l'IDE.
|
|
113
121
|
|
|
122
|
+
* Les raccourcis ++ctrl+s++ (tests publics) et ++ctrl+enter++ (validation) sont actifs dans n'importe quel éditeur de la page.
|
|
123
|
+
* Le bouton de téléversement permet d'importer un fichier existant pour ensuite en modifier les différentes sections.
|
|
124
|
+
* Le bouton de téléchargement sous l'IDE permet de récupérer un fichier PMT correctement formaté, avec toutes les sections assemblées.
|
|
114
125
|
* Le contenu de la section `tests` est automatiquement exécuté après le contenu de l'IDE : il n'est pas nécessaire d'en rajouter le code dans celui-ci pour retrouver le comportement habituel des IDEs normaux, que ce soit pour les tests publics ou les validations.
|
|
115
126
|
* Mermaid est utilisable dans cette page, ainsi que les autres outils complémentaires (p5, matplotlib, ...).
|
|
116
|
-
*
|
|
117
|
-
*
|
|
118
|
-
* Les raccourcis ++ctrl+s++ et ++ctrl+enter++ sont actifs depuis n'importe quel éditeur dans la page.
|
|
127
|
+
* Dans la page Playground, la sortie standard est toujours visible durant les validations, de manière à ne pas rencontrer d'erreurs si le code des tests secrets utilise `terminal_message`.
|
|
128
|
+
* L'id html de la figure a la valeur par défaut pour une page localisée directement dans le `docs_dir`.
|
|
119
129
|
|
|
120
130
|
<br>
|
|
121
131
|
|
|
@@ -434,10 +434,6 @@ class MaestroMacros(MaestroMacroManager):
|
|
|
434
434
|
search plugin starts indexing stuff in the related plugin (which precisely happens
|
|
435
435
|
in the on_page_context hook).
|
|
436
436
|
"""
|
|
437
|
-
# pylint: disable=pointless-string-statement
|
|
438
|
-
|
|
439
|
-
# Log AFTER the call to `get_page_config_and_set_base_url`, because self.file_location
|
|
440
|
-
# needs the current page object:
|
|
441
437
|
logger.debug(f"Add scripts + encrypt solutions and remarks in {self.file_location()}")
|
|
442
438
|
|
|
443
439
|
chunks = []
|
|
@@ -657,9 +657,9 @@ IDE = MacroConfigSrc(
|
|
|
657
657
|
deactivated.
|
|
658
658
|
""",
|
|
659
659
|
docs = """
|
|
660
|
-
Clef à passer en argument de [`terminal_message`](--IDEs-terminal_message)
|
|
661
|
-
autoriser son utilisation lorsque la sortie standard est
|
|
662
|
-
tests.
|
|
660
|
+
Clef à passer en argument de [`terminal_message`](--IDEs-terminal_message)
|
|
661
|
+
pour autoriser son utilisation lorsque [la sortie standard est
|
|
662
|
+
désactivée](--pyodide_macros_ides_deactivate_stdout_for_secrets) pendant les tests.
|
|
663
663
|
""",
|
|
664
664
|
extra_docs='--8<-- "docs_tools/inclusions/IDE_STD_KEY_validation.md"',
|
|
665
665
|
),
|
|
@@ -1303,9 +1303,10 @@ MULTI_QCM = MultiQcmConfigSrc.with_default_docs(
|
|
|
1303
1303
|
ConfigOptionSrc(
|
|
1304
1304
|
'DUMP', bool, default=False,
|
|
1305
1305
|
docs="""
|
|
1306
|
-
Crée un fichier json avec les données du qcm en cours dans le dossier de la page en cours.
|
|
1306
|
+
Crée un fichier json avec les données du qcm en cours dans le dossier de la page en cours.{{
|
|
1307
|
+
pmt_note("Utilisable uniquement en local.")}}
|
|
1307
1308
|
""",
|
|
1308
|
-
yaml_desc="Dump the MCQ content as json.",
|
|
1309
|
+
yaml_desc="Dump the MCQ content as json (local use only).",
|
|
1309
1310
|
),
|
|
1310
1311
|
))
|
|
1311
1312
|
|
|
@@ -424,6 +424,10 @@ IDES_CONFIG = SubConfigSrc(
|
|
|
424
424
|
extra_docs="""
|
|
425
425
|
Détermine si la sortie standard (stdout) sera visible dans les terminaux lors
|
|
426
426
|
des tests secrets ou non.
|
|
427
|
+
|
|
428
|
+
Si la sortie standard est désactivée, il est impossible d'utiliser la fonction
|
|
429
|
+
`terminal_message` durant les tests secrets sans passer en premier argument la
|
|
430
|
+
valeur correspondant à l'argument [`STD_KEY`](--IDE-STD_KEY) de l'IDE concerné.
|
|
427
431
|
""",
|
|
428
432
|
yaml_desc="""
|
|
429
433
|
Define if the stdout will be shown in terminals to the user or not, during the
|
|
@@ -211,6 +211,11 @@ class Case:
|
|
|
211
211
|
previously revealed stuff. Use 1000 to get infinite number of attempts.
|
|
212
212
|
"""
|
|
213
213
|
|
|
214
|
+
done: Optional[int] = None
|
|
215
|
+
"""
|
|
216
|
+
Value to use for this.storage.done at the beginning of this test.
|
|
217
|
+
"""
|
|
218
|
+
|
|
214
219
|
show_only_assertion_errors_for_secrets: Optional[bool] = None
|
|
215
220
|
""" Override the current value for the source page, if given. """
|
|
216
221
|
|
|
@@ -277,6 +277,7 @@ class PyodideSectionsRunnerBase {
|
|
|
277
277
|
LOGGER_CONFIG.ACTIVATE && jsLogger(loggerName)
|
|
278
278
|
|
|
279
279
|
CONFIG.calledMermaid = false
|
|
280
|
+
const wasDirty = this.isDirty
|
|
280
281
|
this.makeDirty(false) // Assume executions will go well (see note in finally block)
|
|
281
282
|
this.running = runningMan
|
|
282
283
|
let runtime
|
|
@@ -307,10 +308,16 @@ class PyodideSectionsRunnerBase {
|
|
|
307
308
|
// For isDirty update, DO NOT only rely on `this.isDirty = runtime.stopped`, so that the
|
|
308
309
|
// runner itself can set the value on a success if needed, and it won't be overridden here
|
|
309
310
|
// (useful if a valid "play" is still considered dirty when a validation exists...).
|
|
310
|
-
if(!runtime || runtime.stopped){
|
|
311
|
+
if(!runtime || runtime.stopped || runningMan.isPlaying && wasDirty){
|
|
311
312
|
this.makeDirty()
|
|
312
313
|
}
|
|
313
314
|
|
|
315
|
+
// AFTER updating isDirty, remove the validation button border if the current execution
|
|
316
|
+
// is a validation:
|
|
317
|
+
if(runningMan.isValidating){
|
|
318
|
+
this._getJValidationButton().removeClass("dirty-validation")
|
|
319
|
+
}
|
|
320
|
+
|
|
314
321
|
if(runtime){
|
|
315
322
|
await finallyTeardown.call(this, runtime)
|
|
316
323
|
}
|
|
@@ -544,7 +551,7 @@ class PyodideSequentialRunner extends PyodideSectionsRunnerBase {
|
|
|
544
551
|
super(id)
|
|
545
552
|
|
|
546
553
|
this.rotateTerminalMessage = true
|
|
547
|
-
this.isDirty = true // Tell if the last run
|
|
554
|
+
this.isDirty = true // Tell if the last run was successful or not, or if the content has been modified
|
|
548
555
|
// without being run (handled unconditionally for all elements, even if they aren't
|
|
549
556
|
// "in sequential run". The RUNNERS_MANAGER handles what is actually to be run or not).
|
|
550
557
|
}
|
|
@@ -780,6 +780,7 @@ class IdeFullScreenManager extends IdeFullScreenGlobalManager {
|
|
|
780
780
|
|
|
781
781
|
this.storeInitPositionsDataIfNeeded()
|
|
782
782
|
const focused = document.activeElement
|
|
783
|
+
const floatingTip = $("#floating-tip").detach()
|
|
783
784
|
|
|
784
785
|
this.global[0].requestFullscreen().then(async _=>{
|
|
785
786
|
LOGGER_CONFIG.ACTIVATE && jsLogger('[ScreenMode]', "Full screen ready")
|
|
@@ -791,6 +792,8 @@ class IdeFullScreenManager extends IdeFullScreenGlobalManager {
|
|
|
791
792
|
this.guiIdeFlags.internalIsFullScreen = true
|
|
792
793
|
splitScreenBtn.addClass('deactivated')
|
|
793
794
|
this.ideScreenModeVerticalResize({goingFullScreen: true})
|
|
795
|
+
this.global.append(floatingTip)
|
|
796
|
+
|
|
794
797
|
focused.focus() // Always give back the focus to the element which had it before.
|
|
795
798
|
|
|
796
799
|
LOGGER_CONFIG.ACTIVATE && jsLogger('[ScreenMode]', "Full screen setup - DONE")
|
|
@@ -806,6 +809,7 @@ class IdeFullScreenManager extends IdeFullScreenGlobalManager {
|
|
|
806
809
|
'[ScreenMode]', "Full screen reversion with", minLines, maxLines
|
|
807
810
|
)
|
|
808
811
|
|
|
812
|
+
floatingTip.detach().appendTo('body')
|
|
809
813
|
if(this.splitScreenActivated) splitScreenBtn.removeClass('deactivated')
|
|
810
814
|
this.guiIdeFlags.internalIsFullScreen = false
|
|
811
815
|
const resizeOption = this.isInSplit ? {topDivH:this.setupTopDivHeight()}
|
|
@@ -177,7 +177,7 @@ class IdeHistoryManager extends IdeAceManager {
|
|
|
177
177
|
* */
|
|
178
178
|
updateValidationBtnColor(done=undefined, jElt=undefined){
|
|
179
179
|
done ??= this.storage.done
|
|
180
|
-
jElt ??= this.
|
|
180
|
+
jElt ??= this._getJValidationButton()
|
|
181
181
|
if(!this.isDelayedRevelation){
|
|
182
182
|
const color = this.getIdeStateColor(done)
|
|
183
183
|
jElt.css('--ide-btn-color', color)
|
|
@@ -185,6 +185,10 @@ class IdeHistoryManager extends IdeAceManager {
|
|
|
185
185
|
return jElt
|
|
186
186
|
}
|
|
187
187
|
|
|
188
|
+
_getJValidationButton(){
|
|
189
|
+
return this.global.find("button[btn_kind=check]")
|
|
190
|
+
}
|
|
191
|
+
|
|
188
192
|
|
|
189
193
|
getIdeStateColor(done){ // CodCap
|
|
190
194
|
return !done ? "unset" : done<0 ? 'red' : 'green'
|
|
@@ -193,6 +197,13 @@ class IdeHistoryManager extends IdeAceManager {
|
|
|
193
197
|
clearValidations(){ this.validations.length = 0 }
|
|
194
198
|
|
|
195
199
|
|
|
200
|
+
makeDirty(isDirty=true){
|
|
201
|
+
super.makeDirty(isDirty)
|
|
202
|
+
if(isDirty){
|
|
203
|
+
this._getJValidationButton().addClass("dirty-validation")
|
|
204
|
+
}
|
|
205
|
+
}
|
|
206
|
+
|
|
196
207
|
|
|
197
208
|
setupHistoryBtn(jHistItem, [done, time, code]){
|
|
198
209
|
jHistItem.text(time)
|
|
@@ -262,20 +273,21 @@ class IdeFeedbackManager extends IdeHistoryManager {
|
|
|
262
273
|
if(runtime.stopped || !step) return
|
|
263
274
|
|
|
264
275
|
const playing = this.running.isPlaying
|
|
265
|
-
const intro = playing ? "" : CONFIG.lang.validation.msg
|
|
266
276
|
const section = CONFIG.lang[step].msg
|
|
267
|
-
const
|
|
277
|
+
const isDone = this.storage.done > 0
|
|
278
|
+
const okMsg = CONFIG.lang.successMsg.msg
|
|
279
|
+
const intro = playing ? "" : CONFIG.lang.validation.msg
|
|
268
280
|
|
|
269
|
-
let msg = `${ intro }${ section }: ${
|
|
270
|
-
if(!code) msg = ""
|
|
271
|
-
if(playing && !this.hasCheckBtn){
|
|
272
|
-
msg = CONFIG.lang.successMsgNoTests.msg
|
|
281
|
+
let msg = `${ intro }${ section }: ${ okMsg }` // Default section message
|
|
282
|
+
if(!code) msg = "" // No default message if no code in the section...
|
|
283
|
+
if(playing && !this.hasCheckBtn){ // ...but ensure the default ending message is shown,
|
|
284
|
+
msg = CONFIG.lang.successMsgNoTests.msg // if this is "playing" and nothing else to do after.
|
|
273
285
|
}
|
|
274
286
|
|
|
275
287
|
if(msg) this.terminalEcho(msg)
|
|
276
288
|
|
|
277
289
|
// Prepare a "very final" message if needed:
|
|
278
|
-
if(playing && this.hasCheckBtn){
|
|
290
|
+
if(playing && this.hasCheckBtn && (!isDone || this.isDirty)){
|
|
279
291
|
// If a validation button is present while running the public tests
|
|
280
292
|
runtime.finalMsg = CONFIG.lang.unforgettable.msg
|
|
281
293
|
}
|
|
@@ -718,6 +730,42 @@ class IdeRunnerLogic extends IdeFeedbackManager {
|
|
|
718
730
|
* */
|
|
719
731
|
export class IdeRunner extends IdeRunnerLogic {
|
|
720
732
|
|
|
733
|
+
static KEY_UP_NO_CHANGES = new Set(`
|
|
734
|
+
Control
|
|
735
|
+
Alt
|
|
736
|
+
AltGraph
|
|
737
|
+
Meta
|
|
738
|
+
CapsLock
|
|
739
|
+
NumLock
|
|
740
|
+
Shift
|
|
741
|
+
ContextMenu
|
|
742
|
+
F1
|
|
743
|
+
F2
|
|
744
|
+
F3
|
|
745
|
+
F4
|
|
746
|
+
F5
|
|
747
|
+
F6
|
|
748
|
+
F7
|
|
749
|
+
F8
|
|
750
|
+
F9
|
|
751
|
+
F10
|
|
752
|
+
F11
|
|
753
|
+
F12
|
|
754
|
+
Insert
|
|
755
|
+
PageUp
|
|
756
|
+
PageDown
|
|
757
|
+
End
|
|
758
|
+
Home
|
|
759
|
+
Escape
|
|
760
|
+
`.trim().split(/\s+/g))
|
|
761
|
+
|
|
762
|
+
static KEY_UP_ARROWS = new Set(`
|
|
763
|
+
ArrowLeft
|
|
764
|
+
ArrowRight
|
|
765
|
+
ArrowUp
|
|
766
|
+
ArrowDown
|
|
767
|
+
`.trim().split(/\s+/g))
|
|
768
|
+
|
|
721
769
|
|
|
722
770
|
/**Process to "re-initiate" the internal state of the IDE (useful for testing) */
|
|
723
771
|
_init(){
|
|
@@ -852,7 +900,7 @@ export class IdeRunner extends IdeRunnerLogic {
|
|
|
852
900
|
|
|
853
901
|
// Add fullscreen activation binding, but NOT through the ACE editor commands
|
|
854
902
|
// cannot control the exit :/ )
|
|
855
|
-
this.global.on('keyup', this.
|
|
903
|
+
this.global.on('keyup', this.respondToKeyUp.bind(this))
|
|
856
904
|
|
|
857
905
|
// Bind editor extra buttons:
|
|
858
906
|
this.global.find(".comment.tooltip" ).on("click", this.toggleComments.bind(this))
|
|
@@ -930,22 +978,32 @@ export class IdeRunner extends IdeRunnerLogic {
|
|
|
930
978
|
}
|
|
931
979
|
|
|
932
980
|
|
|
933
|
-
async
|
|
934
|
-
|
|
935
|
-
|
|
981
|
+
async respondToKeyUp(event){
|
|
982
|
+
|
|
983
|
+
const goFullScreen = (event.key == 'Escape'
|
|
936
984
|
&& !IdeFullScreenGlobalManager.someMenuOpened
|
|
937
985
|
&& !this.guiIdeFlags.escapeIdeSearch
|
|
938
986
|
&& !somethingFullScreen()
|
|
939
|
-
)
|
|
987
|
+
)
|
|
988
|
+
const justMoving = (
|
|
989
|
+
this.constructor.KEY_UP_NO_CHANGES.has(event.key) ||
|
|
990
|
+
this.constructor.KEY_UP_ARROWS.has(event.key) && !event.altKey ||
|
|
991
|
+
event.ctrlKey && "acfhs Enter".includes(event.key) ||
|
|
992
|
+
event.key == 'Escape'
|
|
993
|
+
)
|
|
994
|
+
|
|
995
|
+
if(goFullScreen){
|
|
940
996
|
this.requestFullScreen()
|
|
941
|
-
// The browser already handles on its own going out of fullscreen with escape
|
|
997
|
+
// The browser already handles on its own going out of fullscreen with escape
|
|
998
|
+
// => no "else" needed for that
|
|
942
999
|
|
|
943
1000
|
}else if(event.altKey && event.key==':'){
|
|
944
1001
|
this.switchSplitScreenFromButton(event)
|
|
945
1002
|
|
|
946
|
-
}else{
|
|
1003
|
+
}else if(!justMoving){
|
|
947
1004
|
this.makeDirty()
|
|
948
1005
|
}
|
|
1006
|
+
|
|
949
1007
|
this.guiIdeFlags.escapeIdeSearch = false
|
|
950
1008
|
}
|
|
951
1009
|
|
|
@@ -404,6 +404,13 @@ class IdeTesterGuiManager extends IdeRunner {
|
|
|
404
404
|
|
|
405
405
|
_applyConfAndData(onLoad=false){
|
|
406
406
|
|
|
407
|
+
// Always reset the "done" state, to make tests independent of each others.
|
|
408
|
+
this.storage.done = 0
|
|
409
|
+
if('done' in this.conf){
|
|
410
|
+
this.storage.done = this.conf.done
|
|
411
|
+
}
|
|
412
|
+
this.updateValidationBtnColor()
|
|
413
|
+
|
|
407
414
|
const hasSetMaxHide = 'set_max_and_hide' in this.conf
|
|
408
415
|
if(onLoad || hasSetMaxHide){
|
|
409
416
|
this.conf.reveal_corr_rems = false
|
|
@@ -119,7 +119,7 @@ CONFIG.ACE_COLOR_THEME.aceStyle = {
|
|
|
119
119
|
|
|
120
120
|
/**Automatically define the position of the tooltip around the hovered element by mutation of pos
|
|
121
121
|
* */
|
|
122
|
-
const getAnchorPoint=({width, height, top, left}, pagePos)=>{
|
|
122
|
+
const getAnchorPoint=({width, height, top, left}, pagePos, obj)=>{
|
|
123
123
|
const pos = defaultPos()
|
|
124
124
|
|
|
125
125
|
pos.anchorX = Math.round(pagePos.left + width/2)
|
|
@@ -135,6 +135,10 @@ CONFIG.ACE_COLOR_THEME.aceStyle = {
|
|
|
135
135
|
}else if (pointer.isRight){
|
|
136
136
|
pos.translateX = -100
|
|
137
137
|
}
|
|
138
|
+
|
|
139
|
+
const w = obj.dataset.tipWidth
|
|
140
|
+
if (w!==undefined) pos.width = w+'em'
|
|
141
|
+
|
|
138
142
|
return pos
|
|
139
143
|
}
|
|
140
144
|
|
|
@@ -167,9 +171,9 @@ CONFIG.ACE_COLOR_THEME.aceStyle = {
|
|
|
167
171
|
// Positions & dimensions in viewport:
|
|
168
172
|
const rect = this.getBoundingClientRect()
|
|
169
173
|
|
|
170
|
-
pos = getAnchorPoint(rect, pagePos)
|
|
174
|
+
pos = getAnchorPoint(rect, pagePos, this)
|
|
171
175
|
}
|
|
172
|
-
tipSpan.
|
|
176
|
+
tipSpan.html(this.dataset.tipTxt)
|
|
173
177
|
placement(pos)
|
|
174
178
|
})
|
|
175
179
|
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
[project]
|
|
2
2
|
name = "pyodide-mkdocs-theme"
|
|
3
|
-
version = "5.4.
|
|
3
|
+
version = "5.4.5"
|
|
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.3"
|
|
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.3 → pyodide_mkdocs_theme-5.4.5}/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
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{pyodide_mkdocs_theme-5.4.3 → pyodide_mkdocs_theme-5.4.5}/pyodide_mkdocs_theme/scripts/de/mkdocs.yml
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
{pyodide_mkdocs_theme-5.4.3 → pyodide_mkdocs_theme-5.4.5}/pyodide_mkdocs_theme/scripts/en/mkdocs.yml
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
{pyodide_mkdocs_theme-5.4.3 → pyodide_mkdocs_theme-5.4.5}/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.3 → pyodide_mkdocs_theme-5.4.5}/pyodide_mkdocs_theme/templates/README.md
RENAMED
|
File without changes
|
{pyodide_mkdocs_theme-5.4.3 → pyodide_mkdocs_theme-5.4.5}/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
|
{pyodide_mkdocs_theme-5.4.3 → pyodide_mkdocs_theme-5.4.5}/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
|