mkdocs-include-markdown-plugin 7.1.7__tar.gz → 7.1.8__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.
- {mkdocs_include_markdown_plugin-7.1.7 → mkdocs_include_markdown_plugin-7.1.8}/PKG-INFO +1 -1
- {mkdocs_include_markdown_plugin-7.1.7 → mkdocs_include_markdown_plugin-7.1.8}/pyproject.toml +1 -1
- {mkdocs_include_markdown_plugin-7.1.7 → mkdocs_include_markdown_plugin-7.1.8}/src/mkdocs_include_markdown_plugin/event.py +12 -38
- mkdocs_include_markdown_plugin-7.1.8/src/mkdocs_include_markdown_plugin/placeholders.py +37 -0
- {mkdocs_include_markdown_plugin-7.1.7 → mkdocs_include_markdown_plugin-7.1.8}/.gitignore +0 -0
- {mkdocs_include_markdown_plugin-7.1.7 → mkdocs_include_markdown_plugin-7.1.8}/LICENSE +0 -0
- {mkdocs_include_markdown_plugin-7.1.7 → mkdocs_include_markdown_plugin-7.1.8}/README.md +0 -0
- {mkdocs_include_markdown_plugin-7.1.7 → mkdocs_include_markdown_plugin-7.1.8}/src/mkdocs_include_markdown_plugin/__init__.py +0 -0
- {mkdocs_include_markdown_plugin-7.1.7 → mkdocs_include_markdown_plugin-7.1.8}/src/mkdocs_include_markdown_plugin/cache.py +0 -0
- {mkdocs_include_markdown_plugin-7.1.7 → mkdocs_include_markdown_plugin-7.1.8}/src/mkdocs_include_markdown_plugin/config.py +0 -0
- {mkdocs_include_markdown_plugin-7.1.7 → mkdocs_include_markdown_plugin-7.1.8}/src/mkdocs_include_markdown_plugin/directive.py +0 -0
- {mkdocs_include_markdown_plugin-7.1.7 → mkdocs_include_markdown_plugin-7.1.8}/src/mkdocs_include_markdown_plugin/files_watcher.py +0 -0
- {mkdocs_include_markdown_plugin-7.1.7 → mkdocs_include_markdown_plugin-7.1.8}/src/mkdocs_include_markdown_plugin/logger.py +0 -0
- {mkdocs_include_markdown_plugin-7.1.7 → mkdocs_include_markdown_plugin-7.1.8}/src/mkdocs_include_markdown_plugin/plugin.py +0 -0
- {mkdocs_include_markdown_plugin-7.1.7 → mkdocs_include_markdown_plugin-7.1.8}/src/mkdocs_include_markdown_plugin/process.py +0 -0
- {mkdocs_include_markdown_plugin-7.1.7 → mkdocs_include_markdown_plugin-7.1.8}/src/mkdocs_include_markdown_plugin/py.typed +0 -0
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
Metadata-Version: 2.4
|
|
2
2
|
Name: mkdocs-include-markdown-plugin
|
|
3
|
-
Version: 7.1.
|
|
3
|
+
Version: 7.1.8
|
|
4
4
|
Summary: Mkdocs Markdown includer plugin.
|
|
5
5
|
Project-URL: Source, https://github.com/mondeja/mkdocs-include-markdown-plugin
|
|
6
6
|
Project-URL: Documentation, https://github.com/mondeja/mkdocs-include-markdown-plugin#documentation
|
|
@@ -28,10 +28,15 @@ from mkdocs_include_markdown_plugin.directive import (
|
|
|
28
28
|
)
|
|
29
29
|
from mkdocs_include_markdown_plugin.files_watcher import FilesWatcher
|
|
30
30
|
from mkdocs_include_markdown_plugin.logger import logger
|
|
31
|
+
from mkdocs_include_markdown_plugin.placeholders import (
|
|
32
|
+
escape_placeholders,
|
|
33
|
+
save_placeholder,
|
|
34
|
+
unescape_placeholders,
|
|
35
|
+
)
|
|
31
36
|
|
|
32
37
|
|
|
33
38
|
if TYPE_CHECKING: # pragma: no cover
|
|
34
|
-
from typing import
|
|
39
|
+
from typing import TypedDict
|
|
35
40
|
|
|
36
41
|
from mkdocs.structure.pages import Page
|
|
37
42
|
|
|
@@ -46,23 +51,6 @@ if TYPE_CHECKING: # pragma: no cover
|
|
|
46
51
|
)
|
|
47
52
|
|
|
48
53
|
|
|
49
|
-
# Placeholders (taken from Python-Markdown)
|
|
50
|
-
STX = '\u0002'
|
|
51
|
-
''' "Start of Text" marker for placeholder templates. '''
|
|
52
|
-
ETX = '\u0003'
|
|
53
|
-
''' "End of Text" marker for placeholder templates. '''
|
|
54
|
-
INLINE_PLACEHOLDER_PREFIX = f'{STX}klzzwxh:'
|
|
55
|
-
|
|
56
|
-
|
|
57
|
-
def build_placeholder(
|
|
58
|
-
num: int,
|
|
59
|
-
directive: Literal['include', 'include-markdown'],
|
|
60
|
-
) -> str:
|
|
61
|
-
"""Return a placeholder."""
|
|
62
|
-
directive_prefix = 'im' if directive == 'include-markdown' else 'i'
|
|
63
|
-
return f'{INLINE_PLACEHOLDER_PREFIX}{directive_prefix}{num}{ETX}'
|
|
64
|
-
|
|
65
|
-
|
|
66
54
|
@dataclass
|
|
67
55
|
class Settings: # noqa: D101
|
|
68
56
|
exclude: list[str] | None
|
|
@@ -98,8 +86,8 @@ def get_file_content( # noqa: PLR0913, PLR0915
|
|
|
98
86
|
else:
|
|
99
87
|
settings_ignore_paths = []
|
|
100
88
|
|
|
101
|
-
|
|
102
|
-
|
|
89
|
+
markdown = escape_placeholders(markdown)
|
|
90
|
+
placeholders_contents: list[tuple[str, str]] = []
|
|
103
91
|
|
|
104
92
|
def found_include_tag( # noqa: PLR0912, PLR0915
|
|
105
93
|
match: re.Match[str],
|
|
@@ -311,11 +299,7 @@ def get_file_content( # noqa: PLR0913, PLR0915
|
|
|
311
299
|
f' {readable_files_to_include}',
|
|
312
300
|
)
|
|
313
301
|
|
|
314
|
-
|
|
315
|
-
include_index = len(new_found_include_contents)
|
|
316
|
-
placeholder = build_placeholder(include_index, 'include')
|
|
317
|
-
new_found_include_contents.append((placeholder, text_to_include))
|
|
318
|
-
return placeholder
|
|
302
|
+
return save_placeholder(placeholders_contents, text_to_include)
|
|
319
303
|
|
|
320
304
|
def found_include_markdown_tag( # noqa: PLR0912, PLR0915
|
|
321
305
|
match: re.Match[str],
|
|
@@ -607,15 +591,7 @@ def get_file_content( # noqa: PLR0913, PLR0915
|
|
|
607
591
|
f' {readable_files_to_include}',
|
|
608
592
|
)
|
|
609
593
|
|
|
610
|
-
|
|
611
|
-
markdown_include_index = len(new_found_include_markdown_contents)
|
|
612
|
-
placeholder = build_placeholder(
|
|
613
|
-
markdown_include_index, 'include-markdown',
|
|
614
|
-
)
|
|
615
|
-
new_found_include_markdown_contents.append(
|
|
616
|
-
(placeholder, text_to_include),
|
|
617
|
-
)
|
|
618
|
-
return placeholder
|
|
594
|
+
return save_placeholder(placeholders_contents, text_to_include)
|
|
619
595
|
|
|
620
596
|
# Replace contents by placeholders
|
|
621
597
|
markdown = tags['include-markdown'].sub(
|
|
@@ -628,11 +604,9 @@ def get_file_content( # noqa: PLR0913, PLR0915
|
|
|
628
604
|
)
|
|
629
605
|
|
|
630
606
|
# Replace placeholders by contents
|
|
631
|
-
for placeholder, text in
|
|
632
|
-
markdown = markdown.replace(placeholder, text, 1)
|
|
633
|
-
for placeholder, text in new_found_include_markdown_contents:
|
|
607
|
+
for placeholder, text in placeholders_contents:
|
|
634
608
|
markdown = markdown.replace(placeholder, text, 1)
|
|
635
|
-
return markdown
|
|
609
|
+
return unescape_placeholders(markdown)
|
|
636
610
|
|
|
637
611
|
|
|
638
612
|
def on_page_markdown(
|
|
@@ -0,0 +1,37 @@
|
|
|
1
|
+
"""Module for placeholders processing."""
|
|
2
|
+
|
|
3
|
+
# Placeholders (taken from Python-Markdown)
|
|
4
|
+
from __future__ import annotations
|
|
5
|
+
|
|
6
|
+
|
|
7
|
+
STX = '\u0002'
|
|
8
|
+
''' "Start of Text" marker for placeholder templates. '''
|
|
9
|
+
ETX = '\u0003'
|
|
10
|
+
''' "End of Text" marker for placeholder templates. '''
|
|
11
|
+
INLINE_PLACEHOLDER_PREFIX = f'{STX}klzzwxh:'
|
|
12
|
+
|
|
13
|
+
|
|
14
|
+
def build_placeholder(num: int) -> str:
|
|
15
|
+
"""Return a placeholder."""
|
|
16
|
+
return f'{INLINE_PLACEHOLDER_PREFIX}{num}{ETX}'
|
|
17
|
+
|
|
18
|
+
|
|
19
|
+
def escape_placeholders(text: str) -> str:
|
|
20
|
+
"""Escape placeholders in the given text."""
|
|
21
|
+
return text.replace(STX, f'\\{STX}').replace(ETX, f'\\{ETX}')
|
|
22
|
+
|
|
23
|
+
|
|
24
|
+
def unescape_placeholders(text: str) -> str:
|
|
25
|
+
"""Unescape placeholders in the given text."""
|
|
26
|
+
return text.replace(f'\\{STX}', STX).replace(f'\\{ETX}', ETX)
|
|
27
|
+
|
|
28
|
+
|
|
29
|
+
def save_placeholder(
|
|
30
|
+
placeholders_contents: list[tuple[str, str]],
|
|
31
|
+
text_to_include: str,
|
|
32
|
+
) -> str:
|
|
33
|
+
"""Save the included text and return the placeholder."""
|
|
34
|
+
inclusion_index = len(placeholders_contents)
|
|
35
|
+
placeholder = build_placeholder(inclusion_index)
|
|
36
|
+
placeholders_contents.append((placeholder, text_to_include))
|
|
37
|
+
return placeholder
|
|
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
|