pyodide-mkdocs-theme 5.5.4__tar.gz → 5.5.6__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.
Files changed (156) hide show
  1. {pyodide_mkdocs_theme-5.5.4 → pyodide_mkdocs_theme-5.5.6}/PKG-INFO +1 -1
  2. pyodide_mkdocs_theme-5.5.6/pyodide_mkdocs_theme/__version__.py +1 -0
  3. {pyodide_mkdocs_theme-5.5.4 → pyodide_mkdocs_theme-5.5.6}/pyodide_mkdocs_theme/pyodide_macros/plugin/maestro_base.py +1 -0
  4. {pyodide_mkdocs_theme-5.5.4 → pyodide_mkdocs_theme-5.5.6}/pyodide_mkdocs_theme/pyodide_macros/plugin/maestro_contracts.py +35 -36
  5. {pyodide_mkdocs_theme-5.5.4 → pyodide_mkdocs_theme-5.5.6}/pyodide_mkdocs_theme/pyodide_macros/plugin_config/definitions/plugin_config.py +14 -6
  6. {pyodide_mkdocs_theme-5.5.4 → pyodide_mkdocs_theme-5.5.6}/pyodide_mkdocs_theme/pyodide_macros/plugin_config/plugin_config_src.py +2 -2
  7. {pyodide_mkdocs_theme-5.5.4 → pyodide_mkdocs_theme-5.5.6}/pyodide_mkdocs_theme/templates/js-libs/0-config.js +0 -3
  8. {pyodide_mkdocs_theme-5.5.4 → pyodide_mkdocs_theme-5.5.6}/pyodide_mkdocs_theme/templates/js-libs/functoolsStorage.js +1 -1
  9. {pyodide_mkdocs_theme-5.5.4 → pyodide_mkdocs_theme-5.5.6}/pyodide_mkdocs_theme/templates/js-libs/functoolsUi.js +8 -3
  10. {pyodide_mkdocs_theme-5.5.4 → pyodide_mkdocs_theme-5.5.6}/pyodide_mkdocs_theme/templates/js-libs/functoolsUiBuilder.js +8 -6
  11. {pyodide_mkdocs_theme-5.5.4 → pyodide_mkdocs_theme-5.5.6}/pyodide_mkdocs_theme/templates/js-per-pages/4-0-idesManager-ide.js +2 -0
  12. {pyodide_mkdocs_theme-5.5.4 → pyodide_mkdocs_theme-5.5.6}/pyodide_mkdocs_theme/templates/js-per-pages/4-ideRunner-ide.js +19 -19
  13. {pyodide_mkdocs_theme-5.5.4 → pyodide_mkdocs_theme-5.5.6}/pyodide_mkdocs_theme/templates/js-scripts/subscriptions.js +2 -2
  14. {pyodide_mkdocs_theme-5.5.4 → pyodide_mkdocs_theme-5.5.6}/pyodide_mkdocs_theme/templates/pyodide-css/0-generic.css +8 -2
  15. {pyodide_mkdocs_theme-5.5.4 → pyodide_mkdocs_theme-5.5.6}/pyodide_mkdocs_theme/templates/pyodide-css/history.css +7 -3
  16. {pyodide_mkdocs_theme-5.5.4 → pyodide_mkdocs_theme-5.5.6}/pyproject.toml +1 -1
  17. pyodide_mkdocs_theme-5.5.4/pyodide_mkdocs_theme/__version__.py +0 -1
  18. {pyodide_mkdocs_theme-5.5.4 → pyodide_mkdocs_theme-5.5.6}/LICENSE +0 -0
  19. {pyodide_mkdocs_theme-5.5.4 → pyodide_mkdocs_theme-5.5.6}/README.md +0 -0
  20. {pyodide_mkdocs_theme-5.5.4 → pyodide_mkdocs_theme-5.5.6}/pyodide_mkdocs_theme/PMT_tools/p5/__init__.py +0 -0
  21. {pyodide_mkdocs_theme-5.5.4 → pyodide_mkdocs_theme-5.5.6}/pyodide_mkdocs_theme/PMT_tools/p5/cdns.txt +0 -0
  22. {pyodide_mkdocs_theme-5.5.4 → pyodide_mkdocs_theme-5.5.6}/pyodide_mkdocs_theme/PMT_tools/p5v2/__init__.py +0 -0
  23. {pyodide_mkdocs_theme-5.5.4 → pyodide_mkdocs_theme-5.5.6}/pyodide_mkdocs_theme/PMT_tools/p5v2/cdns.txt +0 -0
  24. {pyodide_mkdocs_theme-5.5.4 → pyodide_mkdocs_theme-5.5.6}/pyodide_mkdocs_theme/PMT_tools/vis/__init__.py +0 -0
  25. {pyodide_mkdocs_theme-5.5.4 → pyodide_mkdocs_theme-5.5.6}/pyodide_mkdocs_theme/PMT_tools/vis/cdns.txt +0 -0
  26. {pyodide_mkdocs_theme-5.5.4 → pyodide_mkdocs_theme-5.5.6}/pyodide_mkdocs_theme/PMT_tools/vis_network/__init__.py +0 -0
  27. {pyodide_mkdocs_theme-5.5.4 → pyodide_mkdocs_theme-5.5.6}/pyodide_mkdocs_theme/PMT_tools/vis_network/cdns.txt +0 -0
  28. {pyodide_mkdocs_theme-5.5.4 → pyodide_mkdocs_theme-5.5.6}/pyodide_mkdocs_theme/__init__.py +0 -0
  29. {pyodide_mkdocs_theme-5.5.4 → pyodide_mkdocs_theme-5.5.6}/pyodide_mkdocs_theme/__main__.py +0 -0
  30. {pyodide_mkdocs_theme-5.5.4 → pyodide_mkdocs_theme-5.5.6}/pyodide_mkdocs_theme/basthon_p5_to_pmt.py +0 -0
  31. {pyodide_mkdocs_theme-5.5.4 → pyodide_mkdocs_theme-5.5.6}/pyodide_mkdocs_theme/pyodide_macros/__init__.py +0 -0
  32. {pyodide_mkdocs_theme-5.5.4 → pyodide_mkdocs_theme-5.5.6}/pyodide_mkdocs_theme/pyodide_macros/exceptions.py +0 -0
  33. {pyodide_mkdocs_theme-5.5.4 → pyodide_mkdocs_theme-5.5.6}/pyodide_mkdocs_theme/pyodide_macros/files_extractors/__init__.py +0 -0
  34. {pyodide_mkdocs_theme-5.5.4 → pyodide_mkdocs_theme-5.5.6}/pyodide_mkdocs_theme/pyodide_macros/files_extractors/_inclusions_tools.py +0 -0
  35. {pyodide_mkdocs_theme-5.5.4 → pyodide_mkdocs_theme-5.5.6}/pyodide_mkdocs_theme/pyodide_macros/files_extractors/base0_extractors.py +0 -0
  36. {pyodide_mkdocs_theme-5.5.4 → pyodide_mkdocs_theme-5.5.6}/pyodide_mkdocs_theme/pyodide_macros/files_extractors/base1_contents_extractor.py +0 -0
  37. {pyodide_mkdocs_theme-5.5.4 → pyodide_mkdocs_theme-5.5.6}/pyodide_mkdocs_theme/pyodide_macros/files_extractors/base2_inclusions.py +0 -0
  38. {pyodide_mkdocs_theme-5.5.4 → pyodide_mkdocs_theme-5.5.6}/pyodide_mkdocs_theme/pyodide_macros/files_extractors/base3_generic_extractors.py +0 -0
  39. {pyodide_mkdocs_theme-5.5.4 → pyodide_mkdocs_theme-5.5.6}/pyodide_mkdocs_theme/pyodide_macros/files_extractors/concrete_extractors.py +0 -0
  40. {pyodide_mkdocs_theme-5.5.4 → pyodide_mkdocs_theme-5.5.6}/pyodide_mkdocs_theme/pyodide_macros/html_builder/__init__.py +0 -0
  41. {pyodide_mkdocs_theme-5.5.4 → pyodide_mkdocs_theme-5.5.6}/pyodide_mkdocs_theme/pyodide_macros/html_builder/_html_builder.py +0 -0
  42. {pyodide_mkdocs_theme-5.5.4 → pyodide_mkdocs_theme-5.5.6}/pyodide_mkdocs_theme/pyodide_macros/html_dependencies/__init__.py +0 -0
  43. {pyodide_mkdocs_theme-5.5.4 → pyodide_mkdocs_theme-5.5.6}/pyodide_mkdocs_theme/pyodide_macros/html_dependencies/deps.py +0 -0
  44. {pyodide_mkdocs_theme-5.5.4 → pyodide_mkdocs_theme-5.5.6}/pyodide_mkdocs_theme/pyodide_macros/html_dependencies/deps_class.py +0 -0
  45. {pyodide_mkdocs_theme-5.5.4 → pyodide_mkdocs_theme-5.5.6}/pyodide_mkdocs_theme/pyodide_macros/indent_parser.py +0 -0
  46. {pyodide_mkdocs_theme-5.5.4 → pyodide_mkdocs_theme-5.5.6}/pyodide_mkdocs_theme/pyodide_macros/macros/__init__.py +0 -0
  47. {pyodide_mkdocs_theme-5.5.4 → pyodide_mkdocs_theme-5.5.6}/pyodide_mkdocs_theme/pyodide_macros/macros/figure.py +0 -0
  48. {pyodide_mkdocs_theme-5.5.4 → pyodide_mkdocs_theme-5.5.6}/pyodide_mkdocs_theme/pyodide_macros/macros/ide_ide.py +0 -0
  49. {pyodide_mkdocs_theme-5.5.4 → pyodide_mkdocs_theme-5.5.6}/pyodide_mkdocs_theme/pyodide_macros/macros/ide_manager.py +0 -0
  50. {pyodide_mkdocs_theme-5.5.4 → pyodide_mkdocs_theme-5.5.6}/pyodide_mkdocs_theme/pyodide_macros/macros/ide_playground.py +0 -0
  51. {pyodide_mkdocs_theme-5.5.4 → pyodide_mkdocs_theme-5.5.6}/pyodide_mkdocs_theme/pyodide_macros/macros/ide_py_btn.py +0 -0
  52. {pyodide_mkdocs_theme-5.5.4 → pyodide_mkdocs_theme-5.5.6}/pyodide_mkdocs_theme/pyodide_macros/macros/ide_run_macro.py +0 -0
  53. {pyodide_mkdocs_theme-5.5.4 → pyodide_mkdocs_theme-5.5.6}/pyodide_mkdocs_theme/pyodide_macros/macros/ide_term_ide.py +0 -0
  54. {pyodide_mkdocs_theme-5.5.4 → pyodide_mkdocs_theme-5.5.6}/pyodide_mkdocs_theme/pyodide_macros/macros/ide_terminal.py +0 -0
  55. {pyodide_mkdocs_theme-5.5.4 → pyodide_mkdocs_theme-5.5.6}/pyodide_mkdocs_theme/pyodide_macros/macros/ide_tester.py +0 -0
  56. {pyodide_mkdocs_theme-5.5.4 → pyodide_mkdocs_theme-5.5.6}/pyodide_mkdocs_theme/pyodide_macros/macros/py_script.py +0 -0
  57. {pyodide_mkdocs_theme-5.5.4 → pyodide_mkdocs_theme-5.5.6}/pyodide_mkdocs_theme/pyodide_macros/macros/qcm.py +0 -0
  58. {pyodide_mkdocs_theme-5.5.4 → pyodide_mkdocs_theme-5.5.6}/pyodide_mkdocs_theme/pyodide_macros/macros/runners_macros.py +0 -0
  59. {pyodide_mkdocs_theme-5.5.4 → pyodide_mkdocs_theme-5.5.6}/pyodide_mkdocs_theme/pyodide_macros/messages/__init__.py +0 -0
  60. {pyodide_mkdocs_theme-5.5.4 → pyodide_mkdocs_theme-5.5.6}/pyodide_mkdocs_theme/pyodide_macros/messages/classes.py +0 -0
  61. {pyodide_mkdocs_theme-5.5.4 → pyodide_mkdocs_theme-5.5.6}/pyodide_mkdocs_theme/pyodide_macros/messages/de_lang.py +0 -0
  62. {pyodide_mkdocs_theme-5.5.4 → pyodide_mkdocs_theme-5.5.6}/pyodide_mkdocs_theme/pyodide_macros/messages/en_lang.py +0 -0
  63. {pyodide_mkdocs_theme-5.5.4 → pyodide_mkdocs_theme-5.5.6}/pyodide_mkdocs_theme/pyodide_macros/messages/fr_lang.py +0 -0
  64. {pyodide_mkdocs_theme-5.5.4 → pyodide_mkdocs_theme-5.5.6}/pyodide_mkdocs_theme/pyodide_macros/messages/proxy.py +0 -0
  65. {pyodide_mkdocs_theme-5.5.4 → pyodide_mkdocs_theme-5.5.6}/pyodide_mkdocs_theme/pyodide_macros/parsing.py +0 -0
  66. {pyodide_mkdocs_theme-5.5.4 → pyodide_mkdocs_theme-5.5.6}/pyodide_mkdocs_theme/pyodide_macros/paths_utils.py +0 -0
  67. {pyodide_mkdocs_theme-5.5.4 → pyodide_mkdocs_theme-5.5.6}/pyodide_mkdocs_theme/pyodide_macros/plugin/__init__.py +0 -0
  68. {pyodide_mkdocs_theme-5.5.4 → pyodide_mkdocs_theme-5.5.6}/pyodide_mkdocs_theme/pyodide_macros/plugin/config.py +0 -0
  69. {pyodide_mkdocs_theme-5.5.4 → pyodide_mkdocs_theme-5.5.6}/pyodide_mkdocs_theme/pyodide_macros/plugin/maestro_files.py +0 -0
  70. {pyodide_mkdocs_theme-5.5.4 → pyodide_mkdocs_theme-5.5.6}/pyodide_mkdocs_theme/pyodide_macros/plugin/maestro_indent.py +0 -0
  71. {pyodide_mkdocs_theme-5.5.4 → pyodide_mkdocs_theme-5.5.6}/pyodide_mkdocs_theme/pyodide_macros/plugin/maestro_macros.py +0 -0
  72. {pyodide_mkdocs_theme-5.5.4 → pyodide_mkdocs_theme-5.5.6}/pyodide_mkdocs_theme/pyodide_macros/plugin/maestro_meta.py +0 -0
  73. {pyodide_mkdocs_theme-5.5.4 → pyodide_mkdocs_theme-5.5.6}/pyodide_mkdocs_theme/pyodide_macros/plugin/maestro_templates.py +0 -0
  74. {pyodide_mkdocs_theme-5.5.4 → pyodide_mkdocs_theme-5.5.6}/pyodide_mkdocs_theme/pyodide_macros/plugin/pyodide_macros_plugin.py +0 -0
  75. {pyodide_mkdocs_theme-5.5.4 → pyodide_mkdocs_theme-5.5.6}/pyodide_mkdocs_theme/pyodide_macros/plugin_config/__init__.py +0 -0
  76. {pyodide_mkdocs_theme-5.5.4 → pyodide_mkdocs_theme-5.5.6}/pyodide_mkdocs_theme/pyodide_macros/plugin_config/_string_tools_and_constants.py +0 -0
  77. {pyodide_mkdocs_theme-5.5.4 → pyodide_mkdocs_theme-5.5.6}/pyodide_mkdocs_theme/pyodide_macros/plugin_config/common_tree_src.py +0 -0
  78. {pyodide_mkdocs_theme-5.5.4 → pyodide_mkdocs_theme-5.5.6}/pyodide_mkdocs_theme/pyodide_macros/plugin_config/config_option_src.py +0 -0
  79. {pyodide_mkdocs_theme-5.5.4 → pyodide_mkdocs_theme-5.5.6}/pyodide_mkdocs_theme/pyodide_macros/plugin_config/definitions/__init__.py +0 -0
  80. {pyodide_mkdocs_theme-5.5.4 → pyodide_mkdocs_theme-5.5.6}/pyodide_mkdocs_theme/pyodide_macros/plugin_config/definitions/docs_dirs_config.py +0 -0
  81. {pyodide_mkdocs_theme-5.5.4 → pyodide_mkdocs_theme-5.5.6}/pyodide_mkdocs_theme/pyodide_macros/plugin_config/definitions/macros_configs.py +0 -0
  82. {pyodide_mkdocs_theme-5.5.4 → pyodide_mkdocs_theme-5.5.6}/pyodide_mkdocs_theme/pyodide_macros/plugin_config/definitions/sub_configs.py +0 -0
  83. {pyodide_mkdocs_theme-5.5.4 → pyodide_mkdocs_theme-5.5.6}/pyodide_mkdocs_theme/pyodide_macros/plugin_config/dumpers.py +0 -0
  84. {pyodide_mkdocs_theme-5.5.4 → pyodide_mkdocs_theme-5.5.6}/pyodide_mkdocs_theme/pyodide_macros/plugin_config/lang_src.py +0 -0
  85. {pyodide_mkdocs_theme-5.5.4 → pyodide_mkdocs_theme-5.5.6}/pyodide_mkdocs_theme/pyodide_macros/plugin_config/macro_config_src.py +0 -0
  86. {pyodide_mkdocs_theme-5.5.4 → pyodide_mkdocs_theme-5.5.6}/pyodide_mkdocs_theme/pyodide_macros/plugin_config/sub_config_src.py +0 -0
  87. {pyodide_mkdocs_theme-5.5.4 → pyodide_mkdocs_theme-5.5.6}/pyodide_mkdocs_theme/pyodide_macros/plugin_tools/__init__.py +0 -0
  88. {pyodide_mkdocs_theme-5.5.4 → pyodide_mkdocs_theme-5.5.6}/pyodide_mkdocs_theme/pyodide_macros/plugin_tools/macros_data.py +0 -0
  89. {pyodide_mkdocs_theme-5.5.4 → pyodide_mkdocs_theme-5.5.6}/pyodide_mkdocs_theme/pyodide_macros/plugin_tools/maestro_tools.py +0 -0
  90. {pyodide_mkdocs_theme-5.5.4 → pyodide_mkdocs_theme-5.5.6}/pyodide_mkdocs_theme/pyodide_macros/plugin_tools/options_alterations.py +0 -0
  91. {pyodide_mkdocs_theme-5.5.4 → pyodide_mkdocs_theme-5.5.6}/pyodide_mkdocs_theme/pyodide_macros/plugin_tools/pages_and_macros_py_configs.py +0 -0
  92. {pyodide_mkdocs_theme-5.5.4 → pyodide_mkdocs_theme-5.5.6}/pyodide_mkdocs_theme/pyodide_macros/plugin_tools/test_cases.py +0 -0
  93. {pyodide_mkdocs_theme-5.5.4 → pyodide_mkdocs_theme-5.5.6}/pyodide_mkdocs_theme/pyodide_macros/pyodide_logger.py +0 -0
  94. {pyodide_mkdocs_theme-5.5.4 → pyodide_mkdocs_theme-5.5.6}/pyodide_mkdocs_theme/pyodide_macros/tools_and_constants.py +0 -0
  95. {pyodide_mkdocs_theme-5.5.4 → pyodide_mkdocs_theme-5.5.6}/pyodide_mkdocs_theme/scripts/de/docs/exo.py +0 -0
  96. {pyodide_mkdocs_theme-5.5.4 → pyodide_mkdocs_theme-5.5.6}/pyodide_mkdocs_theme/scripts/de/docs/index.md +0 -0
  97. {pyodide_mkdocs_theme-5.5.4 → pyodide_mkdocs_theme-5.5.6}/pyodide_mkdocs_theme/scripts/de/mkdocs.yml +0 -0
  98. {pyodide_mkdocs_theme-5.5.4 → pyodide_mkdocs_theme-5.5.6}/pyodide_mkdocs_theme/scripts/en/docs/exo.py +0 -0
  99. {pyodide_mkdocs_theme-5.5.4 → pyodide_mkdocs_theme-5.5.6}/pyodide_mkdocs_theme/scripts/en/docs/index.md +0 -0
  100. {pyodide_mkdocs_theme-5.5.4 → pyodide_mkdocs_theme-5.5.6}/pyodide_mkdocs_theme/scripts/en/mkdocs.yml +0 -0
  101. {pyodide_mkdocs_theme-5.5.4 → pyodide_mkdocs_theme-5.5.6}/pyodide_mkdocs_theme/scripts/fr/docs/exo.py +0 -0
  102. {pyodide_mkdocs_theme-5.5.4 → pyodide_mkdocs_theme-5.5.6}/pyodide_mkdocs_theme/scripts/fr/docs/index.md +0 -0
  103. {pyodide_mkdocs_theme-5.5.4 → pyodide_mkdocs_theme-5.5.6}/pyodide_mkdocs_theme/scripts/fr/mkdocs.yml +0 -0
  104. {pyodide_mkdocs_theme-5.5.4 → pyodide_mkdocs_theme-5.5.6}/pyodide_mkdocs_theme/scripts/models/.gitignore +0 -0
  105. {pyodide_mkdocs_theme-5.5.4 → pyodide_mkdocs_theme-5.5.6}/pyodide_mkdocs_theme/scripts/models/main.py +0 -0
  106. {pyodide_mkdocs_theme-5.5.4 → pyodide_mkdocs_theme-5.5.6}/pyodide_mkdocs_theme/scripts/models/mkdocs.yml +0 -0
  107. {pyodide_mkdocs_theme-5.5.4 → pyodide_mkdocs_theme-5.5.6}/pyodide_mkdocs_theme/scripts/models/pyodide_plot.py +0 -0
  108. {pyodide_mkdocs_theme-5.5.4 → pyodide_mkdocs_theme-5.5.6}/pyodide_mkdocs_theme/scripts/models/requirements.txt +0 -0
  109. {pyodide_mkdocs_theme-5.5.4 → pyodide_mkdocs_theme-5.5.6}/pyodide_mkdocs_theme/scripts/models/toolbox.py +0 -0
  110. {pyodide_mkdocs_theme-5.5.4 → pyodide_mkdocs_theme-5.5.6}/pyodide_mkdocs_theme/templates/README.md +0 -0
  111. {pyodide_mkdocs_theme-5.5.4 → pyodide_mkdocs_theme-5.5.6}/pyodide_mkdocs_theme/templates/__init__.py +0 -0
  112. {pyodide_mkdocs_theme-5.5.4 → pyodide_mkdocs_theme-5.5.6}/pyodide_mkdocs_theme/templates/assets/images/.qcm-circle.svg +0 -0
  113. {pyodide_mkdocs_theme-5.5.4 → pyodide_mkdocs_theme-5.5.6}/pyodide_mkdocs_theme/templates/assets/images/icons8-check-64.png +0 -0
  114. {pyodide_mkdocs_theme-5.5.4 → pyodide_mkdocs_theme-5.5.6}/pyodide_mkdocs_theme/templates/assets/images/icons8-download-64.png +0 -0
  115. {pyodide_mkdocs_theme-5.5.4 → pyodide_mkdocs_theme-5.5.6}/pyodide_mkdocs_theme/templates/assets/images/icons8-play-64.png +0 -0
  116. {pyodide_mkdocs_theme-5.5.4 → pyodide_mkdocs_theme-5.5.6}/pyodide_mkdocs_theme/templates/assets/images/icons8-restart-64.png +0 -0
  117. {pyodide_mkdocs_theme-5.5.4 → pyodide_mkdocs_theme-5.5.6}/pyodide_mkdocs_theme/templates/assets/images/icons8-save-64.png +0 -0
  118. {pyodide_mkdocs_theme-5.5.4 → pyodide_mkdocs_theme-5.5.6}/pyodide_mkdocs_theme/templates/assets/images/icons8-step-64.png +0 -0
  119. {pyodide_mkdocs_theme-5.5.4 → pyodide_mkdocs_theme-5.5.6}/pyodide_mkdocs_theme/templates/assets/images/icons8-stop-64.png +0 -0
  120. {pyodide_mkdocs_theme-5.5.4 → pyodide_mkdocs_theme-5.5.6}/pyodide_mkdocs_theme/templates/assets/images/icons8-upload-64.png +0 -0
  121. {pyodide_mkdocs_theme-5.5.4 → pyodide_mkdocs_theme-5.5.6}/pyodide_mkdocs_theme/templates/assets/images/icons8-zip-64.png +0 -0
  122. {pyodide_mkdocs_theme-5.5.4 → pyodide_mkdocs_theme-5.5.6}/pyodide_mkdocs_theme/templates/base_pmt.html +0 -0
  123. {pyodide_mkdocs_theme-5.5.4 → pyodide_mkdocs_theme-5.5.6}/pyodide_mkdocs_theme/templates/js-libs/0-legacy-subscriber.js +0 -0
  124. {pyodide_mkdocs_theme-5.5.4 → pyodide_mkdocs_theme-5.5.6}/pyodide_mkdocs_theme/templates/js-libs/functools.js +0 -0
  125. {pyodide_mkdocs_theme-5.5.4 → pyodide_mkdocs_theme-5.5.6}/pyodide_mkdocs_theme/templates/js-libs/functoolsTxt.js +0 -0
  126. {pyodide_mkdocs_theme-5.5.4 → pyodide_mkdocs_theme-5.5.6}/pyodide_mkdocs_theme/templates/js-libs/jsLogger.js +0 -0
  127. {pyodide_mkdocs_theme-5.5.4 → pyodide_mkdocs_theme-5.5.6}/pyodide_mkdocs_theme/templates/js-libs/mathjax-libs.js +0 -0
  128. {pyodide_mkdocs_theme-5.5.4 → pyodide_mkdocs_theme-5.5.6}/pyodide_mkdocs_theme/templates/js-libs/process_and_gui.js +0 -0
  129. {pyodide_mkdocs_theme-5.5.4 → pyodide_mkdocs_theme-5.5.6}/pyodide_mkdocs_theme/templates/js-per-pages/0-generic-python-snippets-pyodide.js +0 -0
  130. {pyodide_mkdocs_theme-5.5.4 → pyodide_mkdocs_theme-5.5.6}/pyodide_mkdocs_theme/templates/js-per-pages/1-error_logs-pyodide.js +0 -0
  131. {pyodide_mkdocs_theme-5.5.4 → pyodide_mkdocs_theme-5.5.6}/pyodide_mkdocs_theme/templates/js-per-pages/1-packagesInstaller-install-pyodide.js +0 -0
  132. {pyodide_mkdocs_theme-5.5.4 → pyodide_mkdocs_theme-5.5.6}/pyodide_mkdocs_theme/templates/js-per-pages/1-runtimeManager-runtime-pyodide.js +0 -0
  133. {pyodide_mkdocs_theme-5.5.4 → pyodide_mkdocs_theme-5.5.6}/pyodide_mkdocs_theme/templates/js-per-pages/2-0-runnersManager-runners.js +0 -0
  134. {pyodide_mkdocs_theme-5.5.4 → pyodide_mkdocs_theme-5.5.6}/pyodide_mkdocs_theme/templates/js-per-pages/2-pyodideSectionsRunner-runner-pyodide.js +0 -0
  135. {pyodide_mkdocs_theme-5.5.4 → pyodide_mkdocs_theme-5.5.6}/pyodide_mkdocs_theme/templates/js-per-pages/3-btnRunner-py_btn.js +0 -0
  136. {pyodide_mkdocs_theme-5.5.4 → pyodide_mkdocs_theme-5.5.6}/pyodide_mkdocs_theme/templates/js-per-pages/3-terminalRunner-term.js +0 -0
  137. {pyodide_mkdocs_theme-5.5.4 → pyodide_mkdocs_theme-5.5.6}/pyodide_mkdocs_theme/templates/js-per-pages/4-ideLogistic-ide.js +0 -0
  138. {pyodide_mkdocs_theme-5.5.4 → pyodide_mkdocs_theme-5.5.6}/pyodide_mkdocs_theme/templates/js-per-pages/5-ideTester-ides_test.js +0 -0
  139. {pyodide_mkdocs_theme-5.5.4 → pyodide_mkdocs_theme-5.5.6}/pyodide_mkdocs_theme/templates/js-per-pages/6-2-init-playground.js +0 -0
  140. {pyodide_mkdocs_theme-5.5.4 → pyodide_mkdocs_theme-5.5.6}/pyodide_mkdocs_theme/templates/js-per-pages/6-idePlayground-playground.js +0 -0
  141. {pyodide_mkdocs_theme-5.5.4 → pyodide_mkdocs_theme-5.5.6}/pyodide_mkdocs_theme/templates/js-per-pages/qcms-qcm.js +0 -0
  142. {pyodide_mkdocs_theme-5.5.4 → pyodide_mkdocs_theme-5.5.6}/pyodide_mkdocs_theme/templates/js-per-pages/start-pyodide.js +0 -0
  143. {pyodide_mkdocs_theme-5.5.4 → pyodide_mkdocs_theme-5.5.6}/pyodide_mkdocs_theme/templates/js-scripts/overlord.js +0 -0
  144. {pyodide_mkdocs_theme-5.5.4 → pyodide_mkdocs_theme-5.5.6}/pyodide_mkdocs_theme/templates/main.html +0 -0
  145. {pyodide_mkdocs_theme-5.5.4 → pyodide_mkdocs_theme-5.5.6}/pyodide_mkdocs_theme/templates/mkdocs_theme.yml +0 -0
  146. {pyodide_mkdocs_theme-5.5.4 → pyodide_mkdocs_theme-5.5.6}/pyodide_mkdocs_theme/templates/partials/content.html +0 -0
  147. {pyodide_mkdocs_theme-5.5.4 → pyodide_mkdocs_theme-5.5.6}/pyodide_mkdocs_theme/templates/partials/copyright.html +0 -0
  148. {pyodide_mkdocs_theme-5.5.4 → pyodide_mkdocs_theme-5.5.6}/pyodide_mkdocs_theme/templates/partials/footer.html +0 -0
  149. {pyodide_mkdocs_theme-5.5.4 → pyodide_mkdocs_theme-5.5.6}/pyodide_mkdocs_theme/templates/partials/header.html +0 -0
  150. {pyodide_mkdocs_theme-5.5.4 → pyodide_mkdocs_theme-5.5.6}/pyodide_mkdocs_theme/templates/partials/social.html +0 -0
  151. {pyodide_mkdocs_theme-5.5.4 → pyodide_mkdocs_theme-5.5.6}/pyodide_mkdocs_theme/templates/pyodide-css/btns-header.css +0 -0
  152. {pyodide_mkdocs_theme-5.5.4 → pyodide_mkdocs_theme-5.5.6}/pyodide_mkdocs_theme/templates/pyodide-css/hourglass.css +0 -0
  153. {pyodide_mkdocs_theme-5.5.4 → pyodide_mkdocs_theme-5.5.6}/pyodide_mkdocs_theme/templates/pyodide-css/ide.css +0 -0
  154. {pyodide_mkdocs_theme-5.5.4 → pyodide_mkdocs_theme-5.5.6}/pyodide_mkdocs_theme/templates/pyodide-css/qcm.css +0 -0
  155. {pyodide_mkdocs_theme-5.5.4 → pyodide_mkdocs_theme-5.5.6}/pyodide_mkdocs_theme/templates/pyodide-css/terminal.css +0 -0
  156. {pyodide_mkdocs_theme-5.5.4 → pyodide_mkdocs_theme-5.5.6}/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.5.4
