mkdocs2confluence 0.7.25__tar.gz → 0.7.26__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.25 → mkdocs2confluence-0.7.26}/PKG-INFO +1 -1
  2. {mkdocs2confluence-0.7.25 → mkdocs2confluence-0.7.26}/pyproject.toml +1 -1
  3. {mkdocs2confluence-0.7.25 → mkdocs2confluence-0.7.26}/src/mkdocs2confluence.egg-info/PKG-INFO +1 -1
  4. {mkdocs2confluence-0.7.25 → mkdocs2confluence-0.7.26}/src/mkdocs_to_confluence/publisher/client.py +10 -0
  5. {mkdocs2confluence-0.7.25 → mkdocs2confluence-0.7.26}/src/mkdocs_to_confluence/publisher/pipeline.py +11 -5
  6. {mkdocs2confluence-0.7.25 → mkdocs2confluence-0.7.26}/LICENSE +0 -0
  7. {mkdocs2confluence-0.7.25 → mkdocs2confluence-0.7.26}/README.md +0 -0
  8. {mkdocs2confluence-0.7.25 → mkdocs2confluence-0.7.26}/setup.cfg +0 -0
  9. {mkdocs2confluence-0.7.25 → mkdocs2confluence-0.7.26}/src/mkdocs2confluence.egg-info/SOURCES.txt +0 -0
  10. {mkdocs2confluence-0.7.25 → mkdocs2confluence-0.7.26}/src/mkdocs2confluence.egg-info/dependency_links.txt +0 -0
  11. {mkdocs2confluence-0.7.25 → mkdocs2confluence-0.7.26}/src/mkdocs2confluence.egg-info/entry_points.txt +0 -0
  12. {mkdocs2confluence-0.7.25 → mkdocs2confluence-0.7.26}/src/mkdocs2confluence.egg-info/requires.txt +0 -0
  13. {mkdocs2confluence-0.7.25 → mkdocs2confluence-0.7.26}/src/mkdocs2confluence.egg-info/top_level.txt +0 -0
  14. {mkdocs2confluence-0.7.25 → mkdocs2confluence-0.7.26}/src/mkdocs_to_confluence/__init__.py +0 -0
  15. {mkdocs2confluence-0.7.25 → mkdocs2confluence-0.7.26}/src/mkdocs_to_confluence/cli.py +0 -0
  16. {mkdocs2confluence-0.7.25 → mkdocs2confluence-0.7.26}/src/mkdocs_to_confluence/emitter/__init__.py +0 -0
  17. {mkdocs2confluence-0.7.25 → mkdocs2confluence-0.7.26}/src/mkdocs_to_confluence/emitter/xhtml.py +0 -0
  18. {mkdocs2confluence-0.7.25 → mkdocs2confluence-0.7.26}/src/mkdocs_to_confluence/ir/__init__.py +0 -0
  19. {mkdocs2confluence-0.7.25 → mkdocs2confluence-0.7.26}/src/mkdocs_to_confluence/ir/document.py +0 -0
  20. {mkdocs2confluence-0.7.25 → mkdocs2confluence-0.7.26}/src/mkdocs_to_confluence/ir/nodes.py +0 -0
  21. {mkdocs2confluence-0.7.25 → mkdocs2confluence-0.7.26}/src/mkdocs_to_confluence/ir/treeutil.py +0 -0
  22. {mkdocs2confluence-0.7.25 → mkdocs2confluence-0.7.26}/src/mkdocs_to_confluence/loader/__init__.py +0 -0
  23. {mkdocs2confluence-0.7.25 → mkdocs2confluence-0.7.26}/src/mkdocs_to_confluence/loader/config.py +0 -0
  24. {mkdocs2confluence-0.7.25 → mkdocs2confluence-0.7.26}/src/mkdocs_to_confluence/loader/extra_css.py +0 -0
  25. {mkdocs2confluence-0.7.25 → mkdocs2confluence-0.7.26}/src/mkdocs_to_confluence/loader/nav.py +0 -0
  26. {mkdocs2confluence-0.7.25 → mkdocs2confluence-0.7.26}/src/mkdocs_to_confluence/loader/page.py +0 -0
  27. {mkdocs2confluence-0.7.25 → mkdocs2confluence-0.7.26}/src/mkdocs_to_confluence/parser/__init__.py +0 -0
  28. {mkdocs2confluence-0.7.25 → mkdocs2confluence-0.7.26}/src/mkdocs_to_confluence/parser/markdown.py +0 -0
  29. {mkdocs2confluence-0.7.25 → mkdocs2confluence-0.7.26}/src/mkdocs_to_confluence/pdf/__init__.py +0 -0
  30. {mkdocs2confluence-0.7.25 → mkdocs2confluence-0.7.26}/src/mkdocs_to_confluence/pdf/generator.py +0 -0
  31. {mkdocs2confluence-0.7.25 → mkdocs2confluence-0.7.26}/src/mkdocs_to_confluence/pdf/render.py +0 -0
  32. {mkdocs2confluence-0.7.25 → mkdocs2confluence-0.7.26}/src/mkdocs_to_confluence/preprocess/__init__.py +0 -0
  33. {mkdocs2confluence-0.7.25 → mkdocs2confluence-0.7.26}/src/mkdocs_to_confluence/preprocess/abbrevs.py +0 -0
  34. {mkdocs2confluence-0.7.25 → mkdocs2confluence-0.7.26}/src/mkdocs_to_confluence/preprocess/fence.py +0 -0
  35. {mkdocs2confluence-0.7.25 → mkdocs2confluence-0.7.26}/src/mkdocs_to_confluence/preprocess/frontmatter.py +0 -0
  36. {mkdocs2confluence-0.7.25 → mkdocs2confluence-0.7.26}/src/mkdocs_to_confluence/preprocess/icons.py +0 -0
  37. {mkdocs2confluence-0.7.25 → mkdocs2confluence-0.7.26}/src/mkdocs_to_confluence/preprocess/includes.py +0 -0
  38. {mkdocs2confluence-0.7.25 → mkdocs2confluence-0.7.26}/src/mkdocs_to_confluence/preprocess/linkdefs.py +0 -0
  39. {mkdocs2confluence-0.7.25 → mkdocs2confluence-0.7.26}/src/mkdocs_to_confluence/preview/__init__.py +0 -0
  40. {mkdocs2confluence-0.7.25 → mkdocs2confluence-0.7.26}/src/mkdocs_to_confluence/preview/render.py +0 -0
  41. {mkdocs2confluence-0.7.25 → mkdocs2confluence-0.7.26}/src/mkdocs_to_confluence/preview/server.py +0 -0
  42. {mkdocs2confluence-0.7.25 → mkdocs2confluence-0.7.26}/src/mkdocs_to_confluence/publisher/__init__.py +0 -0
  43. {mkdocs2confluence-0.7.25 → mkdocs2confluence-0.7.26}/src/mkdocs_to_confluence/transforms/__init__.py +0 -0
  44. {mkdocs2confluence-0.7.25 → mkdocs2confluence-0.7.26}/src/mkdocs_to_confluence/transforms/abbrevs.py +0 -0
  45. {mkdocs2confluence-0.7.25 → mkdocs2confluence-0.7.26}/src/mkdocs_to_confluence/transforms/assets.py +0 -0
  46. {mkdocs2confluence-0.7.25 → mkdocs2confluence-0.7.26}/src/mkdocs_to_confluence/transforms/editlink.py +0 -0
  47. {mkdocs2confluence-0.7.25 → mkdocs2confluence-0.7.26}/src/mkdocs_to_confluence/transforms/images.py +0 -0
  48. {mkdocs2confluence-0.7.25 → mkdocs2confluence-0.7.26}/src/mkdocs_to_confluence/transforms/internallinks.py +0 -0
  49. {mkdocs2confluence-0.7.25 → mkdocs2confluence-0.7.26}/src/mkdocs_to_confluence/transforms/mermaid.py +0 -0
  50. {mkdocs2confluence-0.7.25 → mkdocs2confluence-0.7.26}/tests/test_abbrevs.py +0 -0
  51. {mkdocs2confluence-0.7.25 → mkdocs2confluence-0.7.26}/tests/test_cli.py +0 -0
  52. {mkdocs2confluence-0.7.25 → mkdocs2confluence-0.7.26}/tests/test_editlink.py +0 -0
  53. {mkdocs2confluence-0.7.25 → mkdocs2confluence-0.7.26}/tests/test_emitter.py +0 -0
  54. {mkdocs2confluence-0.7.25 → mkdocs2confluence-0.7.26}/tests/test_extra_css.py +0 -0
  55. {mkdocs2confluence-0.7.25 → mkdocs2confluence-0.7.26}/tests/test_frontmatter.py +0 -0
  56. {mkdocs2confluence-0.7.25 → mkdocs2confluence-0.7.26}/tests/test_icons.py +0 -0
  57. {mkdocs2confluence-0.7.25 → mkdocs2confluence-0.7.26}/tests/test_images.py +0 -0
  58. {mkdocs2confluence-0.7.25 → mkdocs2confluence-0.7.26}/tests/test_internallinks.py +0 -0
  59. {mkdocs2confluence-0.7.25 → mkdocs2confluence-0.7.26}/tests/test_ir.py +0 -0
  60. {mkdocs2confluence-0.7.25 → mkdocs2confluence-0.7.26}/tests/test_linkdefs.py +0 -0
  61. {mkdocs2confluence-0.7.25 → mkdocs2confluence-0.7.26}/tests/test_loader.py +0 -0
  62. {mkdocs2confluence-0.7.25 → mkdocs2confluence-0.7.26}/tests/test_mermaid.py +0 -0
  63. {mkdocs2confluence-0.7.25 → mkdocs2confluence-0.7.26}/tests/test_page_loader.py +0 -0
  64. {mkdocs2confluence-0.7.25 → mkdocs2confluence-0.7.26}/tests/test_parser.py +0 -0
  65. {mkdocs2confluence-0.7.25 → mkdocs2confluence-0.7.26}/tests/test_pdf.py +0 -0
  66. {mkdocs2confluence-0.7.25 → mkdocs2confluence-0.7.26}/tests/test_preprocess.py +0 -0
  67. {mkdocs2confluence-0.7.25 → mkdocs2confluence-0.7.26}/tests/test_preview.py +0 -0
  68. {mkdocs2confluence-0.7.25 → mkdocs2confluence-0.7.26}/tests/test_publish_client.py +0 -0
  69. {mkdocs2confluence-0.7.25 → mkdocs2confluence-0.7.26}/tests/test_publish_config.py +0 -0
  70. {mkdocs2confluence-0.7.25 → mkdocs2confluence-0.7.26}/tests/test_publish_pipeline.py +0 -0
  71. {mkdocs2confluence-0.7.25 → mkdocs2confluence-0.7.26}/tests/test_server.py +0 -0
  72. {mkdocs2confluence-0.7.25 → mkdocs2confluence-0.7.26}/tests/test_treeutil.py +0 -0
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: mkdocs2confluence
3
- Version: 0.7.25
3
+ Version: 0.7.26
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.25"
3
+ version = "0.7.26"
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.25
3
+ Version: 0.7.26
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
@@ -371,6 +371,7 @@ class ConfluenceClient:
371
371
  Sends ``{id, name, color}`` when a matching space state is found, otherwise
