mkdocs2confluence 0.7.34__tar.gz → 0.7.36__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 (72) hide show
  1. {mkdocs2confluence-0.7.34 → mkdocs2confluence-0.7.36}/PKG-INFO +1 -1
  2. {mkdocs2confluence-0.7.34 → mkdocs2confluence-0.7.36}/pyproject.toml +1 -1
  3. {mkdocs2confluence-0.7.34 → mkdocs2confluence-0.7.36}/src/mkdocs2confluence.egg-info/PKG-INFO +1 -1
  4. {mkdocs2confluence-0.7.34 → mkdocs2confluence-0.7.36}/src/mkdocs_to_confluence/publisher/pipeline.py +8 -2
  5. {mkdocs2confluence-0.7.34 → mkdocs2confluence-0.7.36}/tests/test_publish_client.py +4 -2
  6. {mkdocs2confluence-0.7.34 → mkdocs2confluence-0.7.36}/tests/test_publish_pipeline.py +24 -0
  7. {mkdocs2confluence-0.7.34 → mkdocs2confluence-0.7.36}/LICENSE +0 -0
  8. {mkdocs2confluence-0.7.34 → mkdocs2confluence-0.7.36}/README.md +0 -0
  9. {mkdocs2confluence-0.7.34 → mkdocs2confluence-0.7.36}/setup.cfg +0 -0
  10. {mkdocs2confluence-0.7.34 → mkdocs2confluence-0.7.36}/src/mkdocs2confluence.egg-info/SOURCES.txt +0 -0
  11. {mkdocs2confluence-0.7.34 → mkdocs2confluence-0.7.36}/src/mkdocs2confluence.egg-info/dependency_links.txt +0 -0
  12. {mkdocs2confluence-0.7.34 → mkdocs2confluence-0.7.36}/src/mkdocs2confluence.egg-info/entry_points.txt +0 -0
  13. {mkdocs2confluence-0.7.34 → mkdocs2confluence-0.7.36}/src/mkdocs2confluence.egg-info/requires.txt +0 -0
  14. {mkdocs2confluence-0.7.34 → mkdocs2confluence-0.7.36}/src/mkdocs2confluence.egg-info/top_level.txt +0 -0
  15. {mkdocs2confluence-0.7.34 → mkdocs2confluence-0.7.36}/src/mkdocs_to_confluence/__init__.py +0 -0
  16. {mkdocs2confluence-0.7.34 → mkdocs2confluence-0.7.36}/src/mkdocs_to_confluence/cli.py +0 -0
  17. {mkdocs2confluence-0.7.34 → mkdocs2confluence-0.7.36}/src/mkdocs_to_confluence/emitter/__init__.py +0 -0
  18. {mkdocs2confluence-0.7.34 → mkdocs2confluence-0.7.36}/src/mkdocs_to_confluence/emitter/xhtml.py +0 -0
  19. {mkdocs2confluence-0.7.34 → mkdocs2confluence-0.7.36}/src/mkdocs_to_confluence/ir/__init__.py +0 -0
  20. {mkdocs2confluence-0.7.34 → mkdocs2confluence-0.7.36}/src/mkdocs_to_confluence/ir/document.py +0 -0
  21. {mkdocs2confluence-0.7.34 → mkdocs2confluence-0.7.36}/src/mkdocs_to_confluence/ir/nodes.py +0 -0
  22. {mkdocs2confluence-0.7.34 → mkdocs2confluence-0.7.36}/src/mkdocs_to_confluence/ir/treeutil.py +0 -0
  23. {mkdocs2confluence-0.7.34 → mkdocs2confluence-0.7.36}/src/mkdocs_to_confluence/loader/__init__.py +0 -0
  24. {mkdocs2confluence-0.7.34 → mkdocs2confluence-0.7.36}/src/mkdocs_to_confluence/loader/config.py +0 -0
  25. {mkdocs2confluence-0.7.34 → mkdocs2confluence-0.7.36}/src/mkdocs_to_confluence/loader/extra_css.py +0 -0
  26. {mkdocs2confluence-0.7.34 → mkdocs2confluence-0.7.36}/src/mkdocs_to_confluence/loader/nav.py +0 -0
  27. {mkdocs2confluence-0.7.34 → mkdocs2confluence-0.7.36}/src/mkdocs_to_confluence/loader/page.py +0 -0
  28. {mkdocs2confluence-0.7.34 → mkdocs2confluence-0.7.36}/src/mkdocs_to_confluence/parser/__init__.py +0 -0
  29. {mkdocs2confluence-0.7.34 → mkdocs2confluence-0.7.36}/src/mkdocs_to_confluence/parser/markdown.py +0 -0
  30. {mkdocs2confluence-0.7.34 → mkdocs2confluence-0.7.36}/src/mkdocs_to_confluence/pdf/__init__.py +0 -0
  31. {mkdocs2confluence-0.7.34 → mkdocs2confluence-0.7.36}/src/mkdocs_to_confluence/pdf/generator.py +0 -0
  32. {mkdocs2confluence-0.7.34 → mkdocs2confluence-0.7.36}/src/mkdocs_to_confluence/pdf/render.py +0 -0
  33. {mkdocs2confluence-0.7.34 → mkdocs2confluence-0.7.36}/src/mkdocs_to_confluence/preprocess/__init__.py +0 -0
  34. {mkdocs2confluence-0.7.34 → mkdocs2confluence-0.7.36}/src/mkdocs_to_confluence/preprocess/abbrevs.py +0 -0
  35. {mkdocs2confluence-0.7.34 → mkdocs2confluence-0.7.36}/src/mkdocs_to_confluence/preprocess/fence.py +0 -0
  36. {mkdocs2confluence-0.7.34 → mkdocs2confluence-0.7.36}/src/mkdocs_to_confluence/preprocess/frontmatter.py +0 -0
  37. {mkdocs2confluence-0.7.34 → mkdocs2confluence-0.7.36}/src/mkdocs_to_confluence/preprocess/icons.py +0 -0
  38. {mkdocs2confluence-0.7.34 → mkdocs2confluence-0.7.36}/src/mkdocs_to_confluence/preprocess/includes.py +0 -0
  39. {mkdocs2confluence-0.7.34 → mkdocs2confluence-0.7.36}/src/mkdocs_to_confluence/preprocess/linkdefs.py +0 -0
  40. {mkdocs2confluence-0.7.34 → mkdocs2confluence-0.7.36}/src/mkdocs_to_confluence/preview/__init__.py +0 -0
  41. {mkdocs2confluence-0.7.34 → mkdocs2confluence-0.7.36}/src/mkdocs_to_confluence/preview/render.py +0 -0
  42. {mkdocs2confluence-0.7.34 → mkdocs2confluence-0.7.36}/src/mkdocs_to_confluence/preview/server.py +0 -0
  43. {mkdocs2confluence-0.7.34 → mkdocs2confluence-0.7.36}/src/mkdocs_to_confluence/publisher/__init__.py +0 -0
  44. {mkdocs2confluence-0.7.34 → mkdocs2confluence-0.7.36}/src/mkdocs_to_confluence/publisher/client.py +0 -0
  45. {mkdocs2confluence-0.7.34 → mkdocs2confluence-0.7.36}/src/mkdocs_to_confluence/transforms/__init__.py +0 -0
  46. {mkdocs2confluence-0.7.34 → mkdocs2confluence-0.7.36}/src/mkdocs_to_confluence/transforms/abbrevs.py +0 -0
  47. {mkdocs2confluence-0.7.34 → mkdocs2confluence-0.7.36}/src/mkdocs_to_confluence/transforms/assets.py +0 -0
  48. {mkdocs2confluence-0.7.34 → mkdocs2confluence-0.7.36}/src/mkdocs_to_confluence/transforms/editlink.py +0 -0
  49. {mkdocs2confluence-0.7.34 → mkdocs2confluence-0.7.36}/src/mkdocs_to_confluence/transforms/images.py +0 -0
  50. {mkdocs2confluence-0.7.34 → mkdocs2confluence-0.7.36}/src/mkdocs_to_confluence/transforms/internallinks.py +0 -0
  51. {mkdocs2confluence-0.7.34 → mkdocs2confluence-0.7.36}/src/mkdocs_to_confluence/transforms/mermaid.py +0 -0
  52. {mkdocs2confluence-0.7.34 → mkdocs2confluence-0.7.36}/tests/test_abbrevs.py +0 -0
  53. {mkdocs2confluence-0.7.34 → mkdocs2confluence-0.7.36}/tests/test_cli.py +0 -0
  54. {mkdocs2confluence-0.7.34 → mkdocs2confluence-0.7.36}/tests/test_editlink.py +0 -0
  55. {mkdocs2confluence-0.7.34 → mkdocs2confluence-0.7.36}/tests/test_emitter.py +0 -0
  56. {mkdocs2confluence-0.7.34 → mkdocs2confluence-0.7.36}/tests/test_extra_css.py +0 -0
  57. {mkdocs2confluence-0.7.34 → mkdocs2confluence-0.7.36}/tests/test_frontmatter.py +0 -0
  58. {mkdocs2confluence-0.7.34 → mkdocs2confluence-0.7.36}/tests/test_icons.py +0 -0
  59. {mkdocs2confluence-0.7.34 → mkdocs2confluence-0.7.36}/tests/test_images.py +0 -0
  60. {mkdocs2confluence-0.7.34 → mkdocs2confluence-0.7.36}/tests/test_internallinks.py +0 -0
  61. {mkdocs2confluence-0.7.34 → mkdocs2confluence-0.7.36}/tests/test_ir.py +0 -0
  62. {mkdocs2confluence-0.7.34 → mkdocs2confluence-0.7.36}/tests/test_linkdefs.py +0 -0
  63. {mkdocs2confluence-0.7.34 → mkdocs2confluence-0.7.36}/tests/test_loader.py +0 -0
  64. {mkdocs2confluence-0.7.34 → mkdocs2confluence-0.7.36}/tests/test_mermaid.py +0 -0
  65. {mkdocs2confluence-0.7.34 → mkdocs2confluence-0.7.36}/tests/test_page_loader.py +0 -0
  66. {mkdocs2confluence-0.7.34 → mkdocs2confluence-0.7.36}/tests/test_parser.py +0 -0
  67. {mkdocs2confluence-0.7.34 → mkdocs2confluence-0.7.36}/tests/test_pdf.py +0 -0
  68. {mkdocs2confluence-0.7.34 → mkdocs2confluence-0.7.36}/tests/test_preprocess.py +0 -0
  69. {mkdocs2confluence-0.7.34 → mkdocs2confluence-0.7.36}/tests/test_preview.py +0 -0
  70. {mkdocs2confluence-0.7.34 → mkdocs2confluence-0.7.36}/tests/test_publish_config.py +0 -0
  71. {mkdocs2confluence-0.7.34 → mkdocs2confluence-0.7.36}/tests/test_server.py +0 -0
  72. {mkdocs2confluence-0.7.34 → mkdocs2confluence-0.7.36}/tests/test_treeutil.py +0 -0
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: mkdocs2confluence
3
- Version: 0.7.34
3
+ Version: 0.7.36
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
@@ -1,6 +1,6 @@
1
1
  [project]
