mkdocs2confluence 0.20.0__tar.gz → 0.20.2__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.
- {mkdocs2confluence-0.20.0/src/mkdocs2confluence.egg-info → mkdocs2confluence-0.20.2}/PKG-INFO +2 -1
- {mkdocs2confluence-0.20.0 → mkdocs2confluence-0.20.2}/pyproject.toml +2 -1
- {mkdocs2confluence-0.20.0 → mkdocs2confluence-0.20.2/src/mkdocs2confluence.egg-info}/PKG-INFO +2 -1
- {mkdocs2confluence-0.20.0 → mkdocs2confluence-0.20.2}/src/mkdocs_to_confluence/loader/config.py +1 -1
- {mkdocs2confluence-0.20.0 → mkdocs2confluence-0.20.2}/src/mkdocs_to_confluence/parser/markdown.py +14 -2
- {mkdocs2confluence-0.20.0 → mkdocs2confluence-0.20.2}/tests/test_parser.py +49 -0
- {mkdocs2confluence-0.20.0 → mkdocs2confluence-0.20.2}/LICENSE +0 -0
- {mkdocs2confluence-0.20.0 → mkdocs2confluence-0.20.2}/README.md +0 -0
- {mkdocs2confluence-0.20.0 → mkdocs2confluence-0.20.2}/setup.cfg +0 -0
- {mkdocs2confluence-0.20.0 → mkdocs2confluence-0.20.2}/src/mkdocs2confluence.egg-info/SOURCES.txt +0 -0
- {mkdocs2confluence-0.20.0 → mkdocs2confluence-0.20.2}/src/mkdocs2confluence.egg-info/dependency_links.txt +0 -0
- {mkdocs2confluence-0.20.0 → mkdocs2confluence-0.20.2}/src/mkdocs2confluence.egg-info/entry_points.txt +0 -0
- {mkdocs2confluence-0.20.0 → mkdocs2confluence-0.20.2}/src/mkdocs2confluence.egg-info/requires.txt +0 -0
- {mkdocs2confluence-0.20.0 → mkdocs2confluence-0.20.2}/src/mkdocs2confluence.egg-info/top_level.txt +0 -0
- {mkdocs2confluence-0.20.0 → mkdocs2confluence-0.20.2}/src/mkdocs_to_confluence/__init__.py +0 -0
- {mkdocs2confluence-0.20.0 → mkdocs2confluence-0.20.2}/src/mkdocs_to_confluence/cli.py +0 -0
- {mkdocs2confluence-0.20.0 → mkdocs2confluence-0.20.2}/src/mkdocs_to_confluence/compiler/__init__.py +0 -0
- {mkdocs2confluence-0.20.0 → mkdocs2confluence-0.20.2}/src/mkdocs_to_confluence/compiler/models.py +0 -0
- {mkdocs2confluence-0.20.0 → mkdocs2confluence-0.20.2}/src/mkdocs_to_confluence/compiler/page.py +0 -0
- {mkdocs2confluence-0.20.0 → mkdocs2confluence-0.20.2}/src/mkdocs_to_confluence/emitter/__init__.py +0 -0
- {mkdocs2confluence-0.20.0 → mkdocs2confluence-0.20.2}/src/mkdocs_to_confluence/emitter/xhtml.py +0 -0
- {mkdocs2confluence-0.20.0 → mkdocs2confluence-0.20.2}/src/mkdocs_to_confluence/ir/__init__.py +0 -0
- {mkdocs2confluence-0.20.0 → mkdocs2confluence-0.20.2}/src/mkdocs_to_confluence/ir/nodes.py +0 -0
- {mkdocs2confluence-0.20.0 → mkdocs2confluence-0.20.2}/src/mkdocs_to_confluence/ir/treeutil.py +0 -0
- {mkdocs2confluence-0.20.0 → mkdocs2confluence-0.20.2}/src/mkdocs_to_confluence/loader/__init__.py +0 -0
- {mkdocs2confluence-0.20.0 → mkdocs2confluence-0.20.2}/src/mkdocs_to_confluence/loader/extra_css.py +0 -0
- {mkdocs2confluence-0.20.0 → mkdocs2confluence-0.20.2}/src/mkdocs_to_confluence/loader/nav.py +0 -0
- {mkdocs2confluence-0.20.0 → mkdocs2confluence-0.20.2}/src/mkdocs_to_confluence/loader/page.py +0 -0
- {mkdocs2confluence-0.20.0 → mkdocs2confluence-0.20.2}/src/mkdocs_to_confluence/parser/__init__.py +0 -0
- {mkdocs2confluence-0.20.0 → mkdocs2confluence-0.20.2}/src/mkdocs_to_confluence/pdf/__init__.py +0 -0
- {mkdocs2confluence-0.20.0 → mkdocs2confluence-0.20.2}/src/mkdocs_to_confluence/pdf/generator.py +0 -0
- {mkdocs2confluence-0.20.0 → mkdocs2confluence-0.20.2}/src/mkdocs_to_confluence/pdf/render.py +0 -0
- {mkdocs2confluence-0.20.0 → mkdocs2confluence-0.20.2}/src/mkdocs_to_confluence/preprocess/__init__.py +0 -0
- {mkdocs2confluence-0.20.0 → mkdocs2confluence-0.20.2}/src/mkdocs_to_confluence/preprocess/abbrevs.py +0 -0
- {mkdocs2confluence-0.20.0 → mkdocs2confluence-0.20.2}/src/mkdocs_to_confluence/preprocess/captions.py +0 -0
- {mkdocs2confluence-0.20.0 → mkdocs2confluence-0.20.2}/src/mkdocs_to_confluence/preprocess/fence.py +0 -0
- {mkdocs2confluence-0.20.0 → mkdocs2confluence-0.20.2}/src/mkdocs_to_confluence/preprocess/frontmatter.py +0 -0
- {mkdocs2confluence-0.20.0 → mkdocs2confluence-0.20.2}/src/mkdocs_to_confluence/preprocess/icons.py +0 -0
- {mkdocs2confluence-0.20.0 → mkdocs2confluence-0.20.2}/src/mkdocs_to_confluence/preprocess/includes.py +0 -0
- {mkdocs2confluence-0.20.0 → mkdocs2confluence-0.20.2}/src/mkdocs_to_confluence/preprocess/linkdefs.py +0 -0
- {mkdocs2confluence-0.20.0 → mkdocs2confluence-0.20.2}/src/mkdocs_to_confluence/preview/__init__.py +0 -0
- {mkdocs2confluence-0.20.0 → mkdocs2confluence-0.20.2}/src/mkdocs_to_confluence/preview/render.py +0 -0
- {mkdocs2confluence-0.20.0 → mkdocs2confluence-0.20.2}/src/mkdocs_to_confluence/preview/server.py +0 -0
- {mkdocs2confluence-0.20.0 → mkdocs2confluence-0.20.2}/src/mkdocs_to_confluence/publisher/__init__.py +0 -0
- {mkdocs2confluence-0.20.0 → mkdocs2confluence-0.20.2}/src/mkdocs_to_confluence/publisher/changelog.py +0 -0
- {mkdocs2confluence-0.20.0 → mkdocs2confluence-0.20.2}/src/mkdocs_to_confluence/publisher/client.py +0 -0
- {mkdocs2confluence-0.20.0 → mkdocs2confluence-0.20.2}/src/mkdocs_to_confluence/publisher/executor.py +0 -0
- {mkdocs2confluence-0.20.0 → mkdocs2confluence-0.20.2}/src/mkdocs_to_confluence/publisher/http_retry.py +0 -0
- {mkdocs2confluence-0.20.0 → mkdocs2confluence-0.20.2}/src/mkdocs_to_confluence/publisher/models.py +0 -0
- {mkdocs2confluence-0.20.0 → mkdocs2confluence-0.20.2}/src/mkdocs_to_confluence/publisher/planner.py +0 -0
- {mkdocs2confluence-0.20.0 → mkdocs2confluence-0.20.2}/src/mkdocs_to_confluence/skill_installer.py +0 -0
- {mkdocs2confluence-0.20.0 → mkdocs2confluence-0.20.2}/src/mkdocs_to_confluence/skills/mkdocs-changelog/SKILL.md +0 -0
- {mkdocs2confluence-0.20.0 → mkdocs2confluence-0.20.2}/src/mkdocs_to_confluence/skills/mkdocs-changelog/scripts/changelog_data.py +0 -0
- {mkdocs2confluence-0.20.0 → mkdocs2confluence-0.20.2}/src/mkdocs_to_confluence/sync/__init__.py +0 -0
- {mkdocs2confluence-0.20.0 → mkdocs2confluence-0.20.2}/src/mkdocs_to_confluence/sync/anchoring.py +0 -0
- {mkdocs2confluence-0.20.0 → mkdocs2confluence-0.20.2}/src/mkdocs_to_confluence/sync/command.py +0 -0
- {mkdocs2confluence-0.20.0 → mkdocs2confluence-0.20.2}/src/mkdocs_to_confluence/sync/comments.py +0 -0
- {mkdocs2confluence-0.20.0 → mkdocs2confluence-0.20.2}/src/mkdocs_to_confluence/sync/github.py +0 -0
- {mkdocs2confluence-0.20.0 → mkdocs2confluence-0.20.2}/src/mkdocs_to_confluence/sync/platform.py +0 -0
- {mkdocs2confluence-0.20.0 → mkdocs2confluence-0.20.2}/src/mkdocs_to_confluence/sync/state.py +0 -0
- {mkdocs2confluence-0.20.0 → mkdocs2confluence-0.20.2}/src/mkdocs_to_confluence/transforms/__init__.py +0 -0
- {mkdocs2confluence-0.20.0 → mkdocs2confluence-0.20.2}/src/mkdocs_to_confluence/transforms/_kroki.py +0 -0
- {mkdocs2confluence-0.20.0 → mkdocs2confluence-0.20.2}/src/mkdocs_to_confluence/transforms/abbrevs.py +0 -0
- {mkdocs2confluence-0.20.0 → mkdocs2confluence-0.20.2}/src/mkdocs_to_confluence/transforms/admonition_titles.py +0 -0
- {mkdocs2confluence-0.20.0 → mkdocs2confluence-0.20.2}/src/mkdocs_to_confluence/transforms/assets.py +0 -0
- {mkdocs2confluence-0.20.0 → mkdocs2confluence-0.20.2}/src/mkdocs_to_confluence/transforms/attachment_previews.py +0 -0
- {mkdocs2confluence-0.20.0 → mkdocs2confluence-0.20.2}/src/mkdocs_to_confluence/transforms/captions.py +0 -0
- {mkdocs2confluence-0.20.0 → mkdocs2confluence-0.20.2}/src/mkdocs_to_confluence/transforms/editlink.py +0 -0
- {mkdocs2confluence-0.20.0 → mkdocs2confluence-0.20.2}/src/mkdocs_to_confluence/transforms/footer.py +0 -0
- {mkdocs2confluence-0.20.0 → mkdocs2confluence-0.20.2}/src/mkdocs_to_confluence/transforms/images.py +0 -0
- {mkdocs2confluence-0.20.0 → mkdocs2confluence-0.20.2}/src/mkdocs_to_confluence/transforms/internallinks.py +0 -0
- {mkdocs2confluence-0.20.0 → mkdocs2confluence-0.20.2}/src/mkdocs_to_confluence/transforms/mermaid.py +0 -0
- {mkdocs2confluence-0.20.0 → mkdocs2confluence-0.20.2}/src/mkdocs_to_confluence/transforms/plantuml.py +0 -0
- {mkdocs2confluence-0.20.0 → mkdocs2confluence-0.20.2}/tests/test_abbrevs.py +0 -0
- {mkdocs2confluence-0.20.0 → mkdocs2confluence-0.20.2}/tests/test_admonition_titles.py +0 -0
- {mkdocs2confluence-0.20.0 → mkdocs2confluence-0.20.2}/tests/test_attachment_previews.py +0 -0
- {mkdocs2confluence-0.20.0 → mkdocs2confluence-0.20.2}/tests/test_captions.py +0 -0
- {mkdocs2confluence-0.20.0 → mkdocs2confluence-0.20.2}/tests/test_changelog_config.py +0 -0
- {mkdocs2confluence-0.20.0 → mkdocs2confluence-0.20.2}/tests/test_changelog_publish.py +0 -0
- {mkdocs2confluence-0.20.0 → mkdocs2confluence-0.20.2}/tests/test_children_macro.py +0 -0
- {mkdocs2confluence-0.20.0 → mkdocs2confluence-0.20.2}/tests/test_cli.py +0 -0
- {mkdocs2confluence-0.20.0 → mkdocs2confluence-0.20.2}/tests/test_editlink.py +0 -0
- {mkdocs2confluence-0.20.0 → mkdocs2confluence-0.20.2}/tests/test_emitter.py +0 -0
- {mkdocs2confluence-0.20.0 → mkdocs2confluence-0.20.2}/tests/test_exclude_properties_config.py +0 -0
- {mkdocs2confluence-0.20.0 → mkdocs2confluence-0.20.2}/tests/test_extra_css.py +0 -0
- {mkdocs2confluence-0.20.0 → mkdocs2confluence-0.20.2}/tests/test_footer.py +0 -0
- {mkdocs2confluence-0.20.0 → mkdocs2confluence-0.20.2}/tests/test_frontmatter.py +0 -0
- {mkdocs2confluence-0.20.0 → mkdocs2confluence-0.20.2}/tests/test_icons.py +0 -0
- {mkdocs2confluence-0.20.0 → mkdocs2confluence-0.20.2}/tests/test_images.py +0 -0
- {mkdocs2confluence-0.20.0 → mkdocs2confluence-0.20.2}/tests/test_internallinks.py +0 -0
- {mkdocs2confluence-0.20.0 → mkdocs2confluence-0.20.2}/tests/test_ir.py +0 -0
- {mkdocs2confluence-0.20.0 → mkdocs2confluence-0.20.2}/tests/test_linkdefs.py +0 -0
- {mkdocs2confluence-0.20.0 → mkdocs2confluence-0.20.2}/tests/test_loader.py +0 -0
- {mkdocs2confluence-0.20.0 → mkdocs2confluence-0.20.2}/tests/test_mermaid.py +0 -0
- {mkdocs2confluence-0.20.0 → mkdocs2confluence-0.20.2}/tests/test_page_loader.py +0 -0
- {mkdocs2confluence-0.20.0 → mkdocs2confluence-0.20.2}/tests/test_pdf.py +0 -0
- {mkdocs2confluence-0.20.0 → mkdocs2confluence-0.20.2}/tests/test_plantuml.py +0 -0
- {mkdocs2confluence-0.20.0 → mkdocs2confluence-0.20.2}/tests/test_preprocess.py +0 -0
- {mkdocs2confluence-0.20.0 → mkdocs2confluence-0.20.2}/tests/test_preview.py +0 -0
- {mkdocs2confluence-0.20.0 → mkdocs2confluence-0.20.2}/tests/test_publish_client.py +0 -0
- {mkdocs2confluence-0.20.0 → mkdocs2confluence-0.20.2}/tests/test_publish_config.py +0 -0
- {mkdocs2confluence-0.20.0 → mkdocs2confluence-0.20.2}/tests/test_publish_pipeline.py +0 -0
- {mkdocs2confluence-0.20.0 → mkdocs2confluence-0.20.2}/tests/test_server.py +0 -0
- {mkdocs2confluence-0.20.0 → mkdocs2confluence-0.20.2}/tests/test_skill_installer.py +0 -0
- {mkdocs2confluence-0.20.0 → mkdocs2confluence-0.20.2}/tests/test_sync_anchoring.py +0 -0
- {mkdocs2confluence-0.20.0 → mkdocs2confluence-0.20.2}/tests/test_sync_command.py +0 -0
- {mkdocs2confluence-0.20.0 → mkdocs2confluence-0.20.2}/tests/test_sync_comments.py +0 -0
- {mkdocs2confluence-0.20.0 → mkdocs2confluence-0.20.2}/tests/test_sync_github.py +0 -0
- {mkdocs2confluence-0.20.0 → mkdocs2confluence-0.20.2}/tests/test_sync_state.py +0 -0
- {mkdocs2confluence-0.20.0 → mkdocs2confluence-0.20.2}/tests/test_treeutil.py +0 -0
{mkdocs2confluence-0.20.0/src/mkdocs2confluence.egg-info → mkdocs2confluence-0.20.2}/PKG-INFO
RENAMED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
Metadata-Version: 2.4
|
|
2
2
|
Name: mkdocs2confluence
|
|
3
|
-
Version: 0.20.
|
|
3
|
+
Version: 0.20.2
|
|
4
4
|
Summary: Publish MkDocs Material pages to Confluence Cloud — admonitions, Mermaid diagrams, tabs, page properties and more
|
|
5
5
|
Author: Anders Hybertz
|
|
6
6
|
License: GPL-3.0-or-later
|
|
@@ -16,6 +16,7 @@ Classifier: License :: OSI Approved :: GNU General Public License v3 or later (G
|
|
|
16
16
|
Classifier: Programming Language :: Python :: 3
|
|
17
17
|
Classifier: Programming Language :: Python :: 3.12
|
|
18
18
|
Classifier: Programming Language :: Python :: 3.13
|
|
19
|
+
Classifier: Programming Language :: Python :: 3.14
|
|
19
20
|
Classifier: Topic :: Documentation
|
|
20
21
|
Classifier: Topic :: Software Development :: Documentation
|
|
21
22
|
Classifier: Topic :: Text Processing :: Markup
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
[project]
|
|
2
2
|
name = "mkdocs2confluence"
|
|
3
|
-
version = "0.20.
|
|
3
|
+
version = "0.20.2"
|
|
4
4
|
description = "Publish MkDocs Material pages to Confluence Cloud — admonitions, Mermaid diagrams, tabs, page properties and more"
|
|
5
5
|
readme = "README.md"
|
|
6
6
|
license = { text = "GPL-3.0-or-later" }
|
|
@@ -24,6 +24,7 @@ classifiers = [
|
|
|
24
24
|
"Programming Language :: Python :: 3",
|
|
25
25
|
"Programming Language :: Python :: 3.12",
|
|
26
26
|
"Programming Language :: Python :: 3.13",
|
|
27
|
+
"Programming Language :: Python :: 3.14",
|
|
27
28
|
"Topic :: Documentation",
|
|
28
29
|
"Topic :: Software Development :: Documentation",
|
|
29
30
|
"Topic :: Text Processing :: Markup",
|
{mkdocs2confluence-0.20.0 → mkdocs2confluence-0.20.2/src/mkdocs2confluence.egg-info}/PKG-INFO
RENAMED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
Metadata-Version: 2.4
|
|
2
2
|
Name: mkdocs2confluence
|
|
3
|
-
Version: 0.20.
|
|
3
|
+
Version: 0.20.2
|
|
4
4
|
Summary: Publish MkDocs Material pages to Confluence Cloud — admonitions, Mermaid diagrams, tabs, page properties and more
|
|
5
5
|
Author: Anders Hybertz
|
|
6
6
|
License: GPL-3.0-or-later
|
|
@@ -16,6 +16,7 @@ Classifier: License :: OSI Approved :: GNU General Public License v3 or later (G
|
|
|
16
16
|
Classifier: Programming Language :: Python :: 3
|
|
17
17
|
Classifier: Programming Language :: Python :: 3.12
|
|
18
18
|
Classifier: Programming Language :: Python :: 3.13
|
|
19
|
+
Classifier: Programming Language :: Python :: 3.14
|
|
19
20
|
Classifier: Topic :: Documentation
|
|
20
21
|
Classifier: Topic :: Software Development :: Documentation
|
|
21
22
|
Classifier: Topic :: Text Processing :: Markup
|
{mkdocs2confluence-0.20.0 → mkdocs2confluence-0.20.2}/src/mkdocs_to_confluence/loader/config.py
RENAMED
|
@@ -123,7 +123,7 @@ def _make_env_loader() -> type[yaml.SafeLoader]:
|
|
|
123
123
|
def _ignore(loader: yaml.SafeLoader, _tag_suffix: str, node: yaml.Node) -> None:
|
|
124
124
|
return None
|
|
125
125
|
|
|
126
|
-
_Loader.add_multi_constructor("", _ignore)
|
|
126
|
+
_Loader.add_multi_constructor("", _ignore)
|
|
127
127
|
return _Loader
|
|
128
128
|
|
|
129
129
|
|
{mkdocs2confluence-0.20.0 → mkdocs2confluence-0.20.2}/src/mkdocs_to_confluence/parser/markdown.py
RENAMED
|
@@ -51,6 +51,7 @@ from __future__ import annotations
|
|
|
51
51
|
import contextlib
|
|
52
52
|
import html
|
|
53
53
|
import re
|
|
54
|
+
import textwrap
|
|
54
55
|
from dataclasses import dataclass, field
|
|
55
56
|
from typing import Union
|
|
56
57
|
|
|
@@ -329,6 +330,17 @@ def _grid_kind(line: str) -> str | None:
|
|
|
329
330
|
_CARD_BULLET_RE = re.compile(r'^(?P<marker>[-*+]\s+)(?P<text>.*)$')
|
|
330
331
|
|
|
331
332
|
|
|
333
|
+
def _dedent_body(lines: list[str]) -> str:
|
|
334
|
+
"""Join admonition/tab body *lines* and drop any indent they all share.
|
|
335
|
+
|
|
336
|
+
The collector strips the 4 columns that delimit the body, but authors often
|
|
337
|
+
indent the content further (8 spaces is a common habit). That residual indent
|
|
338
|
+
is invisible to the author and would stop a list, fence or heading from being
|
|
339
|
+
recognised, since those anchor at column 0.
|
|
340
|
+
"""
|
|
341
|
+
return textwrap.dedent("\n".join(_expand_leading_tabs(ln) for ln in lines))
|
|
342
|
+
|
|
343
|
+
|
|
332
344
|
def _expand_leading_tabs(line: str) -> str:
|
|
333
345
|
"""Expand tabs in *line*'s leading whitespace to 4-space tab stops.
|
|
334
346
|
|
|
@@ -536,7 +548,7 @@ def _tokenize(text: str) -> list[_Token]:
|
|
|
536
548
|
# Drop trailing blank lines so the recursive tokenizer stays clean.
|
|
537
549
|
while body_raw and not body_raw[-1].strip():
|
|
538
550
|
body_raw.pop()
|
|
539
|
-
body_tokens = _tokenize(
|
|
551
|
+
body_tokens = _tokenize(_dedent_body(body_raw))
|
|
540
552
|
tokens.append(
|
|
541
553
|
_AdmonitionToken(
|
|
542
554
|
kind=kind,
|
|
@@ -571,7 +583,7 @@ def _tokenize(text: str) -> list[_Token]:
|
|
|
571
583
|
break
|
|
572
584
|
while body_raw_tab and not body_raw_tab[-1].strip():
|
|
573
585
|
body_raw_tab.pop()
|
|
574
|
-
tabs.append(_TabData(label=label, body_tokens=_tokenize(
|
|
586
|
+
tabs.append(_TabData(label=label, body_tokens=_tokenize(_dedent_body(body_raw_tab))))
|
|
575
587
|
if tabs:
|
|
576
588
|
tokens.append(_ContentTabsToken(tabs=tabs))
|
|
577
589
|
continue
|
|
@@ -1668,3 +1668,52 @@ class TestGridCardIndentEdgeCases:
|
|
|
1668
1668
|
src = '<div class="grid cards" markdown>\r\n\r\n- !!! tip "T"\r\n\r\n Body.\r\n\r\n</div>\r\n'
|
|
1669
1669
|
from mkdocs_to_confluence.emitter.xhtml import emit
|
|
1670
1670
|
assert "Body." in self._panel_body(emit(parse(src)))
|
|
1671
|
+
|
|
1672
|
+
|
|
1673
|
+
class TestAdmonitionBodyOverIndent:
|
|
1674
|
+
"""Body content indented past the 4 that delimit it must still parse."""
|
|
1675
|
+
|
|
1676
|
+
def _emit(self, src: str) -> str:
|
|
1677
|
+
from mkdocs_to_confluence.emitter.xhtml import emit
|
|
1678
|
+
return emit(parse(src))
|
|
1679
|
+
|
|
1680
|
+
def test_list_indented_eight_spaces(self) -> None:
|
|
1681
|
+
"""8 spaces (4 for the body + 4 more) is a common authoring habit."""
|
|
1682
|
+
xhtml = self._emit('!!! note "T"\n\n - one\n - two\n')
|
|
1683
|
+
assert "<li><p>one</p></li>" in xhtml
|
|
1684
|
+
assert "<p>- one" not in xhtml, "list flattened to a paragraph"
|
|
1685
|
+
|
|
1686
|
+
def test_list_indented_four_spaces_still_works(self) -> None:
|
|
1687
|
+
xhtml = self._emit('!!! note "T"\n\n - one\n - two\n')
|
|
1688
|
+
assert "<li><p>one</p></li>" in xhtml
|
|
1689
|
+
|
|
1690
|
+
def test_nested_list_relative_indent_is_preserved(self) -> None:
|
|
1691
|
+
"""Dedenting must not flatten a sub-list into its parent."""
|
|
1692
|
+
for sub_indent in (" ", " "): # 2 and 4 spaces past the item
|
|
1693
|
+
xhtml = self._emit(f'!!! note "T"\n\n - one\n{sub_indent}- sub\n - two\n')
|
|
1694
|
+
assert xhtml.count("<ul>") == 2, f"sub-list lost at {len(sub_indent)} spaces"
|
|
1695
|
+
|
|
1696
|
+
def test_mixed_indent_body_is_left_alone(self) -> None:
|
|
1697
|
+
"""A deeper line beside a column-0 line keeps its relative indent."""
|
|
1698
|
+
xhtml = self._emit('!!! note "T"\n\n Intro.\n\n - deeper\n')
|
|
1699
|
+
assert "<p>Intro.</p>" in xhtml
|
|
1700
|
+
|
|
1701
|
+
def test_over_indented_code_fence(self) -> None:
|
|
1702
|
+
xhtml = self._emit('!!! note "T"\n\n ```python\n x = 1\n ```\n')
|
|
1703
|
+
assert "<![CDATA[x = 1]]>" in xhtml
|
|
1704
|
+
|
|
1705
|
+
def test_content_tab_body_is_dedented_too(self) -> None:
|
|
1706
|
+
xhtml = self._emit('=== "A"\n\n - one\n - two\n')
|
|
1707
|
+
assert "<li><p>one</p></li>" in xhtml
|
|
1708
|
+
|
|
1709
|
+
def test_grid_card_admonition_with_over_indented_list(self) -> None:
|
|
1710
|
+
"""The reported case: grid card, bulleted admonition, list at 8 spaces."""
|
|
1711
|
+
xhtml = self._emit(
|
|
1712
|
+
'<div class="grid cards">\n\n'
|
|
1713
|
+
'- !!! abstract "Documentation"\n\n'
|
|
1714
|
+
' - **Scope:** test\n'
|
|
1715
|
+
' - **Out:** test\n\n'
|
|
1716
|
+
'</div>\n'
|
|
1717
|
+
)
|
|
1718
|
+
assert "<li><p><strong>Scope:</strong> test</p></li>" in xhtml
|
|
1719
|
+
assert "<p>- " not in xhtml
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{mkdocs2confluence-0.20.0 → mkdocs2confluence-0.20.2}/src/mkdocs2confluence.egg-info/SOURCES.txt
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
{mkdocs2confluence-0.20.0 → mkdocs2confluence-0.20.2}/src/mkdocs2confluence.egg-info/requires.txt
RENAMED
|
File without changes
|
{mkdocs2confluence-0.20.0 → mkdocs2confluence-0.20.2}/src/mkdocs2confluence.egg-info/top_level.txt
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
{mkdocs2confluence-0.20.0 → mkdocs2confluence-0.20.2}/src/mkdocs_to_confluence/compiler/__init__.py
RENAMED
|
File without changes
|
{mkdocs2confluence-0.20.0 → mkdocs2confluence-0.20.2}/src/mkdocs_to_confluence/compiler/models.py
RENAMED
|
File without changes
|
{mkdocs2confluence-0.20.0 → mkdocs2confluence-0.20.2}/src/mkdocs_to_confluence/compiler/page.py
RENAMED
|
File without changes
|
{mkdocs2confluence-0.20.0 → mkdocs2confluence-0.20.2}/src/mkdocs_to_confluence/emitter/__init__.py
RENAMED
|
File without changes
|
{mkdocs2confluence-0.20.0 → mkdocs2confluence-0.20.2}/src/mkdocs_to_confluence/emitter/xhtml.py
RENAMED
|
File without changes
|
{mkdocs2confluence-0.20.0 → mkdocs2confluence-0.20.2}/src/mkdocs_to_confluence/ir/__init__.py
RENAMED
|
File without changes
|
|
File without changes
|
{mkdocs2confluence-0.20.0 → mkdocs2confluence-0.20.2}/src/mkdocs_to_confluence/ir/treeutil.py
RENAMED
|
File without changes
|
{mkdocs2confluence-0.20.0 → mkdocs2confluence-0.20.2}/src/mkdocs_to_confluence/loader/__init__.py
RENAMED
|
File without changes
|
{mkdocs2confluence-0.20.0 → mkdocs2confluence-0.20.2}/src/mkdocs_to_confluence/loader/extra_css.py
RENAMED
|
File without changes
|
{mkdocs2confluence-0.20.0 → mkdocs2confluence-0.20.2}/src/mkdocs_to_confluence/loader/nav.py
RENAMED
|
File without changes
|
{mkdocs2confluence-0.20.0 → mkdocs2confluence-0.20.2}/src/mkdocs_to_confluence/loader/page.py
RENAMED
|
File without changes
|
{mkdocs2confluence-0.20.0 → mkdocs2confluence-0.20.2}/src/mkdocs_to_confluence/parser/__init__.py
RENAMED
|
File without changes
|
{mkdocs2confluence-0.20.0 → mkdocs2confluence-0.20.2}/src/mkdocs_to_confluence/pdf/__init__.py
RENAMED
|
File without changes
|
{mkdocs2confluence-0.20.0 → mkdocs2confluence-0.20.2}/src/mkdocs_to_confluence/pdf/generator.py
RENAMED
|
File without changes
|
{mkdocs2confluence-0.20.0 → mkdocs2confluence-0.20.2}/src/mkdocs_to_confluence/pdf/render.py
RENAMED
|
File without changes
|
|
File without changes
|
{mkdocs2confluence-0.20.0 → mkdocs2confluence-0.20.2}/src/mkdocs_to_confluence/preprocess/abbrevs.py
RENAMED
|
File without changes
|
|
File without changes
|
{mkdocs2confluence-0.20.0 → mkdocs2confluence-0.20.2}/src/mkdocs_to_confluence/preprocess/fence.py
RENAMED
|
File without changes
|
|
File without changes
|
{mkdocs2confluence-0.20.0 → mkdocs2confluence-0.20.2}/src/mkdocs_to_confluence/preprocess/icons.py
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
{mkdocs2confluence-0.20.0 → mkdocs2confluence-0.20.2}/src/mkdocs_to_confluence/preview/__init__.py
RENAMED
|
File without changes
|
{mkdocs2confluence-0.20.0 → mkdocs2confluence-0.20.2}/src/mkdocs_to_confluence/preview/render.py
RENAMED
|
File without changes
|
{mkdocs2confluence-0.20.0 → mkdocs2confluence-0.20.2}/src/mkdocs_to_confluence/preview/server.py
RENAMED
|
File without changes
|
{mkdocs2confluence-0.20.0 → mkdocs2confluence-0.20.2}/src/mkdocs_to_confluence/publisher/__init__.py
RENAMED
|
File without changes
|
|
File without changes
|
{mkdocs2confluence-0.20.0 → mkdocs2confluence-0.20.2}/src/mkdocs_to_confluence/publisher/client.py
RENAMED
|
File without changes
|
{mkdocs2confluence-0.20.0 → mkdocs2confluence-0.20.2}/src/mkdocs_to_confluence/publisher/executor.py
RENAMED
|
File without changes
|
|
File without changes
|
{mkdocs2confluence-0.20.0 → mkdocs2confluence-0.20.2}/src/mkdocs_to_confluence/publisher/models.py
RENAMED
|
File without changes
|
{mkdocs2confluence-0.20.0 → mkdocs2confluence-0.20.2}/src/mkdocs_to_confluence/publisher/planner.py
RENAMED
|
File without changes
|
{mkdocs2confluence-0.20.0 → mkdocs2confluence-0.20.2}/src/mkdocs_to_confluence/skill_installer.py
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
{mkdocs2confluence-0.20.0 → mkdocs2confluence-0.20.2}/src/mkdocs_to_confluence/sync/__init__.py
RENAMED
|
File without changes
|
{mkdocs2confluence-0.20.0 → mkdocs2confluence-0.20.2}/src/mkdocs_to_confluence/sync/anchoring.py
RENAMED
|
File without changes
|
{mkdocs2confluence-0.20.0 → mkdocs2confluence-0.20.2}/src/mkdocs_to_confluence/sync/command.py
RENAMED
|
File without changes
|
{mkdocs2confluence-0.20.0 → mkdocs2confluence-0.20.2}/src/mkdocs_to_confluence/sync/comments.py
RENAMED
|
File without changes
|
{mkdocs2confluence-0.20.0 → mkdocs2confluence-0.20.2}/src/mkdocs_to_confluence/sync/github.py
RENAMED
|
File without changes
|
{mkdocs2confluence-0.20.0 → mkdocs2confluence-0.20.2}/src/mkdocs_to_confluence/sync/platform.py
RENAMED
|
File without changes
|
{mkdocs2confluence-0.20.0 → mkdocs2confluence-0.20.2}/src/mkdocs_to_confluence/sync/state.py
RENAMED
|
File without changes
|
|
File without changes
|
{mkdocs2confluence-0.20.0 → mkdocs2confluence-0.20.2}/src/mkdocs_to_confluence/transforms/_kroki.py
RENAMED
|
File without changes
|
{mkdocs2confluence-0.20.0 → mkdocs2confluence-0.20.2}/src/mkdocs_to_confluence/transforms/abbrevs.py
RENAMED
|
File without changes
|
|
File without changes
|
{mkdocs2confluence-0.20.0 → mkdocs2confluence-0.20.2}/src/mkdocs_to_confluence/transforms/assets.py
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{mkdocs2confluence-0.20.0 → mkdocs2confluence-0.20.2}/src/mkdocs_to_confluence/transforms/footer.py
RENAMED
|
File without changes
|
{mkdocs2confluence-0.20.0 → mkdocs2confluence-0.20.2}/src/mkdocs_to_confluence/transforms/images.py
RENAMED
|
File without changes
|
|
File without changes
|
{mkdocs2confluence-0.20.0 → mkdocs2confluence-0.20.2}/src/mkdocs_to_confluence/transforms/mermaid.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
|
{mkdocs2confluence-0.20.0 → mkdocs2confluence-0.20.2}/tests/test_exclude_properties_config.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
|