3
+ Version: 5.5.6
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.5.6"
@@ -289,6 +289,7 @@ class BaseMaestro(BasePlugin[PyodideMacrosConfig]):
289
289
  testing_page: str = ConfigExtractor('config.testing', prop='page')
290
290
 
291
291
  _dev_mode: bool = ConfigExtractor('config')
292
+ allow_theme_extension: bool = ConfigExtractor('config')
292
293
  force_render_paths: str = ConfigExtractor('config')
293
294
  include_dir: str = ConfigExtractor('config')
294
295
  include_yaml: List[str] = ConfigExtractor('config')
@@ -33,19 +33,21 @@ from collections import defaultdict
33
33
  from mkdocs.config.defaults import MkDocsConfig
34
34
 
35
35
 
36
-
37
36
  from ...__version__ import __version__
38
37
  from ..exceptions import PmtMacrosContractError
39
38
  from ..paths_utils import get_local_projects_data_tracking_file_location
40
39
  from ..tools_and_constants import HashPathMode, MultiProjectFeedbackLevel, MyEnum, PmtCte
41
40
  from ..pyodide_logger import logger
42
41
  from .config import PLUGIN_CONFIG_SRC, GIT_LAB_PAGES
42
+ from ..files_extractors.concrete_extractors import FileExtractor
43
43
  from .maestro_base import BaseMaestro