2
2
  name = "mkdocs2confluence"
3
- version = "0.7.34"
3
+ version = "0.7.36"
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" }
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: mkdocs2confluence
3
- Version: 0.7.34
3
+ Version: 0.7.36
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
@@ -647,7 +647,7 @@ def _post_process_action(
647
647
  except Exception:
648
648
  pass # non-fatal
649
649
 
650
- # Set full-width layout on newly created or updated pages (not folders).
650
+ # Set full-width layout on created/updated pages (not folders).
651
651
  if full_width and action.page_id and not action.is_folder:
652
652
  try:
653
653
  client.set_page_full_width(action.page_id)
@@ -729,7 +729,13 @@ def execute_publish(
729
729
  for action in plan:
730
730
  if action.action == "skip":
731
731
  report.skipped += 1
732
- # Still apply status even for unchanged pages.
732
+ # Still apply full-width and status even for unchanged pages so that
733
+ # Confluence appearance resets (e.g. after manual edits) are corrected.
734
+ if full_width and action.page_id and not action.is_folder:
735
+ try:
736
+ client.set_page_full_width(action.page_id)
737
+ except Exception as exc:
738
+ print(f" [warn] could not set full-width on page {action.page_id!r}: {exc}")
733
739
  if action.page_id and action.confluence_status and not action.is_folder:
734
740
  try:
735
741
  print(
@@ -192,7 +192,7 @@ def test_set_page_status_sends_put() -> None:
192
192
 
193
193
 
194
194
  def test_set_page_status_uses_space_state_when_matched() -> None:
195
- """set_page_status sends {id, name, color} when a matching space state is found."""
195
+ """set_page_status sends {id, name, color} and ?status=current query param."""
196
196
  space_states = [{"id": 1, "name": "In Progress", "color": "#2684ff"}]
197
197
  available_resp = httpx.Response(200, json={"spaceContentStates": space_states, "customContentStates": []})
198
198
  put_resp = httpx.Response(200, json={})
@@ -202,8 +202,10 @@ def test_set_page_status_uses_space_state_when_matched() -> None:
202
202
  client._client = httpx.Client(transport=transport) # type: ignore[assignment]
203
203
  client.set_page_status("42", "in-progress")
204
204
  import json
205
- body = json.loads(transport.requests[1].content)
205
+ put_req = transport.requests[1]
206
+ body = json.loads(put_req.content)
206
207
  assert body == {"id": 1, "name": "In Progress", "color": "#2684ff"}
208
+ assert "status=current" in str(put_req.url)
207
209
 
208
210
 
209
211
  def test_set_page_status_caches_space_states() -> None:
@@ -1964,6 +1964,30 @@ def test_compile_page_returns_confluence_status(tmp_path: Path) -> None:
1964
1964
  assert confluence_status == "in-progress"
1965
1965
 
1966
1966
 
1967
+ def test_compile_page_returns_confluence_status_with_repo_url(tmp_path: Path) -> None:
1968
+ """confluence_status must survive attach_source_url when repo_url is set (regression).
1969
+
1970
+ When repo_url is configured, attach_source_url reconstructs the FrontMatter node.
1971
+ This test ensures confluence_status is not silently dropped in that path.
1972
+ """
1973
+ docs = tmp_path / "docs"
1974
+ docs.mkdir()
1975
+ md = docs / "page.md"
1976
+ md.write_text("---\nstatus: in-progress\n---\n\n# My Page\n\nContent.\n", encoding="utf-8")
1977
+
1978
+ node = _page_node("My Page", md)
1979
+ config = MkDocsConfig(
1980
+ site_name="Test",
1981
+ docs_dir=docs,
1982
+ repo_url="https://github.com/org/repo",
1983
+ edit_uri="edit/main/docs/",
1984
+ nav=None,
1985
+ )
1986
+ _, _, _, confluence_status = compile_page(node, config)
1987
+
1988
+ assert confluence_status == "in-progress"
1989
+
1990
+
1967
1991
  def test_plan_publish_sets_confluence_status_on_create(tmp_path: Path) -> None:
1968
1992
  """plan_publish must carry confluence_status into a create PageAction."""
1969
1993
  docs = tmp_path / "docs"