372
372
  falls back to ``{name, color}`` with a sensible default colour.
373
373
  """
374
+ import sys as _sys
374
375
  def _normalize(s: str) -> str:
375
376
  return s.lower().replace("-", " ").strip()
376
377
 
@@ -380,6 +381,10 @@ class ConfluenceClient:
380
381
  # Fetch space states once per run (keyed by space so one run = one API call)
381
382
  if cache_key not in self._space_states:
382
383
  self._space_states[cache_key] = self._fetch_available_states(page_id)
384
+ print(
385
+ f" [status] space states fetched: {[s.get('name') for s in self._space_states[cache_key]]}",
386
+ file=_sys.stderr,
387
+ )
383
388
 
384
389
  matched: dict[str, Any] | None = None
385
390
  for state in self._space_states.get(cache_key, []):
@@ -393,6 +398,7 @@ class ConfluenceClient:
393
398
  "name": matched["name"],
394
399
  "color": matched["color"],
395
400
  }
401
+ print(f" [status] matched space state: {body}", file=_sys.stderr)
396
402
  else:
397
403
  # Fall back: name + color (required together when no id)
398
404
  _default_colors = {
@@ -404,9 +410,13 @@ class ConfluenceClient:
404
410
  "outdated": "#ff7452",
405
411
  }
406
412
  body = {"name": name, "color": _default_colors.get(_normalize(name), "#2684ff")}
413
+ print(f" [status] no space state match — using fallback: {body}", file=_sys.stderr)
407
414
 
408
415
  url = self._v1(f"/content/{page_id}/state")
409
416
  resp = self._http.put(url, json=body)
417
+ print(f" [status] PUT {url} → HTTP {resp.status_code}", file=_sys.stderr)
418
+ if not resp.is_success:
419
+ print(f" [status] response body: {resp.text[:300]}", file=_sys.stderr)
410
420
  self._raise_for_status(resp, f"set_page_status({page_id!r}, {status_key!r})")
411
421
 
412
422
  def _fetch_available_states(self, page_id: str) -> list[dict[str, Any]]:
@@ -664,7 +664,9 @@ def _post_process_action(
664
664
  # Set Confluence page status (rough-draft / in-progress / etc.) — non-fatal.
665
665
  if action.page_id and action.confluence_status and not action.is_folder:
666
666
  try:
667
+ print(f" [status] setting '{action.confluence_status}' on page {action.page_id!r}...", file=sys.stderr)
667
668
  client.set_page_status(action.page_id, action.confluence_status, space_key=space_key)
669
+ print(" [status] ok", file=sys.stderr)
668
670
  except Exception as exc:
669
671
  # Always print status errors — user configured status explicitly
670
672
  print(f" [warn] could not set page status '{action.confluence_status}': {exc}", file=sys.stderr)
@@ -730,13 +732,17 @@ def execute_publish(
730
732
  # Still apply status even for unchanged pages.
731
733
  if action.page_id and action.confluence_status and not action.is_folder:
732
734
  try:
735
+ print(
736
+ f" [status] setting '{action.confluence_status}' on page {action.page_id!r}...",
737
+ file=sys.stderr,
738
+ )
733
739
  client.set_page_status(action.page_id, action.confluence_status, space_key=space_key)
740
+ print(" [status] ok", file=sys.stderr)
734
741
  except Exception as exc:
735
- if not quiet:
736
- print(
737
- f" [warn] could not set page status '{action.confluence_status}': {exc}",
738
- file=sys.stderr,
739
- )
742
+ print(
743
+ f" [warn] could not set page status '{action.confluence_status}': {exc}",
744
+ file=sys.stderr,
745
+ )
740
746
  continue
741
747
 
742
748
  counter += 1