mkdocs2confluence 0.7.22__tar.gz → 0.7.23__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.22 → mkdocs2confluence-0.7.23}/PKG-INFO +1 -1
  2. {mkdocs2confluence-0.7.22 → mkdocs2confluence-0.7.23}/pyproject.toml +1 -1
  3. {mkdocs2confluence-0.7.22 → mkdocs2confluence-0.7.23}/src/mkdocs2confluence.egg-info/PKG-INFO +1 -1
  4. {mkdocs2confluence-0.7.22 → mkdocs2confluence-0.7.23}/src/mkdocs_to_confluence/cli.py +3 -1
  5. {mkdocs2confluence-0.7.22 → mkdocs2confluence-0.7.23}/src/mkdocs_to_confluence/publisher/client.py +15 -0
  6. {mkdocs2confluence-0.7.22 → mkdocs2confluence-0.7.23}/LICENSE +0 -0
  7. {mkdocs2confluence-0.7.22 → mkdocs2confluence-0.7.23}/README.md +0 -0
  8. {mkdocs2confluence-0.7.22 → mkdocs2confluence-0.7.23}/setup.cfg +0 -0
  9. {mkdocs2confluence-0.7.22 → mkdocs2confluence-0.7.23}/src/mkdocs2confluence.egg-info/SOURCES.txt +0 -0
  10. {mkdocs2confluence-0.7.22 → mkdocs2confluence-0.7.23}/src/mkdocs2confluence.egg-info/dependency_links.txt +0 -0
  11. {mkdocs2confluence-0.7.22 → mkdocs2confluence-0.7.23}/src/mkdocs2confluence.egg-info/entry_points.txt +0 -0
  12. {mkdocs2confluence-0.7.22 → mkdocs2confluence-0.7.23}/src/mkdocs2confluence.egg-info/requires.txt +0 -0
  13. {mkdocs2confluence-0.7.22 → mkdocs2confluence-0.7.23}/src/mkdocs2confluence.egg-info/top_level.txt +0 -0
  14. {mkdocs2confluence-0.7.22 → mkdocs2confluence-0.7.23}/src/mkdocs_to_confluence/__init__.py +0 -0
  15. {mkdocs2confluence-0.7.22 → mkdocs2confluence-0.7.23}/src/mkdocs_to_confluence/emitter/__init__.py +0 -0
  16. {mkdocs2confluence-0.7.22 → mkdocs2confluence-0.7.23}/src/mkdocs_to_confluence/emitter/xhtml.py +0 -0
  17. {mkdocs2confluence-0.7.22 → mkdocs2confluence-0.7.23}/src/mkdocs_to_confluence/ir/__init__.py +0 -0
  18. {mkdocs2confluence-0.7.22 → mkdocs2confluence-0.7.23}/src/mkdocs_to_confluence/ir/document.py +0 -0
  19. {mkdocs2confluence-0.7.22 → mkdocs2confluence-0.7.23}/src/mkdocs_to_confluence/ir/nodes.py +0 -0
  20. {mkdocs2confluence-0.7.22 → mkdocs2confluence-0.7.23}/src/mkdocs_to_confluence/ir/treeutil.py +0 -0
  21. {mkdocs2confluence-0.7.22 → mkdocs2confluence-0.7.23}/src/mkdocs_to_confluence/loader/__init__.py +0 -0
  22. {mkdocs2confluence-0.7.22 → mkdocs2confluence-0.7.23}/src/mkdocs_to_confluence/loader/config.py +0 -0
  23. {mkdocs2confluence-0.7.22 → mkdocs2confluence-0.7.23}/src/mkdocs_to_confluence/loader/extra_css.py +0 -0
  24. {mkdocs2confluence-0.7.22 → mkdocs2confluence-0.7.23}/src/mkdocs_to_confluence/loader/nav.py +0 -0
  25. {mkdocs2confluence-0.7.22 → mkdocs2confluence-0.7.23}/src/mkdocs_to_confluence/loader/page.py +0 -0
  26. {mkdocs2confluence-0.7.22 → mkdocs2confluence-0.7.23}/src/mkdocs_to_confluence/parser/__init__.py +0 -0
  27. {mkdocs2confluence-0.7.22 → mkdocs2confluence-0.7.23}/src/mkdocs_to_confluence/parser/markdown.py +0 -0
  28. {mkdocs2confluence-0.7.22 → mkdocs2confluence-0.7.23}/src/mkdocs_to_confluence/pdf/__init__.py +0 -0
  29. {mkdocs2confluence-0.7.22 → mkdocs2confluence-0.7.23}/src/mkdocs_to_confluence/pdf/generator.py +0 -0
  30. {mkdocs2confluence-0.7.22 → mkdocs2confluence-0.7.23}/src/mkdocs_to_confluence/pdf/render.py +0 -0
  31. {mkdocs2confluence-0.7.22 → mkdocs2confluence-0.7.23}/src/mkdocs_to_confluence/preprocess/__init__.py +0 -0
  32. {mkdocs2confluence-0.7.22 → mkdocs2confluence-0.7.23}/src/mkdocs_to_confluence/preprocess/abbrevs.py +0 -0
  33. {mkdocs2confluence-0.7.22 → mkdocs2confluence-0.7.23}/src/mkdocs_to_confluence/preprocess/fence.py +0 -0
  34. {mkdocs2confluence-0.7.22 → mkdocs2confluence-0.7.23}/src/mkdocs_to_confluence/preprocess/frontmatter.py +0 -0
  35. {mkdocs2confluence-0.7.22 → mkdocs2confluence-0.7.23}/src/mkdocs_to_confluence/preprocess/icons.py +0 -0
  36. {mkdocs2confluence-0.7.22 → mkdocs2confluence-0.7.23}/src/mkdocs_to_confluence/preprocess/includes.py +0 -0
  37. {mkdocs2confluence-0.7.22 → mkdocs2confluence-0.7.23}/src/mkdocs_to_confluence/preprocess/linkdefs.py +0 -0
  38. {mkdocs2confluence-0.7.22 → mkdocs2confluence-0.7.23}/src/mkdocs_to_confluence/preview/__init__.py +0 -0
  39. {mkdocs2confluence-0.7.22 → mkdocs2confluence-0.7.23}/src/mkdocs_to_confluence/preview/render.py +0 -0
  40. {mkdocs2confluence-0.7.22 → mkdocs2confluence-0.7.23}/src/mkdocs_to_confluence/preview/server.py +0 -0
  41. {mkdocs2confluence-0.7.22 → mkdocs2confluence-0.7.23}/src/mkdocs_to_confluence/publisher/__init__.py +0 -0
  42. {mkdocs2confluence-0.7.22 → mkdocs2confluence-0.7.23}/src/mkdocs_to_confluence/publisher/pipeline.py +0 -0
  43. {mkdocs2confluence-0.7.22 → mkdocs2confluence-0.7.23}/src/mkdocs_to_confluence/transforms/__init__.py +0 -0
  44. {mkdocs2confluence-0.7.22 → mkdocs2confluence-0.7.23}/src/mkdocs_to_confluence/transforms/abbrevs.py +0 -0
  45. {mkdocs2confluence-0.7.22 → mkdocs2confluence-0.7.23}/src/mkdocs_to_confluence/transforms/assets.py +0 -0
  46. {mkdocs2confluence-0.7.22 → mkdocs2confluence-0.7.23}/src/mkdocs_to_confluence/transforms/editlink.py +0 -0
  47. {mkdocs2confluence-0.7.22 → mkdocs2confluence-0.7.23}/src/mkdocs_to_confluence/transforms/images.py +0 -0
  48. {mkdocs2confluence-0.7.22 → mkdocs2confluence-0.7.23}/src/mkdocs_to_confluence/transforms/internallinks.py +0 -0
  49. {mkdocs2confluence-0.7.22 → mkdocs2confluence-0.7.23}/src/mkdocs_to_confluence/transforms/mermaid.py +0 -0
  50. {mkdocs2confluence-0.7.22 → mkdocs2confluence-0.7.23}/tests/test_abbrevs.py +0 -0
  51. {mkdocs2confluence-0.7.22 → mkdocs2confluence-0.7.23}/tests/test_cli.py +0 -0
  52. {mkdocs2confluence-0.7.22 → mkdocs2confluence-0.7.23}/tests/test_editlink.py +0 -0
  53. {mkdocs2confluence-0.7.22 → mkdocs2confluence-0.7.23}/tests/test_emitter.py +0 -0
  54. {mkdocs2confluence-0.7.22 → mkdocs2confluence-0.7.23}/tests/test_extra_css.py +0 -0
  55. {mkdocs2confluence-0.7.22 → mkdocs2confluence-0.7.23}/tests/test_frontmatter.py +0 -0
  56. {mkdocs2confluence-0.7.22 → mkdocs2confluence-0.7.23}/tests/test_icons.py +0 -0
  57. {mkdocs2confluence-0.7.22 → mkdocs2confluence-0.7.23}/tests/test_images.py +0 -0
  58. {mkdocs2confluence-0.7.22 → mkdocs2confluence-0.7.23}/tests/test_internallinks.py +0 -0
  59. {mkdocs2confluence-0.7.22 → mkdocs2confluence-0.7.23}/tests/test_ir.py +0 -0
  60. {mkdocs2confluence-0.7.22 → mkdocs2confluence-0.7.23}/tests/test_linkdefs.py +0 -0
  61. {mkdocs2confluence-0.7.22 → mkdocs2confluence-0.7.23}/tests/test_loader.py +0 -0
  62. {mkdocs2confluence-0.7.22 → mkdocs2confluence-0.7.23}/tests/test_mermaid.py +0 -0
  63. {mkdocs2confluence-0.7.22 → mkdocs2confluence-0.7.23}/tests/test_page_loader.py +0 -0
  64. {mkdocs2confluence-0.7.22 → mkdocs2confluence-0.7.23}/tests/test_parser.py +0 -0
  65. {mkdocs2confluence-0.7.22 → mkdocs2confluence-0.7.23}/tests/test_pdf.py +0 -0
  66. {mkdocs2confluence-0.7.22 → mkdocs2confluence-0.7.23}/tests/test_preprocess.py +0 -0
  67. {mkdocs2confluence-0.7.22 → mkdocs2confluence-0.7.23}/tests/test_preview.py +0 -0
  68. {mkdocs2confluence-0.7.22 → mkdocs2confluence-0.7.23}/tests/test_publish_client.py +0 -0
  69. {mkdocs2confluence-0.7.22 → mkdocs2confluence-0.7.23}/tests/test_publish_config.py +0 -0
  70. {mkdocs2confluence-0.7.22 → mkdocs2confluence-0.7.23}/tests/test_publish_pipeline.py +0 -0
  71. {mkdocs2confluence-0.7.22 → mkdocs2confluence-0.7.23}/tests/test_server.py +0 -0
  72. {mkdocs2confluence-0.7.22 → mkdocs2confluence-0.7.23}/tests/test_treeutil.py +0 -0
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: mkdocs2confluence
3
- Version: 0.7.22
3
+ Version: 0.7.23
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.22"
3
+ version = "0.7.23"
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.22
3
+ Version: 0.7.23
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
@@ -478,8 +478,10 @@ def _cmd_publish(args: argparse.Namespace) -> None:
478
478
  # parent_page_id is the authoritative anchor — derive space from it.