44
44
 
45
45
 
46
46
 
47
47
 
48
48
 
49
+
50
+
49
51
  @dataclass
50
52
  class Props:
51
53
  """ (helper, to centralize all values/names) """
@@ -339,24 +341,25 @@ class MaestroContracts(MaestroContractsMultiProjects):
339
341
  # Validation is done on the individual/current segments of the paths, so that an invalid
340
342
  # directory name is not affecting the validation of its children:
341
343
  for path,dirs,files in os.walk(self.docs_dir):
342
-
343
- files_to_check = [ file for file in files if re.search(r'\.(py|md)$', file)]
344
+ extensions = '|'.join(FileExtractor.EXTENSION_TO_EXTRACTOR_CLASS).replace('.', '')
345
+ file_pattern = re.compile(fr"\.({ extensions }|md)$")
346
+ files_to_check = [ file for file in files if file_pattern.search(file)]
344
347
 
345
348
  for segment in dirs + files_to_check:
346
- invalids = frozenset(invalid_chars.findall(segment))
349
+ invalids = frozenset(''.join(invalid_chars.findall(segment)))
347
350
  if invalids:
348
351
  wrongs[invalids].append( os.path.join(path,segment) )
349
352
 
350
353
  if wrongs:
351
354
  msg = ''.join(
352
- f"\nInvalid characters {repr(''.join(sorted(invalids)))} found in these filepaths:"
355
+ f"\nInvalid characters {''.join(sorted(invalids))!r} found in these filepaths:"
353
356
  + "".join(f"\n\t{ path }" for path in sorted(lst))
354
357
  for invalids,lst in wrongs.items()
355
358
  )
