mkdocs2confluence 0.7.33__tar.gz → 0.7.35__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.33 → mkdocs2confluence-0.7.35}/PKG-INFO +1 -1
  2. {mkdocs2confluence-0.7.33 → mkdocs2confluence-0.7.35}/pyproject.toml +1 -1
  3. {mkdocs2confluence-0.7.33 → mkdocs2confluence-0.7.35}/src/mkdocs2confluence.egg-info/PKG-INFO +1 -1
  4. {mkdocs2confluence-0.7.33 → mkdocs2confluence-0.7.35}/src/mkdocs_to_confluence/publisher/client.py +3 -3
  5. {mkdocs2confluence-0.7.33 → mkdocs2confluence-0.7.35}/tests/test_publish_client.py +5 -3
  6. {mkdocs2confluence-0.7.33 → mkdocs2confluence-0.7.35}/tests/test_publish_pipeline.py +24 -0
  7. {mkdocs2confluence-0.7.33 → mkdocs2confluence-0.7.35}/LICENSE +0 -0
  8. {mkdocs2confluence-0.7.33 → mkdocs2confluence-0.7.35}/README.md +0 -0
  9. {mkdocs2confluence-0.7.33 → mkdocs2confluence-0.7.35}/setup.cfg +0 -0
  10. {mkdocs2confluence-0.7.33 → mkdocs2confluence-0.7.35}/src/mkdocs2confluence.egg-info/SOURCES.txt +0 -0
  11. {mkdocs2confluence-0.7.33 → mkdocs2confluence-0.7.35}/src/mkdocs2confluence.egg-info/dependency_links.txt +0 -0
  12. {mkdocs2confluence-0.7.33 → mkdocs2confluence-0.7.35}/src/mkdocs2confluence.egg-info/entry_points.txt +0 -0
  13. {mkdocs2confluence-0.7.33 → mkdocs2confluence-0.7.35}/src/mkdocs2confluence.egg-info/requires.txt +0 -0
  14. {mkdocs2confluence-0.7.33 → mkdocs2confluence-0.7.35}/src/mkdocs2confluence.egg-info/top_level.txt +0 -0
  15. {mkdocs2confluence-0.7.33 → mkdocs2confluence-0.7.35}/src/mkdocs_to_confluence/__init__.py +0 -0
  16. {mkdocs2confluence-0.7.33 → mkdocs2confluence-0.7.35}/src/mkdocs_to_confluence/cli.py +0 -0
  17. {mkdocs2confluence-0.7.33 → mkdocs2confluence-0.7.35}/src/mkdocs_to_confluence/emitter/__init__.py +0 -0
  18. {mkdocs2confluence-0.7.33 → mkdocs2confluence-0.7.35}/src/mkdocs_to_confluence/emitter/xhtml.py +0 -0
  19. {mkdocs2confluence-0.7.33 → mkdocs2confluence-0.7.35}/src/mkdocs_to_confluence/ir/__init__.py +0 -0
  20. {mkdocs2confluence-0.7.33 → mkdocs2confluence-0.7.35}/src/mkdocs_to_confluence/ir/document.py +0 -0
  21. {mkdocs2confluence-0.7.33 → mkdocs2confluence-0.7.35}/src/mkdocs_to_confluence/ir/nodes.py +0 -0
  22. {mkdocs2confluence-0.7.33 → mkdocs2confluence-0.7.35}/src/mkdocs_to_confluence/ir/treeutil.py +0 -0
  23. {mkdocs2confluence-0.7.33 → mkdocs2confluence-0.7.35}/src/mkdocs_to_confluence/loader/__init__.py +0 -0
  24. {mkdocs2confluence-0.7.33 → mkdocs2confluence-0.7.35}/src/mkdocs_to_confluence/loader/config.py +0 -0
  25. {mkdocs2confluence-0.7.33 → mkdocs2confluence-0.7.35}/src/mkdocs_to_confluence/loader/extra_css.py +0 -0
  26. {mkdocs2confluence-0.7.33 → mkdocs2confluence-0.7.35}/src/mkdocs_to_confluence/loader/nav.py +0 -0
  27. {mkdocs2confluence-0.7.33 → mkdocs2confluence-0.7.35}/src/mkdocs_to_confluence/loader/page.py +0 -0
  28. {mkdocs2confluence-0.7.33 → mkdocs2confluence-0.7.35}/src/mkdocs_to_confluence/parser/__init__.py +0 -0
  29. {mkdocs2confluence-0.7.33 → mkdocs2confluence-0.7.35}/src/mkdocs_to_confluence/parser/markdown.py +0 -0
  30. {mkdocs2confluence-0.7.33 → mkdocs2confluence-0.7.35}/src/mkdocs_to_confluence/pdf/__init__.py +0 -0
  31. {mkdocs2confluence-0.7.33 → mkdocs2confluence-0.7.35}/src/mkdocs_to_confluence/pdf/generator.py +0 -0
  32. {mkdocs2confluence-0.7.33 → mkdocs2confluence-0.7.35}/src/mkdocs_to_confluence/pdf/render.py +0 -0
  33. {mkdocs2confluence-0.7.33 → mkdocs2confluence-0.7.35}/src/mkdocs_to_confluence/preprocess/__init__.py +0 -0
  34. {mkdocs2confluence-0.7.33 → mkdocs2confluence-0.7.35}/src/mkdocs_to_confluence/preprocess/abbrevs.py +0 -0
  35. {mkdocs2confluence-0.7.33 → mkdocs2confluence-0.7.35}/src/mkdocs_to_confluence/preprocess/fence.py +0 -0
  36. {mkdocs2confluence-0.7.33 → mkdocs2confluence-0.7.35}/src/mkdocs_to_confluence/preprocess/frontmatter.py +0 -0
  37. {mkdocs2confluence-0.7.33 → mkdocs2confluence-0.7.35}/src/mkdocs_to_confluence/preprocess/icons.py +0 -0
  38. {mkdocs2confluence-0.7.33 → mkdocs2confluence-0.7.35}/src/mkdocs_to_confluence/preprocess/includes.py +0 -0
  39. {mkdocs2confluence-0.7.33 → mkdocs2confluence-0.7.35}/src/mkdocs_to_confluence/preprocess/linkdefs.py +0 -0
  40. {mkdocs2confluence-0.7.33 → mkdocs2confluence-0.7.35}/src/mkdocs_to_confluence/preview/__init__.py +0 -0
  41. {mkdocs2confluence-0.7.33 → mkdocs2confluence-0.7.35}/src/mkdocs_to_confluence/preview/render.py +0 -0
  42. {mkdocs2confluence-0.7.33 → mkdocs2confluence-0.7.35}/src/mkdocs_to_confluence/preview/server.py +0 -0
  43. {mkdocs2confluence-0.7.33 → mkdocs2confluence-0.7.35}/src/mkdocs_to_confluence/publisher/__init__.py +0 -0
  44. {mkdocs2confluence-0.7.33 → mkdocs2confluence-0.7.35}/src/mkdocs_to_confluence/publisher/pipeline.py +0 -0
  45. {mkdocs2confluence-0.7.33 → mkdocs2confluence-0.7.35}/src/mkdocs_to_confluence/transforms/__init__.py +0 -0
  46. {mkdocs2confluence-0.7.33 → mkdocs2confluence-0.7.35}/src/mkdocs_to_confluence/transforms/abbrevs.py +0 -0
  47. {mkdocs2confluence-0.7.33 → mkdocs2confluence-0.7.35}/src/mkdocs_to_confluence/transforms/assets.py +0 -0
  48. {mkdocs2confluence-0.7.33 → mkdocs2confluence-0.7.35}/src/mkdocs_to_confluence/transforms/editlink.py +0 -0
  49. {mkdocs2confluence-0.7.33 → mkdocs2confluence-0.7.35}/src/mkdocs_to_confluence/transforms/images.py +0 -0
  50. {mkdocs2confluence-0.7.33 → mkdocs2confluence-0.7.35}/src/mkdocs_to_confluence/transforms/internallinks.py +0 -0
  51. {mkdocs2confluence-0.7.33 → mkdocs2confluence-0.7.35}/src/mkdocs_to_confluence/transforms/mermaid.py +0 -0
  52. {mkdocs2confluence-0.7.33 → mkdocs2confluence-0.7.35}/tests/test_abbrevs.py +0 -0
  53. {mkdocs2confluence-0.7.33 → mkdocs2confluence-0.7.35}/tests/test_cli.py +0 -0
  54. {mkdocs2confluence-0.7.33 → mkdocs2confluence-0.7.35}/tests/test_editlink.py +0 -0
  55. {mkdocs2confluence-0.7.33 → mkdocs2confluence-0.7.35}/tests/test_emitter.py +0 -0
  56. {mkdocs2confluence-0.7.33 → mkdocs2confluence-0.7.35}/tests/test_extra_css.py +0 -0
  57. {mkdocs2confluence-0.7.33 → mkdocs2confluence-0.7.35}/tests/test_frontmatter.py +0 -0
  58. {mkdocs2confluence-0.7.33 → mkdocs2confluence-0.7.35}/tests/test_icons.py +0 -0
  59. {mkdocs2confluence-0.7.33 → mkdocs2confluence-0.7.35}/tests/test_images.py +0 -0
  60. {mkdocs2confluence-0.7.33 → mkdocs2confluence-0.7.35}/tests/test_internallinks.py +0 -0
  61. {mkdocs2confluence-0.7.33 → mkdocs2confluence-0.7.35}/tests/test_ir.py +0 -0
  62. {mkdocs2confluence-0.7.33 → mkdocs2confluence-0.7.35}/tests/test_linkdefs.py +0 -0
  63. {mkdocs2confluence-0.7.33 → mkdocs2confluence-0.7.35}/tests/test_loader.py +0 -0
  64. {mkdocs2confluence-0.7.33 → mkdocs2confluence-0.7.35}/tests/test_mermaid.py +0 -0
  65. {mkdocs2confluence-0.7.33 → mkdocs2confluence-0.7.35}/tests/test_page_loader.py +0 -0
  66. {mkdocs2confluence-0.7.33 → mkdocs2confluence-0.7.35}/tests/test_parser.py +0 -0
  67. {mkdocs2confluence-0.7.33 → mkdocs2confluence-0.7.35}/tests/test_pdf.py +0 -0
  68. {mkdocs2confluence-0.7.33 → mkdocs2confluence-0.7.35}/tests/test_preprocess.py +0 -0
  69. {mkdocs2confluence-0.7.33 → mkdocs2confluence-0.7.35}/tests/test_preview.py +0 -0
  70. {mkdocs2confluence-0.7.33 → mkdocs2confluence-0.7.35}/tests/test_publish_config.py +0 -0
  71. {mkdocs2confluence-0.7.33 → mkdocs2confluence-0.7.35}/tests/test_server.py +0 -0
  72. {mkdocs2confluence-0.7.33 → mkdocs2confluence-0.7.35}/tests/test_treeutil.py +0 -0
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: mkdocs2confluence
3
- Version: 0.7.33
3
+ Version: 0.7.35
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.33"
3
+ version = "0.7.35"
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.33
3
+ Version: 0.7.35
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
@@ -392,7 +392,6 @@ class ConfluenceClient:
392
392
  "id": matched["id"],
393
393
  "name": matched["name"],
394
394
  "color": matched["color"],
395
- "status": "current",
396
395
  }
397
396
  else:
398
397
  # Fall back: name + color (required together when no id)
@@ -404,10 +403,11 @@ class ConfluenceClient:
404
403
  "in review": "#ffc400",
405
404
  "outdated": "#ff7452",
406
405
  }
407
- body = {"name": name, "color": _default_colors.get(_normalize(name), "#2684ff"), "status": "current"}
406
+ body = {"name": name, "color": _default_colors.get(_normalize(name), "#2684ff")}
408
407
 
408
+ # `status` query param tells the API which page version to target (current vs draft).
409
409
  url = self._v1(f"/content/{page_id}/state")
410
- resp = self._http.put(url, json=body)
410
+ resp = self._http.put(url, json=body, params={"status": "current"})
411
411
  if not resp.is_success:
412
412
  print(f" [warn] set status body: {resp.text[:300]}")
413
413
  self._raise_for_status(resp, f"set_page_status({page_id!r}, {status_key!r})")
@@ -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)
206
- assert body == {"id": 1, "name": "In Progress", "color": "#2684ff", "status": "current"}
205
+ put_req = transport.requests[1]
206
+ body = json.loads(put_req.content)
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"