479
479
  # space_key is only used when no parent_page_id is configured.
480
480
  space_id = client.get_space_id_from_page(conf_config.parent_page_id)
481
+ space_key = conf_config.space_key or client.get_space_key_from_page(conf_config.parent_page_id)
481
482
  elif conf_config.space_key:
482
483
  space_id = client.get_space_id(conf_config.space_key)
484
+ space_key = conf_config.space_key
483
485
  else:
484
486
  print(
485
487
  "error: cannot determine space — set 'space_key' or 'parent_page_id' in mkdocs.yml",
@@ -492,7 +494,7 @@ def _cmd_publish(args: argparse.Namespace) -> None:
492
494
  partial = bool(getattr(args, "page", None) or getattr(args, "section", None))
493
495
  report = execute_publish(
494
496
  plan, client, dry_run=False, space_id=space_id,
495
- space_key=conf_config.space_key,
497
+ space_key=space_key,
496
498
  docs_dir=config.docs_dir, full_width=conf_config.full_width,
497
499
  root_page_id=conf_config.parent_page_id,
498
500
  prune=getattr(args, "prune", False) and not partial,
@@ -125,6 +125,21 @@ class ConfluenceClient:
125
125
  raise ConfluenceError(f"Could not determine spaceId from page {page_id!r}.")
126
126
  return str(space_id)
127
127
 
128
+ def get_space_key_from_page(self, page_id: str) -> str | None:
129
+ """Return the space key for the space containing *page_id*.
130
+
131
+ Uses the v1 content endpoint which includes ``space.key``.
132
+ Returns ``None`` on any failure (non-fatal — only used for state lookup).
133
+ """
134
+ try:
135
+ url = self._v1(f"/content/{page_id}")
136
+ resp = self._http.get(url, params={"expand": "space"})
137
+ if resp.is_success:
138
+ return resp.json().get("space", {}).get("key") or None
139
+ except Exception:
140
+ pass
141
+ return None
142
+
128
143
  # ── Folders ────────────────────────────────────────────────────────────────
129
144
 
130
145
  def find_folder_under(