356
359
  raise PmtMacrosContractError(
357
- f"{ msg }\nPython and markdown files, and their parent directories' names "
360
+ f"{ msg }\nCodes and markdown files, as well as their parent directories' names "
358
361
  'should only contain alphanumerical characters (no accents or special chars), '
359
- "dots, underscores, and/or hyphens."
362
+ "dots, underscores or hyphens."
360
363
  )
361
364
 
362
365
 
@@ -404,39 +407,36 @@ class MaestroContracts(MaestroContractsMultiProjects):
404
407
  * `{theme.name}/search` <- `mkdocs.yml:plugins: - search`
405
408
  * `{some}/search` <- `mkdocs.yml:plugins: - {some}/search`
406
409
  """
407
- errors = []
408
- material = 'material'
409
- pmt = 'pyodide-mkdocs-theme'
410
- theme = config.theme.name
411
- is_extension = theme and theme not in (material, pmt, None)
412
- registered = RegisteredPlugin.convert(config.plugins)
413
-
414
-
415
- if not theme or theme==material:
416
- errors.append(
417
- f"The { pmt }'s plugin is registered, so `theme.name` should be set "
418
- f"to `{ pmt }` instead of `{ theme }`."
419
- )
410
+ errors = []
411
+ pmt = 'pyodide-mkdocs-theme'
412
+ theme = config.theme.name
413
+ material_plugins = RegisteredPlugin.get_material_plugins(config.plugins)
420
414
 
421
415
  features = config.theme.get('features', ())
422
416
  if 'navigation.instant' in features:
423
417
  errors.append(
424
- "Remove `navigation.instant` from `mkdocs.yml:theme.features`. "
425
- "It is not compatible with the pyodide-mkdocs-theme."
418
+ f"`mkdocs.yml:theme.features.navigation.instant` is not compatible with { pmt } "
419
+ "and should be removed."
426
420
  )
427
421
 
428
- for plug in registered:
429
- if plug.prefix != theme:
430
- errors.append(
431
- f"The `{ plug.qualname }` plugin should be registered " + (
432
- f"with `pyodide-mkdocs-theme/{ plug.name }`."
433
- if is_extension else
434
- f"using `{ plug.name }` only{ ' (PMT >= 2.2.0)' * (theme==pmt) }."
435
- )
436
- )
422
+ if theme != pmt and not self.allow_theme_extension:
423
+ errors.append(
424
+ f"The { pmt }'s plugin is activated, so `mkdocs.yml:theme.name` should be set "
425
+ f"to `{ pmt }` instead of `{ theme }`. If you are extending {pmt}, you also "
426
+ f"need do set {PLUGIN_CONFIG_SRC.get_plugin_path('allow_theme_extension')} to "
427
+ "`true` to deactivate this security check."
428
+ )
429
+ errors.extend(
430
+ f"The `{ plugin.qualname }` plugin should be registered as " + (
431
+ f"`{ pmt }/{ plugin.name }`."
432
+ if theme!=pmt else
433
+ f"`{ plugin.name }` only (PMT >= 2.2.0)."
434
+ )
435
+ for plugin in material_plugins if plugin.prefix != pmt
436
+ )
437
437
 
438
438
  if errors:
439
- str_errors = ''.join(map( '\n {}'.format, errors ))
439
+ str_errors = ''.join(map( '\n\n {}'.format, errors ))
440
440
  raise PmtMacrosContractError(
441
441
  f"Invalid theme or material's plugins configuration(s):{ str_errors }"
442
442
  )
@@ -457,7 +457,7 @@ class MaestroContracts(MaestroContractsMultiProjects):
457
457
  @dataclass
458
458
  class RegisteredPlugin:
459
459
  """
