markdown-exec 1.10.2__tar.gz → 1.10.4__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 (120) hide show
  1. {markdown_exec-1.10.2 → markdown_exec-1.10.4}/CHANGELOG.md +21 -0
  2. {markdown_exec-1.10.2 → markdown_exec-1.10.4}/PKG-INFO +1 -1
  3. {markdown_exec-1.10.2 → markdown_exec-1.10.4}/duties.py +1 -1
  4. {markdown_exec-1.10.2 → markdown_exec-1.10.4}/mkdocs.yml +5 -4
  5. {markdown_exec-1.10.2 → markdown_exec-1.10.4}/pyproject.toml +3 -2
  6. {markdown_exec-1.10.2 → markdown_exec-1.10.4}/src/markdown_exec/__init__.py +11 -3
  7. {markdown_exec-1.10.2 → markdown_exec-1.10.4}/src/markdown_exec/assets/pyodide.js +3 -1
  8. {markdown_exec-1.10.2 → markdown_exec-1.10.4}/CODE_OF_CONDUCT.md +0 -0
  9. {markdown_exec-1.10.2 → markdown_exec-1.10.4}/CONTRIBUTING.md +0 -0
  10. {markdown_exec-1.10.2 → markdown_exec-1.10.4}/LICENSE +0 -0
  11. {markdown_exec-1.10.2 → markdown_exec-1.10.4}/README.md +0 -0
  12. {markdown_exec-1.10.2 → markdown_exec-1.10.4}/config/coverage.ini +0 -0
  13. {markdown_exec-1.10.2 → markdown_exec-1.10.4}/config/git-changelog.toml +0 -0
  14. {markdown_exec-1.10.2 → markdown_exec-1.10.4}/config/mypy.ini +0 -0
  15. {markdown_exec-1.10.2 → markdown_exec-1.10.4}/config/pytest.ini +0 -0
  16. {markdown_exec-1.10.2 → markdown_exec-1.10.4}/config/ruff.toml +0 -0
  17. {markdown_exec-1.10.2 → markdown_exec-1.10.4}/config/vscode/launch.json +0 -0
  18. {markdown_exec-1.10.2 → markdown_exec-1.10.4}/config/vscode/settings.json +0 -0
  19. {markdown_exec-1.10.2 → markdown_exec-1.10.4}/config/vscode/tasks.json +0 -0
  20. {markdown_exec-1.10.2 → markdown_exec-1.10.4}/docs/.overrides/main.html +0 -0
  21. {markdown_exec-1.10.2 → markdown_exec-1.10.4}/docs/.overrides/partials/comments.html +0 -0
  22. {markdown_exec-1.10.2 → markdown_exec-1.10.4}/docs/.overrides/partials/path-item.html +0 -0
  23. {markdown_exec-1.10.2 → markdown_exec-1.10.4}/docs/changelog.md +0 -0
  24. {markdown_exec-1.10.2 → markdown_exec-1.10.4}/docs/code_of_conduct.md +0 -0
  25. {markdown_exec-1.10.2 → markdown_exec-1.10.4}/docs/contributing.md +0 -0
  26. {markdown_exec-1.10.2 → markdown_exec-1.10.4}/docs/credits.md +0 -0
  27. {markdown_exec-1.10.2 → markdown_exec-1.10.4}/docs/css/insiders.css +0 -0
  28. {markdown_exec-1.10.2 → markdown_exec-1.10.4}/docs/css/material.css +0 -0
  29. {markdown_exec-1.10.2 → markdown_exec-1.10.4}/docs/css/mkdocstrings.css +0 -0
  30. {markdown_exec-1.10.2 → markdown_exec-1.10.4}/docs/gallery.md +0 -0
  31. {markdown_exec-1.10.2 → markdown_exec-1.10.4}/docs/index.md +0 -0
  32. {markdown_exec-1.10.2 → markdown_exec-1.10.4}/docs/insiders/changelog.md +0 -0
  33. {markdown_exec-1.10.2 → markdown_exec-1.10.4}/docs/insiders/goals.yml +0 -0
  34. {markdown_exec-1.10.2 → markdown_exec-1.10.4}/docs/insiders/index.md +0 -0
  35. {markdown_exec-1.10.2 → markdown_exec-1.10.4}/docs/insiders/installation.md +0 -0
  36. {markdown_exec-1.10.2 → markdown_exec-1.10.4}/docs/js/feedback.js +0 -0
  37. {markdown_exec-1.10.2 → markdown_exec-1.10.4}/docs/js/insiders.js +0 -0
  38. {markdown_exec-1.10.2 → markdown_exec-1.10.4}/docs/license.md +0 -0
  39. {markdown_exec-1.10.2 → markdown_exec-1.10.4}/docs/reference/api.md +0 -0
  40. {markdown_exec-1.10.2 → markdown_exec-1.10.4}/docs/schema.json +0 -0
  41. {markdown_exec-1.10.2 → markdown_exec-1.10.4}/docs/snippets/gallery/ansi.sh +0 -0
  42. {markdown_exec-1.10.2 → markdown_exec-1.10.4}/docs/snippets/gallery/argparse.py +0 -0
  43. {markdown_exec-1.10.2 → markdown_exec-1.10.4}/docs/snippets/gallery/argparse_format.py +0 -0
  44. {markdown_exec-1.10.2 → markdown_exec-1.10.4}/docs/snippets/gallery/chalk.py +0 -0
  45. {markdown_exec-1.10.2 → markdown_exec-1.10.4}/docs/snippets/gallery/d2.py +0 -0
  46. {markdown_exec-1.10.2 → markdown_exec-1.10.4}/docs/snippets/gallery/diagrams.py +0 -0
  47. {markdown_exec-1.10.2 → markdown_exec-1.10.4}/docs/snippets/gallery/drawsvg.py +0 -0
  48. {markdown_exec-1.10.2 → markdown_exec-1.10.4}/docs/snippets/gallery/expandable_filetree.py +0 -0
  49. {markdown_exec-1.10.2 → markdown_exec-1.10.4}/docs/snippets/gallery/hyperbolic.py +0 -0
  50. {markdown_exec-1.10.2 → markdown_exec-1.10.4}/docs/snippets/gallery/matplotlib.py +0 -0
  51. {markdown_exec-1.10.2 → markdown_exec-1.10.4}/docs/snippets/gallery/plotly.py +0 -0
  52. {markdown_exec-1.10.2 → markdown_exec-1.10.4}/docs/snippets/gallery/pydeps.py +0 -0
  53. {markdown_exec-1.10.2 → markdown_exec-1.10.4}/docs/snippets/gallery/qrcode.py +0 -0
  54. {markdown_exec-1.10.2 → markdown_exec-1.10.4}/docs/snippets/gallery/rich.py +0 -0
  55. {markdown_exec-1.10.2 → markdown_exec-1.10.4}/docs/snippets/gallery/rich_terminal.py +0 -0
  56. {markdown_exec-1.10.2 → markdown_exec-1.10.4}/docs/snippets/gallery/runpy.py +0 -0
  57. {markdown_exec-1.10.2 → markdown_exec-1.10.4}/docs/snippets/gallery/textual.py +0 -0
  58. {markdown_exec-1.10.2 → markdown_exec-1.10.4}/docs/snippets/usage/boolean_matrix.py +0 -0
  59. {markdown_exec-1.10.2 → markdown_exec-1.10.4}/docs/snippets/usage/hide.py +0 -0
  60. {markdown_exec-1.10.2 → markdown_exec-1.10.4}/docs/snippets/usage/multiple.pycon +0 -0
  61. {markdown_exec-1.10.2 → markdown_exec-1.10.4}/docs/snippets/usage/platform_html.py +0 -0
  62. {markdown_exec-1.10.2 → markdown_exec-1.10.4}/docs/snippets/usage/platform_md.py +0 -0
  63. {markdown_exec-1.10.2 → markdown_exec-1.10.4}/docs/snippets/usage/source.py +0 -0
  64. {markdown_exec-1.10.2 → markdown_exec-1.10.4}/docs/snippets/usage/source.pycon +0 -0
  65. {markdown_exec-1.10.2 → markdown_exec-1.10.4}/docs/usage/index.md +0 -0
  66. {markdown_exec-1.10.2 → markdown_exec-1.10.4}/docs/usage/pyodide.md +0 -0
  67. {markdown_exec-1.10.2 → markdown_exec-1.10.4}/docs/usage/python.md +0 -0
  68. {markdown_exec-1.10.2 → markdown_exec-1.10.4}/docs/usage/shell.md +0 -0
  69. {markdown_exec-1.10.2 → markdown_exec-1.10.4}/docs/usage/tree.md +0 -0
  70. {markdown_exec-1.10.2 → markdown_exec-1.10.4}/scripts/gen_credits.py +0 -0
  71. {markdown_exec-1.10.2 → markdown_exec-1.10.4}/scripts/get_version.py +0 -0
  72. {markdown_exec-1.10.2 → markdown_exec-1.10.4}/scripts/insiders.py +0 -0
  73. {markdown_exec-1.10.2 → markdown_exec-1.10.4}/scripts/make +0 -0
  74. {markdown_exec-1.10.2 → markdown_exec-1.10.4}/scripts/make.py +0 -0
  75. {markdown_exec-1.10.2 → markdown_exec-1.10.4}/src/markdown_exec/_internal/__init__.py +0 -0
  76. {markdown_exec-1.10.2 → markdown_exec-1.10.4}/src/markdown_exec/_internal/debug.py +0 -0
  77. {markdown_exec-1.10.2 → markdown_exec-1.10.4}/src/markdown_exec/_internal/formatters/__init__.py +0 -0
  78. {markdown_exec-1.10.2 → markdown_exec-1.10.4}/src/markdown_exec/_internal/formatters/_exec_python.py +0 -0
  79. {markdown_exec-1.10.2 → markdown_exec-1.10.4}/src/markdown_exec/_internal/formatters/base.py +0 -0
  80. {markdown_exec-1.10.2 → markdown_exec-1.10.4}/src/markdown_exec/_internal/formatters/bash.py +0 -0
  81. {markdown_exec-1.10.2 → markdown_exec-1.10.4}/src/markdown_exec/_internal/formatters/console.py +0 -0
  82. {markdown_exec-1.10.2 → markdown_exec-1.10.4}/src/markdown_exec/_internal/formatters/markdown.py +0 -0
  83. {markdown_exec-1.10.2 → markdown_exec-1.10.4}/src/markdown_exec/_internal/formatters/pycon.py +0 -0
  84. {markdown_exec-1.10.2 → markdown_exec-1.10.4}/src/markdown_exec/_internal/formatters/pyodide.py +0 -0
  85. {markdown_exec-1.10.2 → markdown_exec-1.10.4}/src/markdown_exec/_internal/formatters/python.py +0 -0
  86. {markdown_exec-1.10.2 → markdown_exec-1.10.4}/src/markdown_exec/_internal/formatters/sh.py +0 -0
  87. {markdown_exec-1.10.2 → markdown_exec-1.10.4}/src/markdown_exec/_internal/formatters/tree.py +0 -0
  88. {markdown_exec-1.10.2 → markdown_exec-1.10.4}/src/markdown_exec/_internal/logger.py +0 -0
  89. {markdown_exec-1.10.2 → markdown_exec-1.10.4}/src/markdown_exec/_internal/main.py +0 -0
  90. {markdown_exec-1.10.2 → markdown_exec-1.10.4}/src/markdown_exec/_internal/mkdocs_plugin.py +0 -0
  91. {markdown_exec-1.10.2 → markdown_exec-1.10.4}/src/markdown_exec/_internal/processors.py +0 -0
  92. {markdown_exec-1.10.2 → markdown_exec-1.10.4}/src/markdown_exec/_internal/rendering.py +0 -0
  93. {markdown_exec-1.10.2 → markdown_exec-1.10.4}/src/markdown_exec/assets/ansi.css +0 -0
  94. {markdown_exec-1.10.2 → markdown_exec-1.10.4}/src/markdown_exec/assets/pyodide.css +0 -0
  95. {markdown_exec-1.10.2 → markdown_exec-1.10.4}/src/markdown_exec/formatters/__init__.py +0 -0
  96. {markdown_exec-1.10.2 → markdown_exec-1.10.4}/src/markdown_exec/formatters/base.py +0 -0
  97. {markdown_exec-1.10.2 → markdown_exec-1.10.4}/src/markdown_exec/formatters/bash.py +0 -0
  98. {markdown_exec-1.10.2 → markdown_exec-1.10.4}/src/markdown_exec/formatters/console.py +0 -0
  99. {markdown_exec-1.10.2 → markdown_exec-1.10.4}/src/markdown_exec/formatters/markdown.py +0 -0
  100. {markdown_exec-1.10.2 → markdown_exec-1.10.4}/src/markdown_exec/formatters/pycon.py +0 -0
  101. {markdown_exec-1.10.2 → markdown_exec-1.10.4}/src/markdown_exec/formatters/pyodide.py +0 -0
  102. {markdown_exec-1.10.2 → markdown_exec-1.10.4}/src/markdown_exec/formatters/python.py +0 -0
  103. {markdown_exec-1.10.2 → markdown_exec-1.10.4}/src/markdown_exec/formatters/sh.py +0 -0
  104. {markdown_exec-1.10.2 → markdown_exec-1.10.4}/src/markdown_exec/formatters/tree.py +0 -0
  105. {markdown_exec-1.10.2 → markdown_exec-1.10.4}/src/markdown_exec/logger.py +0 -0
  106. {markdown_exec-1.10.2 → markdown_exec-1.10.4}/src/markdown_exec/mkdocs_plugin.py +0 -0
  107. {markdown_exec-1.10.2 → markdown_exec-1.10.4}/src/markdown_exec/processors.py +0 -0
  108. {markdown_exec-1.10.2 → markdown_exec-1.10.4}/src/markdown_exec/py.typed +0 -0
  109. {markdown_exec-1.10.2 → markdown_exec-1.10.4}/src/markdown_exec/rendering.py +0 -0
  110. {markdown_exec-1.10.2 → markdown_exec-1.10.4}/tests/__init__.py +0 -0
  111. {markdown_exec-1.10.2 → markdown_exec-1.10.4}/tests/conftest.py +0 -0
  112. {markdown_exec-1.10.2 → markdown_exec-1.10.4}/tests/test_api.py +0 -0
  113. {markdown_exec-1.10.2 → markdown_exec-1.10.4}/tests/test_base_formatter.py +0 -0
  114. {markdown_exec-1.10.2 → markdown_exec-1.10.4}/tests/test_converter.py +0 -0
  115. {markdown_exec-1.10.2 → markdown_exec-1.10.4}/tests/test_headings.py +0 -0
  116. {markdown_exec-1.10.2 → markdown_exec-1.10.4}/tests/test_python.py +0 -0
  117. {markdown_exec-1.10.2 → markdown_exec-1.10.4}/tests/test_shell.py +0 -0
  118. {markdown_exec-1.10.2 → markdown_exec-1.10.4}/tests/test_toc.py +0 -0
  119. {markdown_exec-1.10.2 → markdown_exec-1.10.4}/tests/test_tree.py +0 -0
  120. {markdown_exec-1.10.2 → markdown_exec-1.10.4}/tests/test_validator.py +0 -0
