mkdocs2confluence 0.9.1__tar.gz → 0.9.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.9.1 → mkdocs2confluence-0.9.2}/PKG-INFO +1 -1
- {mkdocs2confluence-0.9.1 → mkdocs2confluence-0.9.2}/pyproject.toml +2 -1
- {mkdocs2confluence-0.9.1 → mkdocs2confluence-0.9.2}/src/mkdocs2confluence.egg-info/PKG-INFO +1 -1
- {mkdocs2confluence-0.9.1 → mkdocs2confluence-0.9.2}/src/mkdocs_to_confluence/cli.py +4 -4
- {mkdocs2confluence-0.9.1 → mkdocs2confluence-0.9.2}/src/mkdocs_to_confluence/publisher/client.py +2 -1
- {mkdocs2confluence-0.9.1 → mkdocs2confluence-0.9.2}/src/mkdocs_to_confluence/publisher/pipeline.py +16 -8
- {mkdocs2confluence-0.9.1 → mkdocs2confluence-0.9.2}/tests/test_cli.py +2 -2
- {mkdocs2confluence-0.9.1 → mkdocs2confluence-0.9.2}/tests/test_publish_pipeline.py +8 -8
- {mkdocs2confluence-0.9.1 → mkdocs2confluence-0.9.2}/LICENSE +0 -0
- {mkdocs2confluence-0.9.1 → mkdocs2confluence-0.9.2}/README.md +0 -0
- {mkdocs2confluence-0.9.1 → mkdocs2confluence-0.9.2}/setup.cfg +0 -0
- {mkdocs2confluence-0.9.1 → mkdocs2confluence-0.9.2}/src/mkdocs2confluence.egg-info/SOURCES.txt +0 -0
- {mkdocs2confluence-0.9.1 → mkdocs2confluence-0.9.2}/src/mkdocs2confluence.egg-info/dependency_links.txt +0 -0
- {mkdocs2confluence-0.9.1 → mkdocs2confluence-0.9.2}/src/mkdocs2confluence.egg-info/entry_points.txt +0 -0
- {mkdocs2confluence-0.9.1 → mkdocs2confluence-0.9.2}/src/mkdocs2confluence.egg-info/requires.txt +0 -0
- {mkdocs2confluence-0.9.1 → mkdocs2confluence-0.9.2}/src/mkdocs2confluence.egg-info/top_level.txt +0 -0
- {mkdocs2confluence-0.9.1 → mkdocs2confluence-0.9.2}/src/mkdocs_to_confluence/__init__.py +0 -0
- {mkdocs2confluence-0.9.1 → mkdocs2confluence-0.9.2}/src/mkdocs_to_confluence/emitter/__init__.py +0 -0
- {mkdocs2confluence-0.9.1 → mkdocs2confluence-0.9.2}/src/mkdocs_to_confluence/emitter/xhtml.py +0 -0
- {mkdocs2confluence-0.9.1 → mkdocs2confluence-0.9.2}/src/mkdocs_to_confluence/ir/__init__.py +0 -0
- {mkdocs2confluence-0.9.1 → mkdocs2confluence-0.9.2}/src/mkdocs_to_confluence/ir/document.py +0 -0
- {mkdocs2confluence-0.9.1 → mkdocs2confluence-0.9.2}/src/mkdocs_to_confluence/ir/nodes.py +0 -0
- {mkdocs2confluence-0.9.1 → mkdocs2confluence-0.9.2}/src/mkdocs_to_confluence/ir/treeutil.py +0 -0
- {mkdocs2confluence-0.9.1 → mkdocs2confluence-0.9.2}/src/mkdocs_to_confluence/loader/__init__.py +0 -0
- {mkdocs2confluence-0.9.1 → mkdocs2confluence-0.9.2}/src/mkdocs_to_confluence/loader/config.py +0 -0
- {mkdocs2confluence-0.9.1 → mkdocs2confluence-0.9.2}/src/mkdocs_to_confluence/loader/extra_css.py +0 -0
- {mkdocs2confluence-0.9.1 → mkdocs2confluence-0.9.2}/src/mkdocs_to_confluence/loader/nav.py +0 -0
- {mkdocs2confluence-0.9.1 → mkdocs2confluence-0.9.2}/src/mkdocs_to_confluence/loader/page.py +0 -0
- {mkdocs2confluence-0.9.1 → mkdocs2confluence-0.9.2}/src/mkdocs_to_confluence/parser/__init__.py +0 -0
- {mkdocs2confluence-0.9.1 → mkdocs2confluence-0.9.2}/src/mkdocs_to_confluence/parser/markdown.py +0 -0
- {mkdocs2confluence-0.9.1 → mkdocs2confluence-0.9.2}/src/mkdocs_to_confluence/pdf/__init__.py +0 -0
- {mkdocs2confluence-0.9.1 → mkdocs2confluence-0.9.2}/src/mkdocs_to_confluence/pdf/generator.py +0 -0
- {mkdocs2confluence-0.9.1 → mkdocs2confluence-0.9.2}/src/mkdocs_to_confluence/pdf/render.py +0 -0
- {mkdocs2confluence-0.9.1 → mkdocs2confluence-0.9.2}/src/mkdocs_to_confluence/preprocess/__init__.py +0 -0
- {mkdocs2confluence-0.9.1 → mkdocs2confluence-0.9.2}/src/mkdocs_to_confluence/preprocess/abbrevs.py +0 -0
- {mkdocs2confluence-0.9.1 → mkdocs2confluence-0.9.2}/src/mkdocs_to_confluence/preprocess/fence.py +0 -0
- {mkdocs2confluence-0.9.1 → mkdocs2confluence-0.9.2}/src/mkdocs_to_confluence/preprocess/frontmatter.py +0 -0
- {mkdocs2confluence-0.9.1 → mkdocs2confluence-0.9.2}/src/mkdocs_to_confluence/preprocess/icons.py +0 -0
- {mkdocs2confluence-0.9.1 → mkdocs2confluence-0.9.2}/src/mkdocs_to_confluence/preprocess/includes.py +0 -0
- {mkdocs2confluence-0.9.1 → mkdocs2confluence-0.9.2}/src/mkdocs_to_confluence/preprocess/linkdefs.py +0 -0
- {mkdocs2confluence-0.9.1 → mkdocs2confluence-0.9.2}/src/mkdocs_to_confluence/preview/__init__.py +0 -0
- {mkdocs2confluence-0.9.1 → mkdocs2confluence-0.9.2}/src/mkdocs_to_confluence/preview/render.py +0 -0
- {mkdocs2confluence-0.9.1 → mkdocs2confluence-0.9.2}/src/mkdocs_to_confluence/preview/server.py +0 -0
- {mkdocs2confluence-0.9.1 → mkdocs2confluence-0.9.2}/src/mkdocs_to_confluence/publisher/__init__.py +0 -0
- {mkdocs2confluence-0.9.1 → mkdocs2confluence-0.9.2}/src/mkdocs_to_confluence/sync/__init__.py +0 -0
- {mkdocs2confluence-0.9.1 → mkdocs2confluence-0.9.2}/src/mkdocs_to_confluence/sync/anchoring.py +0 -0
- {mkdocs2confluence-0.9.1 → mkdocs2confluence-0.9.2}/src/mkdocs_to_confluence/sync/command.py +0 -0
- {mkdocs2confluence-0.9.1 → mkdocs2confluence-0.9.2}/src/mkdocs_to_confluence/sync/comments.py +0 -0
- {mkdocs2confluence-0.9.1 → mkdocs2confluence-0.9.2}/src/mkdocs_to_confluence/sync/github.py +0 -0
- {mkdocs2confluence-0.9.1 → mkdocs2confluence-0.9.2}/src/mkdocs_to_confluence/sync/platform.py +0 -0
- {mkdocs2confluence-0.9.1 → mkdocs2confluence-0.9.2}/src/mkdocs_to_confluence/sync/state.py +0 -0
- {mkdocs2confluence-0.9.1 → mkdocs2confluence-0.9.2}/src/mkdocs_to_confluence/transforms/__init__.py +0 -0
- {mkdocs2confluence-0.9.1 → mkdocs2confluence-0.9.2}/src/mkdocs_to_confluence/transforms/abbrevs.py +0 -0
- {mkdocs2confluence-0.9.1 → mkdocs2confluence-0.9.2}/src/mkdocs_to_confluence/transforms/assets.py +0 -0
- {mkdocs2confluence-0.9.1 → mkdocs2confluence-0.9.2}/src/mkdocs_to_confluence/transforms/editlink.py +0 -0
- {mkdocs2confluence-0.9.1 → mkdocs2confluence-0.9.2}/src/mkdocs_to_confluence/transforms/footer.py +0 -0
- {mkdocs2confluence-0.9.1 → mkdocs2confluence-0.9.2}/src/mkdocs_to_confluence/transforms/images.py +0 -0
- {mkdocs2confluence-0.9.1 → mkdocs2confluence-0.9.2}/src/mkdocs_to_confluence/transforms/internallinks.py +0 -0
- {mkdocs2confluence-0.9.1 → mkdocs2confluence-0.9.2}/src/mkdocs_to_confluence/transforms/mermaid.py +0 -0
- {mkdocs2confluence-0.9.1 → mkdocs2confluence-0.9.2}/tests/test_abbrevs.py +0 -0
- {mkdocs2confluence-0.9.1 → mkdocs2confluence-0.9.2}/tests/test_editlink.py +0 -0
- {mkdocs2confluence-0.9.1 → mkdocs2confluence-0.9.2}/tests/test_emitter.py +0 -0
- {mkdocs2confluence-0.9.1 → mkdocs2confluence-0.9.2}/tests/test_extra_css.py +0 -0
- {mkdocs2confluence-0.9.1 → mkdocs2confluence-0.9.2}/tests/test_footer.py +0 -0
- {mkdocs2confluence-0.9.1 → mkdocs2confluence-0.9.2}/tests/test_frontmatter.py +0 -0
- {mkdocs2confluence-0.9.1 → mkdocs2confluence-0.9.2}/tests/test_icons.py +0 -0
- {mkdocs2confluence-0.9.1 → mkdocs2confluence-0.9.2}/tests/test_images.py +0 -0
- {mkdocs2confluence-0.9.1 → mkdocs2confluence-0.9.2}/tests/test_internallinks.py +0 -0
- {mkdocs2confluence-0.9.1 → mkdocs2confluence-0.9.2}/tests/test_ir.py +0 -0
- {mkdocs2confluence-0.9.1 → mkdocs2confluence-0.9.2}/tests/test_linkdefs.py +0 -0
- {mkdocs2confluence-0.9.1 → mkdocs2confluence-0.9.2}/tests/test_loader.py +0 -0
- {mkdocs2confluence-0.9.1 → mkdocs2confluence-0.9.2}/tests/test_mermaid.py +0 -0
- {mkdocs2confluence-0.9.1 → mkdocs2confluence-0.9.2}/tests/test_page_loader.py +0 -0
- {mkdocs2confluence-0.9.1 → mkdocs2confluence-0.9.2}/tests/test_parser.py +0 -0
- {mkdocs2confluence-0.9.1 → mkdocs2confluence-0.9.2}/tests/test_pdf.py +0 -0
- {mkdocs2confluence-0.9.1 → mkdocs2confluence-0.9.2}/tests/test_preprocess.py +0 -0
- {mkdocs2confluence-0.9.1 → mkdocs2confluence-0.9.2}/tests/test_preview.py +0 -0
- {mkdocs2confluence-0.9.1 → mkdocs2confluence-0.9.2}/tests/test_publish_client.py +0 -0
- {mkdocs2confluence-0.9.1 → mkdocs2confluence-0.9.2}/tests/test_publish_config.py +0 -0
- {mkdocs2confluence-0.9.1 → mkdocs2confluence-0.9.2}/tests/test_server.py +0 -0
- {mkdocs2confluence-0.9.1 → mkdocs2confluence-0.9.2}/tests/test_sync_anchoring.py +0 -0
- {mkdocs2confluence-0.9.1 → mkdocs2confluence-0.9.2}/tests/test_sync_command.py +0 -0
- {mkdocs2confluence-0.9.1 → mkdocs2confluence-0.9.2}/tests/test_sync_comments.py +0 -0
- {mkdocs2confluence-0.9.1 → mkdocs2confluence-0.9.2}/tests/test_sync_github.py +0 -0
- {mkdocs2confluence-0.9.1 → mkdocs2confluence-0.9.2}/tests/test_sync_state.py +0 -0
- {mkdocs2confluence-0.9.1 → mkdocs2confluence-0.9.2}/tests/test_treeutil.py +0 -0
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
[project]
|
|
2
2
|
name = "mkdocs2confluence"
|
|
3
|
-
version = "0.9.
|
|
3
|
+
version = "0.9.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" }
|
|
@@ -73,6 +73,7 @@ select = ["E", "F", "I"]
|
|
|
73
73
|
|
|
74
74
|
[tool.mypy]
|
|
75
75
|
strict = true
|
|
76
|
+
extra_checks = true
|
|
76
77
|
python_version = "3.12"
|
|
77
78
|
|
|
78
79
|
[[tool.mypy.overrides]]
|
|
@@ -359,7 +359,7 @@ def _cmd_preview(args: argparse.Namespace) -> None:
|
|
|
359
359
|
for node in pages:
|
|
360
360
|
html_name = page_link_map.get(node.title, f"{Path(node.docs_path or node.title).stem}.html")
|
|
361
361
|
try:
|
|
362
|
-
xhtml, _a, _l, _s = compile_page(node, config, link_map, quiet=args.quiet)
|
|
362
|
+
xhtml, _a, _l, _s, _vm = compile_page(node, config, link_map, quiet=args.quiet)
|
|
363
363
|
except PageLoadError as exc:
|
|
364
364
|
print(f" warning: skipping '{node.title}': {exc}", file=sys.stderr)
|
|
365
365
|
continue
|
|
@@ -417,7 +417,7 @@ def _cmd_preview(args: argparse.Namespace) -> None:
|
|
|
417
417
|
|
|
418
418
|
def _build_page() -> None:
|
|
419
419
|
try:
|
|
420
|
-
xhtml, _a, _l, _s = compile_page(page_node, config, link_map, quiet=True)
|
|
420
|
+
xhtml, _a, _l, _s, _vm = compile_page(page_node, config, link_map, quiet=True)
|
|
421
421
|
except PageLoadError as exc:
|
|
422
422
|
print(f" warning: {exc}", file=sys.stderr)
|
|
423
423
|
return
|
|
@@ -441,7 +441,7 @@ def _cmd_preview(args: argparse.Namespace) -> None:
|
|
|
441
441
|
return
|
|
442
442
|
|
|
443
443
|
try:
|
|
444
|
-
xhtml, _attachments, _labels, _status = compile_page(page_node, config, link_map, quiet=args.quiet)
|
|
444
|
+
xhtml, _attachments, _labels, _status, _vm = compile_page(page_node, config, link_map, quiet=args.quiet)
|
|
445
445
|
except PageLoadError as exc:
|
|
446
446
|
print(f"error: {exc}", file=sys.stderr)
|
|
447
447
|
sys.exit(1)
|
|
@@ -656,7 +656,7 @@ def _cmd_pdf(args: argparse.Namespace) -> None:
|
|
|
656
656
|
chapters: list[tuple[str, str]] = []
|
|
657
657
|
for node in pages:
|
|
658
658
|
try:
|
|
659
|
-
xhtml, _a, _l, _s = compile_page(node, config, link_map, quiet=args.quiet)
|
|
659
|
+
xhtml, _a, _l, _s, _vm = compile_page(node, config, link_map, quiet=args.quiet)
|
|
660
660
|
except PageLoadError as exc:
|
|
661
661
|
print(f" warning: skipping '{node.title}': {exc}", file=sys.stderr)
|
|
662
662
|
continue
|
{mkdocs2confluence-0.9.1 → mkdocs2confluence-0.9.2}/src/mkdocs_to_confluence/publisher/client.py
RENAMED
|
@@ -255,6 +255,7 @@ class ConfluenceClient:
|
|
|
255
255
|
version: int,
|
|
256
256
|
*,
|
|
257
257
|
parent_id: str | None = None,
|
|
258
|
+
version_message: str | None = None,
|
|
258
259
|
) -> dict[str, Any]:
|
|
259
260
|
"""Update an existing page to a new version and return the page dict.
|
|
260
261
|
|
|
@@ -273,7 +274,7 @@ class ConfluenceClient:
|
|
|
273
274
|
},
|
|
274
275
|
"version": {
|
|
275
276
|
"number": version,
|
|
276
|
-
"message": "
|
|
277
|
+
"message": version_message or "Published by mk2conf",
|
|
277
278
|
"minorEdit": True,
|
|
278
279
|
},
|
|
279
280
|
}
|
{mkdocs2confluence-0.9.1 → mkdocs2confluence-0.9.2}/src/mkdocs_to_confluence/publisher/pipeline.py
RENAMED
|
@@ -24,7 +24,7 @@ from typing import TYPE_CHECKING, Literal
|
|
|
24
24
|
import yaml
|
|
25
25
|
|
|
26
26
|
from mkdocs_to_confluence.emitter.xhtml import emit
|
|
27
|
-
from mkdocs_to_confluence.ir.nodes import FrontMatter
|
|
27
|
+
from mkdocs_to_confluence.ir.nodes import FrontMatter, SourceFooter
|
|
28
28
|
from mkdocs_to_confluence.loader.config import ConfluenceConfig, MkDocsConfig
|
|
29
29
|
from mkdocs_to_confluence.loader.nav import NavNode
|
|
30
30
|
from mkdocs_to_confluence.loader.page import PageLoadError, load_page
|
|
@@ -75,6 +75,7 @@ class PageAction:
|
|
|
75
75
|
attachments: list[Path] = field(default_factory=list)
|
|
76
76
|
labels: tuple[str, ...] = field(default_factory=tuple)
|
|
77
77
|
confluence_status: str | None = None
|
|
78
|
+
version_message: str | None = None # git commit message for Confluence version history
|
|
78
79
|
is_folder: bool = False # True when this action creates a Confluence folder
|
|
79
80
|
parent_is_folder: bool = False # True when the parent content is a folder
|
|
80
81
|
# Set after execution:
|
|
@@ -139,7 +140,7 @@ def compile_page(
|
|
|
139
140
|
link_map: dict[str, str] | None = None,
|
|
140
141
|
*,
|
|
141
142
|
quiet: bool = False,
|
|
142
|
-
) -> tuple[str, list[Path], tuple[str, ...], str | None]:
|
|
143
|
+
) -> tuple[str, list[Path], tuple[str, ...], str | None, str | None]:
|
|
143
144
|
"""Run the full compile pipeline for one page.
|
|
144
145
|
|
|
145
146
|
Returns
|
|
@@ -148,7 +149,7 @@ def compile_page(
|
|
|
148
149
|
``(xhtml_string, attachment_paths, labels, confluence_status)``
|
|
149
150
|
"""
|
|
150
151
|
if node.source_path is None:
|
|
151
|
-
return "", [], (), None
|
|
152
|
+
return "", [], (), None, None
|
|
152
153
|
|
|
153
154
|
raw = load_page(node)
|
|
154
155
|
|
|
@@ -195,17 +196,19 @@ def compile_page(
|
|
|
195
196
|
footer = build_source_footer(edit_url, abs_path)
|
|
196
197
|
ir_nodes = ir_nodes + (footer,)
|
|
197
198
|
|
|
198
|
-
# Extract labels and
|
|
199
|
+
# Extract labels, confluence_status, and version_message from IR nodes.
|
|
199
200
|
labels: tuple[str, ...] = ()
|
|
200
201
|
confluence_status: str | None = None
|
|
202
|
+
version_message: str | None = None
|
|
201
203
|
for node_item in ir_nodes:
|
|
202
204
|
if isinstance(node_item, FrontMatter):
|
|
203
205
|
labels = node_item.labels
|
|
204
206
|
confluence_status = node_item.confluence_status
|
|
205
|
-
|
|
207
|
+
if isinstance(node_item, SourceFooter) and node_item.commit_sha and node_item.commit_summary:
|
|
208
|
+
version_message = f"{node_item.commit_sha}: {node_item.commit_summary}"
|
|
206
209
|
|
|
207
210
|
xhtml = emit(ir_nodes)
|
|
208
|
-
return xhtml, attachments, labels, confluence_status
|
|
211
|
+
return xhtml, attachments, labels, confluence_status, version_message
|
|
209
212
|
|
|
210
213
|
|
|
211
214
|
def _xhtml_hash(xhtml: str) -> str:
|
|
@@ -279,7 +282,7 @@ def _plan_nodes(
|
|
|
279
282
|
if not quiet:
|
|
280
283
|
print(f" compiling '{clean_title}' (section index)")
|
|
281
284
|
try:
|
|
282
|
-
xhtml, attachments, labels, confluence_status = compile_page(
|
|
285
|
+
xhtml, attachments, labels, confluence_status, version_message = compile_page(
|
|
283
286
|
index_child, config, link_map, quiet=quiet
|
|
284
287
|
)
|
|
285
288
|
existing = client.find_page(space_id, clean_title)
|
|
@@ -312,6 +315,7 @@ def _plan_nodes(
|
|
|
312
315
|
attachments=attachments,
|
|
313
316
|
labels=labels,
|
|
314
317
|
confluence_status=confluence_status,
|
|
318
|
+
version_message=version_message,
|
|
315
319
|
page_id=str(existing["id"]) if existing is not None else None,
|
|
316
320
|
version=(
|
|
317
321
|
existing["version"]["number"] if existing is not None else None
|
|
@@ -379,7 +383,9 @@ def _plan_nodes(
|
|
|
379
383
|
if not quiet:
|
|
380
384
|
print(f" compiling '{clean_title}'")
|
|
381
385
|
try:
|
|
382
|
-
xhtml, attachments, labels, confluence_status = compile_page(
|
|
386
|
+
xhtml, attachments, labels, confluence_status, version_message = compile_page(
|
|
387
|
+
node, config, link_map, quiet=quiet
|
|
388
|
+
)
|
|
383
389
|
except (PageLoadError, OSError) as exc:
|
|
384
390
|
if not quiet:
|
|
385
391
|
print(f" skipping '{clean_title}' (error: {exc})")
|
|
@@ -419,6 +425,7 @@ def _plan_nodes(
|
|
|
419
425
|
attachments=attachments,
|
|
420
426
|
labels=labels,
|
|
421
427
|
confluence_status=confluence_status,
|
|
428
|
+
version_message=version_message,
|
|
422
429
|
page_id=str(existing["id"]) if existing is not None else None,
|
|
423
430
|
version=(
|
|
424
431
|
existing["version"]["number"] if existing is not None else None
|
|
@@ -588,6 +595,7 @@ def _execute_page_action(
|
|
|
588
595
|
action.xhtml or "",
|
|
589
596
|
action.version + 1,
|
|
590
597
|
parent_id=action.parent_id,
|
|
598
|
+
version_message=action.version_message,
|
|
591
599
|
)
|
|
592
600
|
report.updated += 1
|
|
593
601
|
except ConfluenceError as upd_exc:
|
|
@@ -175,7 +175,7 @@ class TestQuietOutputBehavior:
|
|
|
175
175
|
yml = _minimal_config(tmp_path)
|
|
176
176
|
(tmp_path / "docs" / "index.md").write_text("# Home\n\nHello.", encoding="utf-8")
|
|
177
177
|
|
|
178
|
-
mock_compile = MagicMock(return_value=("<p>Hello</p>", [], (), None))
|
|
178
|
+
mock_compile = MagicMock(return_value=("<p>Hello</p>", [], (), None, None))
|
|
179
179
|
with patch("mkdocs_to_confluence.cli.compile_page", mock_compile), \
|
|
180
180
|
patch("sys.stdout.isatty", return_value=False):
|
|
181
181
|
flags = ["--quiet"] if quiet else []
|
|
@@ -223,7 +223,7 @@ class TestWatchFlag:
|
|
|
223
223
|
yml = _minimal_config(tmp_path)
|
|
224
224
|
(tmp_path / "docs" / "index.md").write_text("# Home\n", encoding="utf-8")
|
|
225
225
|
|
|
226
|
-
mock_compile = MagicMock(return_value=("<p>Hello</p>", [], (), None))
|
|
226
|
+
mock_compile = MagicMock(return_value=("<p>Hello</p>", [], (), None, None))
|
|
227
227
|
mock_render = MagicMock(return_value="<html>preview</html>")
|
|
228
228
|
|
|
229
229
|
with patch("mkdocs_to_confluence.cli.compile_page", mock_compile), \
|
|
@@ -53,7 +53,7 @@ def test_compile_page_returns_xhtml(tmp_path: Path) -> None:
|
|
|
53
53
|
|
|
54
54
|
node = _page_node("Index", md)
|
|
55
55
|
config = _make_config(docs)
|
|
56
|
-
xhtml, attachments, labels, _ = compile_page(node, config)
|
|
56
|
+
xhtml, attachments, labels, _, _ = compile_page(node, config)
|
|
57
57
|
|
|
58
58
|
assert "<h1>" in xhtml or "Hello" in xhtml
|
|
59
59
|
assert attachments == []
|
|
@@ -68,7 +68,7 @@ def test_compile_page_with_ready_false_still_compiles(tmp_path: Path) -> None:
|
|
|
68
68
|
|
|
69
69
|
node = _page_node("Draft", md)
|
|
70
70
|
config = _make_config(docs)
|
|
71
|
-
xhtml, attachments, labels, _ = compile_page(node, config)
|
|
71
|
+
xhtml, attachments, labels, _, _ = compile_page(node, config)
|
|
72
72
|
# Still compiles fine; plan_publish is the gatekeeper
|
|
73
73
|
assert isinstance(xhtml, str)
|
|
74
74
|
|
|
@@ -78,7 +78,7 @@ def test_compile_page_with_source_path_none_returns_empty(tmp_path: Path) -> Non
|
|
|
78
78
|
docs.mkdir()
|
|
79
79
|
node = NavNode(title="Missing", docs_path="missing.md", source_path=None, level=0)
|
|
80
80
|
config = _make_config(docs)
|
|
81
|
-
xhtml, attachments, labels, _ = compile_page(node, config)
|
|
81
|
+
xhtml, attachments, labels, _, _ = compile_page(node, config)
|
|
82
82
|
assert xhtml == ""
|
|
83
83
|
assert attachments == []
|
|
84
84
|
assert labels == ()
|
|
@@ -179,7 +179,7 @@ def test_plan_publish_skips_when_content_unchanged(tmp_path: Path) -> None:
|
|
|
179
179
|
|
|
180
180
|
# Compile once to get the real hash
|
|
181
181
|
from mkdocs_to_confluence.publisher.pipeline import compile_page
|
|
182
|
-
xhtml, _, _, _ = compile_page(node, config)
|
|
182
|
+
xhtml, _, _, _, _ = compile_page(node, config)
|
|
183
183
|
stored_hash = _xhtml_hash(xhtml)
|
|
184
184
|
|
|
185
185
|
existing_page = {"id": "77", "version": {"number": 2}}
|
|
@@ -1672,7 +1672,7 @@ class TestExecutePublishHelpers:
|
|
|
1672
1672
|
|
|
1673
1673
|
assert report.updated == 1
|
|
1674
1674
|
client.update_page.assert_called_once_with(
|
|
1675
|
-
"existing-9", "P", "<p/>", 4, parent_id="ROOT"
|
|
1675
|
+
"existing-9", "P", "<p/>", 4, parent_id="ROOT", version_message=None
|
|
1676
1676
|
)
|
|
1677
1677
|
client.create_page.assert_not_called()
|
|
1678
1678
|
|
|
@@ -2036,7 +2036,7 @@ def test_compile_page_returns_confluence_status(tmp_path: Path) -> None:
|
|
|
2036
2036
|
|
|
2037
2037
|
node = _page_node("My Page", md)
|
|
2038
2038
|
config = _make_config(docs)
|
|
2039
|
-
_, _, _, confluence_status = compile_page(node, config)
|
|
2039
|
+
_, _, _, confluence_status, _ = compile_page(node, config)
|
|
2040
2040
|
|
|
2041
2041
|
assert confluence_status == "in-progress"
|
|
2042
2042
|
|
|
@@ -2060,7 +2060,7 @@ def test_compile_page_returns_confluence_status_with_repo_url(tmp_path: Path) ->
|
|
|
2060
2060
|
edit_uri="edit/main/docs/",
|
|
2061
2061
|
nav=None,
|
|
2062
2062
|
)
|
|
2063
|
-
_, _, _, confluence_status = compile_page(node, config)
|
|
2063
|
+
_, _, _, confluence_status, _ = compile_page(node, config)
|
|
2064
2064
|
|
|
2065
2065
|
assert confluence_status == "in-progress"
|
|
2066
2066
|
|
|
@@ -2098,7 +2098,7 @@ def test_plan_publish_sets_confluence_status_on_skip(tmp_path: Path) -> None:
|
|
|
2098
2098
|
config = _make_config(docs)
|
|
2099
2099
|
conf_config = _make_conf_config()
|
|
2100
2100
|
|
|
2101
|
-
xhtml, _, _, _ = compile_page(node, config)
|
|
2101
|
+
xhtml, _, _, _, _ = compile_page(node, config)
|
|
2102
2102
|
stored_hash = _xhtml_hash(xhtml)
|
|
2103
2103
|
|
|
2104
2104
|
existing_page = {"id": "77", "version": {"number": 2}}
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{mkdocs2confluence-0.9.1 → mkdocs2confluence-0.9.2}/src/mkdocs2confluence.egg-info/SOURCES.txt
RENAMED
|
File without changes
|
|
File without changes
|
{mkdocs2confluence-0.9.1 → mkdocs2confluence-0.9.2}/src/mkdocs2confluence.egg-info/entry_points.txt
RENAMED
|
File without changes
|
{mkdocs2confluence-0.9.1 → mkdocs2confluence-0.9.2}/src/mkdocs2confluence.egg-info/requires.txt
RENAMED
|
File without changes
|
{mkdocs2confluence-0.9.1 → mkdocs2confluence-0.9.2}/src/mkdocs2confluence.egg-info/top_level.txt
RENAMED
|
File without changes
|
|
File without changes
|
{mkdocs2confluence-0.9.1 → mkdocs2confluence-0.9.2}/src/mkdocs_to_confluence/emitter/__init__.py
RENAMED
|
File without changes
|
{mkdocs2confluence-0.9.1 → mkdocs2confluence-0.9.2}/src/mkdocs_to_confluence/emitter/xhtml.py
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{mkdocs2confluence-0.9.1 → mkdocs2confluence-0.9.2}/src/mkdocs_to_confluence/loader/__init__.py
RENAMED
|
File without changes
|
{mkdocs2confluence-0.9.1 → mkdocs2confluence-0.9.2}/src/mkdocs_to_confluence/loader/config.py
RENAMED
|
File without changes
|
{mkdocs2confluence-0.9.1 → mkdocs2confluence-0.9.2}/src/mkdocs_to_confluence/loader/extra_css.py
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
{mkdocs2confluence-0.9.1 → mkdocs2confluence-0.9.2}/src/mkdocs_to_confluence/parser/__init__.py
RENAMED
|
File without changes
|
{mkdocs2confluence-0.9.1 → mkdocs2confluence-0.9.2}/src/mkdocs_to_confluence/parser/markdown.py
RENAMED
|
File without changes
|
{mkdocs2confluence-0.9.1 → mkdocs2confluence-0.9.2}/src/mkdocs_to_confluence/pdf/__init__.py
RENAMED
|
File without changes
|
{mkdocs2confluence-0.9.1 → mkdocs2confluence-0.9.2}/src/mkdocs_to_confluence/pdf/generator.py
RENAMED
|
File without changes
|
|
File without changes
|
{mkdocs2confluence-0.9.1 → mkdocs2confluence-0.9.2}/src/mkdocs_to_confluence/preprocess/__init__.py
RENAMED
|
File without changes
|
{mkdocs2confluence-0.9.1 → mkdocs2confluence-0.9.2}/src/mkdocs_to_confluence/preprocess/abbrevs.py
RENAMED
|
File without changes
|
{mkdocs2confluence-0.9.1 → mkdocs2confluence-0.9.2}/src/mkdocs_to_confluence/preprocess/fence.py
RENAMED
|
File without changes
|
|
File without changes
|
{mkdocs2confluence-0.9.1 → mkdocs2confluence-0.9.2}/src/mkdocs_to_confluence/preprocess/icons.py
RENAMED
|
File without changes
|
{mkdocs2confluence-0.9.1 → mkdocs2confluence-0.9.2}/src/mkdocs_to_confluence/preprocess/includes.py
RENAMED
|
File without changes
|
{mkdocs2confluence-0.9.1 → mkdocs2confluence-0.9.2}/src/mkdocs_to_confluence/preprocess/linkdefs.py
RENAMED
|
File without changes
|
{mkdocs2confluence-0.9.1 → mkdocs2confluence-0.9.2}/src/mkdocs_to_confluence/preview/__init__.py
RENAMED
|
File without changes
|
{mkdocs2confluence-0.9.1 → mkdocs2confluence-0.9.2}/src/mkdocs_to_confluence/preview/render.py
RENAMED
|
File without changes
|
{mkdocs2confluence-0.9.1 → mkdocs2confluence-0.9.2}/src/mkdocs_to_confluence/preview/server.py
RENAMED
|
File without changes
|
{mkdocs2confluence-0.9.1 → mkdocs2confluence-0.9.2}/src/mkdocs_to_confluence/publisher/__init__.py
RENAMED
|
File without changes
|
{mkdocs2confluence-0.9.1 → mkdocs2confluence-0.9.2}/src/mkdocs_to_confluence/sync/__init__.py
RENAMED
|
File without changes
|
{mkdocs2confluence-0.9.1 → mkdocs2confluence-0.9.2}/src/mkdocs_to_confluence/sync/anchoring.py
RENAMED
|
File without changes
|
{mkdocs2confluence-0.9.1 → mkdocs2confluence-0.9.2}/src/mkdocs_to_confluence/sync/command.py
RENAMED
|
File without changes
|
{mkdocs2confluence-0.9.1 → mkdocs2confluence-0.9.2}/src/mkdocs_to_confluence/sync/comments.py
RENAMED
|
File without changes
|
|
File without changes
|
{mkdocs2confluence-0.9.1 → mkdocs2confluence-0.9.2}/src/mkdocs_to_confluence/sync/platform.py
RENAMED
|
File without changes
|
|
File without changes
|
{mkdocs2confluence-0.9.1 → mkdocs2confluence-0.9.2}/src/mkdocs_to_confluence/transforms/__init__.py
RENAMED
|
File without changes
|
{mkdocs2confluence-0.9.1 → mkdocs2confluence-0.9.2}/src/mkdocs_to_confluence/transforms/abbrevs.py
RENAMED
|
File without changes
|
{mkdocs2confluence-0.9.1 → mkdocs2confluence-0.9.2}/src/mkdocs_to_confluence/transforms/assets.py
RENAMED
|
File without changes
|
{mkdocs2confluence-0.9.1 → mkdocs2confluence-0.9.2}/src/mkdocs_to_confluence/transforms/editlink.py
RENAMED
|
File without changes
|
{mkdocs2confluence-0.9.1 → mkdocs2confluence-0.9.2}/src/mkdocs_to_confluence/transforms/footer.py
RENAMED
|
File without changes
|
{mkdocs2confluence-0.9.1 → mkdocs2confluence-0.9.2}/src/mkdocs_to_confluence/transforms/images.py
RENAMED
|
File without changes
|
|
File without changes
|
{mkdocs2confluence-0.9.1 → mkdocs2confluence-0.9.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
|
|
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
|