460
- Represents an mkdocs plugin name, with information about how it's built.
460
+ Represents a material plugin name, with information about how it's built.
461
461
  """
462
462
 
463
463
  qualname: str
@@ -481,13 +481,12 @@ class RegisteredPlugin:
481
481
 
482
482
 
483
483
  @classmethod
484
- def convert(cls, plugins:Iterable[str]) -> List['RegisteredPlugin'] :
484
+ def get_material_plugins(cls, plugins:Iterable[str]) -> List['RegisteredPlugin'] :
485
485
  pattern = re.compile(
486
486
  f"(?:(?P<prefix>\\w*)/)?(?P<name>{ '|'.join(cls.MATERIAL_PLUGINS) })"
487
487
  )
488
488
  registered = [
489
489
  RegisteredPlugin(m[0], m['name'], m['prefix'])
490
- for m in map(pattern.fullmatch, plugins)
491
- if m
490
+ for m in filter(bool, map(pattern.fullmatch, plugins))
492
491
  ]
493
492
  return registered
@@ -61,13 +61,13 @@ CommonTreeSrc.DEFAULT_DOCS_URL_TEMPLATE = to_page(DOCS_CONFIG) / '{get_md_link}'
61
61
 
62
62
  PLUGIN_CONFIG_SRC = PluginConfigSrc(
63
63
  extra_docs = """