@@ -5,10 +5,31 @@ The format is based on [Keep a Changelog](http://keepachangelog.com/en/1.0.0/)
5
5
  and this project adheres to [Semantic Versioning](http://semver.org/spec/v2.0.0.html).
6
6
 
7
7
  <!-- insertion marker -->
8
+ ## [1.10.4](https://github.com/pawamoy/markdown-exec/releases/tag/1.10.4) - 2025-06-27
9
+
10
+ <small>[Compare with 1.10.3](https://github.com/pawamoy/markdown-exec/compare/1.10.3...1.10.4)</small>
11
+
12
+ ### Bug Fixes
13
+
14
+ - Don't fail when used as Markdown extension and MkDocs is not installed ([7722250](https://github.com/pawamoy/markdown-exec/commit/7722250931f44d2328af69cd20143035d3ba404e) by Timothée Mazzucotelli). [Issue-91](https://github.com/pawamoy/markdown-exec/discussions/91)
15
+
16
+ ## [1.10.3](https://github.com/pawamoy/markdown-exec/releases/tag/1.10.3) - 2025-03-24
17
+
18
+ <small>[Compare with 1.10.2](https://github.com/pawamoy/markdown-exec/compare/1.10.2...1.10.3)</small>
19
+
20
+ ### Bug Fixes
21
+
22
+ - Also escape strings printed directly to the output ([a668aeb](https://github.com/pawamoy/markdown-exec/commit/a668aeb9106ed3861553acd50fd38e716eaacd75) by Timothée Mazzucotelli). [Issue-87](https://github.com/pawamoy/markdown-exec/issues/87)
23
+ - Don't forget to clear "Initializing" in Pyodide output ([e0b52b4](https://github.com/pawamoy/markdown-exec/commit/e0b52b44e0355d8f524cbd4c47d32e8a9d51e4c5) by Timothée Mazzucotelli).
24
+
8
25
  ## [1.10.2](https://github.com/pawamoy/markdown-exec/releases/tag/1.10.2) - 2025-03-18
9
26
 
10
27
  <small>[Compare with 1.10.1](https://github.com/pawamoy/markdown-exec/compare/1.10.1...1.10.2)</small>
11
28
 
29
+ ### Deprecations
30
+
31
+ Expose public API under top-level module `markdown_exec`. Importing from submodules is now deprecated.
32
+
12
33
  ### Bug Fixes
13
34
 
14
35
  - Escape Pyodide output, improve error handling ([ec83f48](https://github.com/pawamoy/markdown-exec/commit/ec83f48db29708b03e8d2487ccb0d5ee0889a464) by Timothée Mazzucotelli). [Issue-87](https://github.com/pawamoy/markdown-exec/issues/87)
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: markdown-exec
3
- Version: 1.10.2
3
+ Version: 1.10.4
4
4
  Summary: Utilities to execute code blocks in Markdown files.
5
5
  Keywords: markdown,python,exec,shell,bash,mkdocs
6
6
  Author-Email: =?utf-8?q?Timoth=C3=A9e_Mazzucotelli?= <dev@pawamoy.fr>
@@ -237,7 +237,7 @@ def coverage(ctx: Context) -> None:
237
237
 
238
238
 
239
239
  @duty
240
- def test(ctx: Context, *cli_args: str, match: str = "") -> None:
240
+ def test(ctx: Context, *cli_args: str, match: str = "") -> None: # noqa: PT028
241
241
  """Run the test suite.
242
242
 
243
243
  Parameters:
@@ -154,11 +154,12 @@ plugins:
154
154
  signature_crossrefs: true
155
155
  summary: true
156
156
  - llmstxt:
157
- files:
158
- - output: llms-full.txt
159
- inputs:
157
+ full_output: llms-full.txt
158
+ sections:
159
+ Usage:
160
160
  - index.md
161
- - reference/**.md
161
+ API:
162
+ - reference/api.md
162
163
  - git-revision-date-localized:
163
164
  enabled: !ENV [DEPLOY, false]
164
165
  enable_creation_date: true
@@ -45,7 +45,7 @@ classifiers = [
45
45
  dependencies = [
46
46
  "pymdown-extensions>=9",
47
47
  ]
48
- version = "1.10.2"
48
+ version = "1.10.4"
49
49
 
50
50
  [project.optional-dependencies]
51
51
  ansi = [
@@ -72,6 +72,7 @@ getter = "scripts.get_version:get_version"
72
72
  [tool.pdm.build]
73
73
  excludes = [
74
74
  "**/.pytest_cache",
75
+ "**/.mypy_cache",
75
76
  ]
76
77
  source-includes = [
77
78
  "config",
@@ -120,7 +121,7 @@ docs = [
120
121
  "mkdocs>=1.6",
121
122
  "mkdocs-coverage>=1.0",
122
123
  "mkdocs-git-revision-date-localized-plugin>=1.2",
123
- "mkdocs-llmstxt>=0.1",
124
+ "mkdocs-llmstxt>=0.2",
124
125
  "mkdocs-material>=9.5",
125
126
  "mkdocs-minify-plugin>=0.8",
126
127
  "mkdocs-section-index>=0.3",
@@ -12,7 +12,6 @@ from markdown_exec._internal.formatters.base import (
12
12
  )
13
13
  from markdown_exec._internal.logger import get_logger, patch_loggers
14
14
  from markdown_exec._internal.main import MARKDOWN_EXEC_AUTO, formatter, formatters, validator
15
- from markdown_exec._internal.mkdocs_plugin import MarkdownExecPlugin, MarkdownExecPluginConfig
16
15
  from markdown_exec._internal.processors import (
17
16
  HeadingReportingTreeprocessor,
18
17
  IdPrependingTreeprocessor,
@@ -36,8 +35,6 @@ __all__ = [
36
35
  "InsertHeadings",
37
36
  "MarkdownConfig",
38
37
  "MarkdownConverter",
39
- "MarkdownExecPlugin",
40
- "MarkdownExecPluginConfig",
41
38
  "RemoveHeadings",
42
39
  "add_source",
43
40
  "base_format",
@@ -53,3 +50,14 @@ __all__ = [
53
50
  "validator",
54
51
  "working_directory",
55
52
  ]
53
+
54
+
55
+ try:
56
+ from markdown_exec._internal.mkdocs_plugin import MarkdownExecPlugin, MarkdownExecPluginConfig
57
+ except ImportError:
58
+ pass
59
+ else:
60
+ __all__ += [
61
+ "MarkdownExecPlugin",
62
+ "MarkdownExecPluginConfig",
63
+ ]
@@ -16,7 +16,7 @@ function clearOutput(element) {
16
16
  }
17
17
 
18
18
  async function evaluatePython(pyodide, editor, output, session) {
19
- pyodide.setStdout({ batched: (string) => { writeOutput(output, string); } });
19
+ pyodide.setStdout({ batched: (string) => { writeOutput(output, new Option(string).innerHTML); } });
20
20
  let result, code = editor.getValue();
21
21
  clearOutput(output);
22
22
  try {
@@ -101,6 +101,8 @@ async function setupPyodide(idPrefix, install = null, themeLight = 'tomorrow', t
101
101
  writeOutput(output, `Could not install one or more packages: ${install.join(", ")}\n`);
102
102
  writeOutput(output, new Option(error.toString()).innerHTML);
103
103
  }
104
+ } else {
105
+ clearOutput(output);
104
106
  }
105
107
  run.onclick = () => evaluatePython(pyodide, editor, output, session);
106
108
  clear.onclick = () => clearOutput(output);
File without changes
File without changes