64
- La configuration du plugin, `PyodideMacrosConfig`, reprend également toutes les options du
65
- plugin original `MacrosPlugin`, ce qui permet d'en réutiliser toutes les fonctionnalités.
66
- <br>Ces options, décrites succinctement ci-dessous, sont disponibles à la racine de la
64
+ Outre l'option `allow_theme_extension`, la configuration du plugin, `PyodideMacrosConfig`,
65
+ reprend également toutes les options du plugin original `MacrosPlugin`, ce qui permet d'en
66
+ réutiliser toutes les fonctionnalités.<br>
67
+ Ces options, décrites succinctement ci-dessous, sont disponibles à la racine de la
67
68
  configuration du plugin, dans `mkdocs.yml:plugins.pyodide_macros` (voir [en haut de cette
68
- page](--global-architecture)).
69
-
70
- Pour plus d'informations à leur sujet ou concernant le fonctionnement general des macros :
69
+ page](--global-architecture)). Pour plus d'informations à leur sujet ou concernant le
70
+ fonctionnement général des macros :
71
71
 
72
72
  - [GitHub repository][mkdocs-macros]{: target=_blank }
73
73
  - [Help page](https://mkdocs-macros-plugin.readthedocs.io/en/latest/){: target=_blank }
@@ -95,6 +95,14 @@ PLUGIN_CONFIG_SRC = PluginConfigSrc(
95
95
  yaml_desc="Run the plugin in development mode (...don't use that).",
96
96
  ),
97
97
 
98
+ ConfigOptionSrc(
99
+ 'allow_theme_extension', bool, default=False,
100
+ extra_docs = """
101
+ Si `true`, la plupart des validation de `mkdocs.yml:theme`sont désactivées.
102
+ """,
103
+ yaml_desc="Bypass some theme configuration validations, allowing PMT's extension.",
104
+ ),
105
+
98
106
 
99
107
  # ---------------------------------------------------------------------------------------
100
108
  # Replication of MacrosPlugin options (merging the config_scheme properties programmatically
@@ -135,10 +135,10 @@ class PluginConfigSrc(SubConfigSrc):
135
135
  Verify that the config of the MacroPlugin class is still the expected one.
136
136
  """
137
137
  logger.debug("Check that the original MacrosPlugin implementation didn't change.")
138
-
138
+ excluded_options = '_dev_mode', 'allow_theme_extension'
139
139
  current_props = {
140
140
  prop for prop,obj in self.subs_dct.items()
141
- if isinstance(obj, ConfigOptionSrc) and prop!='_dev_mode'
141
+ if isinstance(obj, ConfigOptionSrc) and prop not in excluded_options
142
142
  }
143
143
 
144
144
  src_macros_props = set(SRC_MACROS_CONF)
@@ -37,9 +37,6 @@ const SqBs = {
37
37
 
38
38
  const CONFIG = {
39
39
 
40
- /**Number of entries kept in validations history. */
41
- N_IDE_VALIDATIONS: 10,
42
-
43
40
  /* The following values are passed from python to JS through the main.html,
44
41
  once this script got loaded */
45
42
  //JS_CONFIG_DUMP
@@ -78,7 +78,7 @@ export const showIdCollisionsIfAny=()=>{
78
78
  * 1) Redactors might store extra fields in the LocalStorage, so DO NOT cleanup the thing...
79
79
  * 2) This function is used in CodEx.
80
80
  * */
81
- export function getIdeDataFromStorage(editorId, ide=null){ // CodCap
81
+ export function getIdeDataFromStorage(editorId, ide=null){ // CodCap override
82
82
 
83
83
  // Originally, the storage value was just the user's code, so keep extracting as this:
84
84
  let codeOrStorageAsStr = localStorage.getItem(editorId) || ""
@@ -253,6 +253,11 @@ export const aceEditorsDayNightReactivity=()=>{
253
253
  */
254
254
 
255
255
 
256
+ export const resetFloatingTip=()=>{
257
+ $("#floating-tip").css({display: 'none', width: "unset"}).find("span.tooltiptext").text("")
258
+ }
259
+
260
+ const DEBUG_TOOLTIP = false
256
261
 
257
262
 
258
263
  /**Logistic for PMT "bare tooltips": They are automatically put in place when an element holds at
@@ -363,9 +368,9 @@ export const handlePmtTooltips=()=>{
363
368
 
364
369
  // Add the event listener to all tool tips, and mark them as handled (in case several
365
370
  // applications are done-> see MCQ):
366
- tips.on('mouseleave', function(e){
367
- floating.css({display: 'none', width: "unset"})
368
- tipSpan.text("")
371
+ tips.on('mouseleave', function(){
372
+ if(DEBUG_TOOLTIP) return
373
+ resetFloatingTip()
369
374
 
370
375
  }).on('mouseenter', function(e){
371
376
  if(this.dataset.tipFloat){
@@ -17,6 +17,8 @@ along with this program.
17
17
  If not, see <https://www.gnu.org/licenses/>.
18
18
  */
19
19
 
20
+ import { resetFloatingTip } from "functoolsUi"
21
+
20
22
 
21
23
 
22
24
  /**Build bare divs from the given strings.
@@ -114,7 +116,7 @@ const stuffWithTooltip = (tag, options, content) =>{
114
116
 
115
117
  /**Create a button with tooltip, just like the python _html_builder one (no event attached).
116
118
  * */
117
- export function buttonWithTooltip(options, content){ // CodCap
119
+ export function buttonWithTooltip(options, content){ // CodCap override
118
120
  options = defaultOptions(options)
119
121
  options.noLabel = true
120
122
  return stuffWithTooltip('button', options, content)
@@ -125,7 +127,7 @@ export function buttonWithTooltip(options, content){ // CodCap
125
127
  /**Create a jQuery button WITHOUT bound event, holding the svg of one of the IDE's buttons.
126
128
  * No event attached.
127
129
  * */
128
- export const makeIdeJqButton = (kind, options) => { // CodCap
130
+ export const makeIdeJqButton = (kind, options) => { // CodCap override
129
131
  const img = `<img src="${ CONFIG.buttonIconsDirectory }/icons8-${ kind }-64.png" />`
130
132
  return buttonWithTooltip(options, img)
131
133
  }
@@ -252,7 +254,7 @@ export const cancelEvent=(e)=>{
252
254
 
253
255
 
254
256
 
255
- export function buildJqHistoryBtn( // CodCap
257
+ export function buildJqHistoryBtn( // CodCap override
256
258
  jHolder, // jQuery element holding the contextmenu
257
259
  historyId, // Id if the "contextmenu" element
258
260
  historyArr, // [data]
@@ -261,13 +263,13 @@ export function buildJqHistoryBtn( // CodCap
261
263
  ){
262
264
 
263
265
  const appendHistory=()=>{
266
+ resetFloatingTip()
267
+
264
268
  if(!historyArr.length || $('#'+historyId).length) return;
265
269
 
266
- // Use button instead of div, so that focusout and co' are actually working...
267
270
  const jHist = $(
268
- `<button id="${ historyId }" class="history-box"></button>`
271
+ `<div id="${ historyId }" class="history-box" tabindex="0"></div>`
269
272
  )
270
-
271
273
  jHist.append(
272
274
  historyArr.map(data=>{
273
275
  const btn = $(`<button class="history-btn">${ itemSetupCbk?"":data }</button>`)
@@ -33,6 +33,8 @@ export { RUNNERS_MANAGER }
33
33
 
34
34
 
35
35
  class GlobalZipExportIdesManager extends CONFIG.CLASSES_POOL.GlobalRunnersManager {
36
+ // Extension done this way to avoid the need to export the partent class...
37
+ // (a bit dirty, but helps a bit to actually encapsulate the actual Manager object)
36
38
 
37
39
  exportIdesAsZip(){
38
40
 
@@ -174,20 +174,15 @@ class IdeHistoryManager extends IdeAceManager {
174
174
  }
175
175
 
176
176
 
177
- getTime(){
177
+ getTime(){ // CodCap override
178
178
  return (Date()+'').split(' GMT')[0].slice(-8)
179
179
  }
180
180
 
181
181
  /**Store the data of the current run/validation to this.validations.
182
182
  * */
183
- pushValidation(code, done){ // CodCap
183
+ pushValidation(code, done){ // CodCap override
184
184
  const time = this.getTime()
185
185
  this.validations.push([done, time, code])
186
-
187
- // Suppress entries that are too old:
188
- if(this.validations.length > CONFIG.N_IDE_VALIDATIONS){
189
- this.validations.splice(0, this.validations.length-CONFIG.N_IDE_VALIDATIONS)
190
- }
191
186
  }
192
187
 
193
188
 
@@ -209,7 +204,7 @@ class IdeHistoryManager extends IdeAceManager {
209
204
  }
210
205
 
211
206
 
212
- getIdeStateColor(done){ // CodCap
207
+ getIdeStateColor(done){ // CodCap override
213
208
  return !done ? "unset" : done<0 ? 'red' : 'green'
214
209
  }
215
210
 
@@ -403,7 +398,7 @@ class IdeFeedbackManager extends IdeHistoryManager {
403
398
  * .show (=false):
404
399
  * If true, deploy the admonition.
405
400
  * */
406
- revealSolutionAndRems(options={}){ // CodCap
401
+ revealSolutionAndRems(options={}){ // CodCap override
407
402
  LOGGER_CONFIG.ACTIVATE && jsLogger("[CheckPoint] - Enter revealSolutionAndRems")
408
403
 
409
404
  const {waitForMathJax, show} = {
@@ -609,7 +604,7 @@ class IdeRunnerLogic extends IdeFeedbackManager {
609
604
 
610
605
 
611
606
 
612
- async playThroughRunner(runtime){ // CodCap
607
+ async playThroughRunner(runtime){ // CodCap override
613
608
  const code = this.getCodeToTest()
614
609
  await this.runPythonCodeWithOptionsIfNoStdErr(code, runtime, CONFIG.section.editor)
615
610
  }
@@ -1006,7 +1001,7 @@ export class IdeRunner extends IdeRunnerLogic {
1006
1001
 
1007
1002
 
1008
1003
  // Doesn't work to catch the Esc applying "exit full screen"... :/
1009
- respondToKeyDown(_event){ // CodCap
1004
+ respondToKeyDown(_event){ // CodCap override
1010
1005
  this.activateIde()
1011
1006
  }
1012
1007
 
@@ -1084,7 +1079,7 @@ export class IdeRunner extends IdeRunnerLogic {
1084
1079
  }
1085
1080
 
1086
1081
 
1087
- upload(){ // CodCap
1082
+ upload(){ // CodCap override
1088
1083
  uploader( txt=>{
1089
1084
  this.applyCodeToEditorAndSave(txt)
1090
1085
  this.makeDirty()
@@ -1094,7 +1089,7 @@ export class IdeRunner extends IdeRunnerLogic {
1094
1089
 
1095
1090
  /**Download the current content of the editor to the download folder of the user.
1096
1091
  * */
1097
- download(content=null){ LOGGER_CONFIG.ACTIVATE && jsLogger("[Download]") // CodCap
1092
+ download(content=null){ LOGGER_CONFIG.ACTIVATE && jsLogger("[Download]") // CodCap override
1098
1093
 
1099
1094
  let ideContent = content ?? this.getCodeToTest() + "" // enforce stringification in any case
1100
1095
  downloader(ideContent, this.pyName)
@@ -1114,7 +1109,7 @@ export class IdeRunner extends IdeRunnerLogic {
1114
1109
  *
1115
1110
  * @returns; true if the user confirmed the reset.
1116
1111
  * */
1117
- restart(){ // CodCap
1112
+ restart(){
1118
1113
  LOGGER_CONFIG.ACTIVATE && jsLogger("[Restart]")
1119
1114
 
1120
1115
  const doReset = window.confirm(CONFIG.lang.restartConfirm.msg)
@@ -1124,8 +1119,13 @@ export class IdeRunner extends IdeRunnerLogic {
1124
1119
  return doReset
1125
1120
  }
1126
1121
 
1127
- resetElement(doFocus=true){
1128
- super.resetElement() // This marks the runner as dirty
1122
+
1123
+ /**Actually apply the logic to reset/restart an IDE.
1124
+ * @doFocus can be seen as "triggered by the user?", hence, when it is false, some extra
1125
+ * steps should be avoided, like autofocus of the element.
1126
+ * */
1127
+ resetElement(doFocus=true){ // CodCap override: if @doFocus is true, send notifications to Capytale).
1128
+ super.resetElement() // This marks the runner as dirty
1129
1129
  // Cancel the orange box on resets (coming with this.makeDirty() in the super call)
1130
1130
  this.setOrangeBox(false)
1131
1131
  this.setStartingCode({extractFromLocalStorage: false, saveOnceApplied: false})
@@ -1137,9 +1137,9 @@ export class IdeRunner extends IdeRunnerLogic {
1137
1137
  $("#solution_" + this.id).addClass('py_mk_hidden')
1138
1138
  this.hiddenDivContent = true
1139
1139
  if(doFocus) this.focusEditor()
1140
- // clearPyodideScope() // v4.2.0+: no scope cleaning anymore.
1141
- this.takesGroupPriority() // Keep this one because the method may be triggered from some code
1142
- // during the tests, without clicking on the IDE
1140
+ // clearPyodideScope() // PMT 4.2.0+: no scope cleaning anymore.
1141
+ this.takesGroupPriority() // Keep this one because the method may be triggered from some code
1142
+ // during the tests, without clicking on the IDE
1143
1143
  }
1144
1144
  }
1145
1145
 
@@ -132,7 +132,7 @@ export const chaining=0 // To control imports orders when using overrides (u
132
132
  handlePmtTooltips()
133
133
 
134
134
 
135
- subscribeWhenReady("QCM", function(){
135
+ subscribeWhenReady("QCM", function(){ // Will always update CONFIG.subscriptionDone.QCM
136
136
  if(CONFIG.CLASSES_POOL.Qcm){ // Building qcms only if the class is defined in the page
137
137
  LOGGER_CONFIG.ACTIVATE && jsLogger('[QCM]')
138
138
  CONFIG.CLASSES_POOL.Qcm.buildQcms()
@@ -144,7 +144,7 @@ export const chaining=0 // To control imports orders when using overrides (u
144
144
  // Done _LATE_ because of chrome troubles in Capytale: subscribing after everything has been
145
145
  // set/updated will avoid useless calls/reactions to DOM mutations (IDEs & co).
146
146
  LOGGER_CONFIG.ACTIVATE && jsLogger('[MathJax] - subscribe to document$ after pyodide started')
147
- subscribeWhenReady(
147
+ subscribeWhenReady( // Will always update CONFIG.subscriptionDone.MathJax
148
148
  'MathJax',
149
149
  perennialMathJaxUpdate,
150
150
  {
@@ -282,8 +282,14 @@ mais sans lien dessus */
282
282
  .tooltip.p5-btn > img { width: 24px; }
283
283
 
284
284
 
285
- #floating-tip { position: absolute; z-index: 10 }
286
- #floating-tip > span { visibility: unset; }
285
+ #floating-tip {
286
+ position: absolute;
287
+ z-index: 10;
288
+ }
289
+ #floating-tip > span {
290
+ visibility: unset;
291
+ box-shadow: 2px 3px 5px var(--hover-fg-color,#555);
292
+ }
287
293
 
288
294
 
289
295
  input#playground-url {
@@ -22,18 +22,22 @@ If not, see <https://www.gnu.org/licenses/>.
22
22
  position: absolute;
23
23
  left: 50%;
24
24
  bottom: 50%;
25
- z-index: 14; /* above bare tooltips */
25
+ z-index: 4;
26
26
  background: var(--main-theme);
27
27
  border-radius: 10px;
28
28
  padding: var(--hist-size);
29
29
  display: grid;
30
- grid-auto-rows: 1fr;
30
+ /* grid-auto-rows: 1fr; */
31
31
  gap: calc(var(--hist-size) / 1.6);
32
32
  cursor: auto;
33
33
  font-size: 90%;
34
+ max-height: 400px;
35
+ width: max-content;
36
+ overflow-y: auto;
37
+ overscroll-behavior: contain;
34
38
  }
35
39
  .history-btn {
36
- width: max-content;
40
+ width: 100%;
37
41
  padding: 2px 8px;
38
42
  cursor: pointer;
39
43
  }
@@ -1,6 +1,6 @@
1
1
  [project]
2
2
  name = "pyodide-mkdocs-theme"
3
- version = "5.5.4"
3
+ version = "5.5.6"
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.5.4"