mkdocs2confluence 0.13.3__tar.gz → 0.13.5__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 (100) hide show
  1. {mkdocs2confluence-0.13.3/src/mkdocs2confluence.egg-info → mkdocs2confluence-0.13.5}/PKG-INFO +1 -1
  2. {mkdocs2confluence-0.13.3 → mkdocs2confluence-0.13.5}/pyproject.toml +1 -1
  3. {mkdocs2confluence-0.13.3 → mkdocs2confluence-0.13.5/src/mkdocs2confluence.egg-info}/PKG-INFO +1 -1
  4. {mkdocs2confluence-0.13.3 → mkdocs2confluence-0.13.5}/src/mkdocs_to_confluence/cli.py +7 -8
  5. {mkdocs2confluence-0.13.3 → mkdocs2confluence-0.13.5}/src/mkdocs_to_confluence/skill_installer.py +1 -1
  6. {mkdocs2confluence-0.13.3 → mkdocs2confluence-0.13.5}/src/mkdocs_to_confluence/skills/mkdocs-changelog/SKILL.md +21 -6
  7. {mkdocs2confluence-0.13.3 → mkdocs2confluence-0.13.5}/tests/test_skill_installer.py +2 -2
  8. {mkdocs2confluence-0.13.3 → mkdocs2confluence-0.13.5}/LICENSE +0 -0
  9. {mkdocs2confluence-0.13.3 → mkdocs2confluence-0.13.5}/README.md +0 -0
  10. {mkdocs2confluence-0.13.3 → mkdocs2confluence-0.13.5}/setup.cfg +0 -0
  11. {mkdocs2confluence-0.13.3 → mkdocs2confluence-0.13.5}/src/mkdocs2confluence.egg-info/SOURCES.txt +0 -0
  12. {mkdocs2confluence-0.13.3 → mkdocs2confluence-0.13.5}/src/mkdocs2confluence.egg-info/dependency_links.txt +0 -0
  13. {mkdocs2confluence-0.13.3 → mkdocs2confluence-0.13.5}/src/mkdocs2confluence.egg-info/entry_points.txt +0 -0
  14. {mkdocs2confluence-0.13.3 → mkdocs2confluence-0.13.5}/src/mkdocs2confluence.egg-info/requires.txt +0 -0
  15. {mkdocs2confluence-0.13.3 → mkdocs2confluence-0.13.5}/src/mkdocs2confluence.egg-info/top_level.txt +0 -0
  16. {mkdocs2confluence-0.13.3 → mkdocs2confluence-0.13.5}/src/mkdocs_to_confluence/__init__.py +0 -0
  17. {mkdocs2confluence-0.13.3 → mkdocs2confluence-0.13.5}/src/mkdocs_to_confluence/compiler/__init__.py +0 -0
  18. {mkdocs2confluence-0.13.3 → mkdocs2confluence-0.13.5}/src/mkdocs_to_confluence/compiler/models.py +0 -0
  19. {mkdocs2confluence-0.13.3 → mkdocs2confluence-0.13.5}/src/mkdocs_to_confluence/compiler/page.py +0 -0
  20. {mkdocs2confluence-0.13.3 → mkdocs2confluence-0.13.5}/src/mkdocs_to_confluence/emitter/__init__.py +0 -0
  21. {mkdocs2confluence-0.13.3 → mkdocs2confluence-0.13.5}/src/mkdocs_to_confluence/emitter/xhtml.py +0 -0
  22. {mkdocs2confluence-0.13.3 → mkdocs2confluence-0.13.5}/src/mkdocs_to_confluence/ir/__init__.py +0 -0
  23. {mkdocs2confluence-0.13.3 → mkdocs2confluence-0.13.5}/src/mkdocs_to_confluence/ir/document.py +0 -0
  24. {mkdocs2confluence-0.13.3 → mkdocs2confluence-0.13.5}/src/mkdocs_to_confluence/ir/nodes.py +0 -0
  25. {mkdocs2confluence-0.13.3 → mkdocs2confluence-0.13.5}/src/mkdocs_to_confluence/ir/treeutil.py +0 -0
  26. {mkdocs2confluence-0.13.3 → mkdocs2confluence-0.13.5}/src/mkdocs_to_confluence/loader/__init__.py +0 -0
  27. {mkdocs2confluence-0.13.3 → mkdocs2confluence-0.13.5}/src/mkdocs_to_confluence/loader/config.py +0 -0
  28. {mkdocs2confluence-0.13.3 → mkdocs2confluence-0.13.5}/src/mkdocs_to_confluence/loader/extra_css.py +0 -0
  29. {mkdocs2confluence-0.13.3 → mkdocs2confluence-0.13.5}/src/mkdocs_to_confluence/loader/nav.py +0 -0
  30. {mkdocs2confluence-0.13.3 → mkdocs2confluence-0.13.5}/src/mkdocs_to_confluence/loader/page.py +0 -0
  31. {mkdocs2confluence-0.13.3 → mkdocs2confluence-0.13.5}/src/mkdocs_to_confluence/parser/__init__.py +0 -0
  32. {mkdocs2confluence-0.13.3 → mkdocs2confluence-0.13.5}/src/mkdocs_to_confluence/parser/markdown.py +0 -0
  33. {mkdocs2confluence-0.13.3 → mkdocs2confluence-0.13.5}/src/mkdocs_to_confluence/pdf/__init__.py +0 -0
  34. {mkdocs2confluence-0.13.3 → mkdocs2confluence-0.13.5}/src/mkdocs_to_confluence/pdf/generator.py +0 -0
  35. {mkdocs2confluence-0.13.3 → mkdocs2confluence-0.13.5}/src/mkdocs_to_confluence/pdf/render.py +0 -0
  36. {mkdocs2confluence-0.13.3 → mkdocs2confluence-0.13.5}/src/mkdocs_to_confluence/preprocess/__init__.py +0 -0
  37. {mkdocs2confluence-0.13.3 → mkdocs2confluence-0.13.5}/src/mkdocs_to_confluence/preprocess/abbrevs.py +0 -0
  38. {mkdocs2confluence-0.13.3 → mkdocs2confluence-0.13.5}/src/mkdocs_to_confluence/preprocess/fence.py +0 -0
  39. {mkdocs2confluence-0.13.3 → mkdocs2confluence-0.13.5}/src/mkdocs_to_confluence/preprocess/frontmatter.py +0 -0
  40. {mkdocs2confluence-0.13.3 → mkdocs2confluence-0.13.5}/src/mkdocs_to_confluence/preprocess/icons.py +0 -0
  41. {mkdocs2confluence-0.13.3 → mkdocs2confluence-0.13.5}/src/mkdocs_to_confluence/preprocess/includes.py +0 -0
  42. {mkdocs2confluence-0.13.3 → mkdocs2confluence-0.13.5}/src/mkdocs_to_confluence/preprocess/linkdefs.py +0 -0
  43. {mkdocs2confluence-0.13.3 → mkdocs2confluence-0.13.5}/src/mkdocs_to_confluence/preview/__init__.py +0 -0
  44. {mkdocs2confluence-0.13.3 → mkdocs2confluence-0.13.5}/src/mkdocs_to_confluence/preview/render.py +0 -0
  45. {mkdocs2confluence-0.13.3 → mkdocs2confluence-0.13.5}/src/mkdocs_to_confluence/preview/server.py +0 -0
  46. {mkdocs2confluence-0.13.3 → mkdocs2confluence-0.13.5}/src/mkdocs_to_confluence/publisher/__init__.py +0 -0
  47. {mkdocs2confluence-0.13.3 → mkdocs2confluence-0.13.5}/src/mkdocs_to_confluence/publisher/changelog.py +0 -0
  48. {mkdocs2confluence-0.13.3 → mkdocs2confluence-0.13.5}/src/mkdocs_to_confluence/publisher/client.py +0 -0
  49. {mkdocs2confluence-0.13.3 → mkdocs2confluence-0.13.5}/src/mkdocs_to_confluence/publisher/executor.py +0 -0
  50. {mkdocs2confluence-0.13.3 → mkdocs2confluence-0.13.5}/src/mkdocs_to_confluence/publisher/http_retry.py +0 -0
  51. {mkdocs2confluence-0.13.3 → mkdocs2confluence-0.13.5}/src/mkdocs_to_confluence/publisher/models.py +0 -0
  52. {mkdocs2confluence-0.13.3 → mkdocs2confluence-0.13.5}/src/mkdocs_to_confluence/publisher/pipeline.py +0 -0
  53. {mkdocs2confluence-0.13.3 → mkdocs2confluence-0.13.5}/src/mkdocs_to_confluence/publisher/planner.py +0 -0
  54. {mkdocs2confluence-0.13.3 → mkdocs2confluence-0.13.5}/src/mkdocs_to_confluence/sync/__init__.py +0 -0
  55. {mkdocs2confluence-0.13.3 → mkdocs2confluence-0.13.5}/src/mkdocs_to_confluence/sync/anchoring.py +0 -0
  56. {mkdocs2confluence-0.13.3 → mkdocs2confluence-0.13.5}/src/mkdocs_to_confluence/sync/command.py +0 -0
  57. {mkdocs2confluence-0.13.3 → mkdocs2confluence-0.13.5}/src/mkdocs_to_confluence/sync/comments.py +0 -0
  58. {mkdocs2confluence-0.13.3 → mkdocs2confluence-0.13.5}/src/mkdocs_to_confluence/sync/github.py +0 -0
  59. {mkdocs2confluence-0.13.3 → mkdocs2confluence-0.13.5}/src/mkdocs_to_confluence/sync/platform.py +0 -0
  60. {mkdocs2confluence-0.13.3 → mkdocs2confluence-0.13.5}/src/mkdocs_to_confluence/sync/state.py +0 -0
  61. {mkdocs2confluence-0.13.3 → mkdocs2confluence-0.13.5}/src/mkdocs_to_confluence/transforms/__init__.py +0 -0
  62. {mkdocs2confluence-0.13.3 → mkdocs2confluence-0.13.5}/src/mkdocs_to_confluence/transforms/abbrevs.py +0 -0
  63. {mkdocs2confluence-0.13.3 → mkdocs2confluence-0.13.5}/src/mkdocs_to_confluence/transforms/assets.py +0 -0
  64. {mkdocs2confluence-0.13.3 → mkdocs2confluence-0.13.5}/src/mkdocs_to_confluence/transforms/editlink.py +0 -0
  65. {mkdocs2confluence-0.13.3 → mkdocs2confluence-0.13.5}/src/mkdocs_to_confluence/transforms/footer.py +0 -0
  66. {mkdocs2confluence-0.13.3 → mkdocs2confluence-0.13.5}/src/mkdocs_to_confluence/transforms/images.py +0 -0
  67. {mkdocs2confluence-0.13.3 → mkdocs2confluence-0.13.5}/src/mkdocs_to_confluence/transforms/internallinks.py +0 -0
  68. {mkdocs2confluence-0.13.3 → mkdocs2confluence-0.13.5}/src/mkdocs_to_confluence/transforms/mermaid.py +0 -0
  69. {mkdocs2confluence-0.13.3 → mkdocs2confluence-0.13.5}/tests/test_abbrevs.py +0 -0
  70. {mkdocs2confluence-0.13.3 → mkdocs2confluence-0.13.5}/tests/test_changelog_config.py +0 -0
  71. {mkdocs2confluence-0.13.3 → mkdocs2confluence-0.13.5}/tests/test_changelog_publish.py +0 -0
  72. {mkdocs2confluence-0.13.3 → mkdocs2confluence-0.13.5}/tests/test_children_macro.py +0 -0
  73. {mkdocs2confluence-0.13.3 → mkdocs2confluence-0.13.5}/tests/test_cli.py +0 -0
  74. {mkdocs2confluence-0.13.3 → mkdocs2confluence-0.13.5}/tests/test_editlink.py +0 -0
  75. {mkdocs2confluence-0.13.3 → mkdocs2confluence-0.13.5}/tests/test_emitter.py +0 -0
  76. {mkdocs2confluence-0.13.3 → mkdocs2confluence-0.13.5}/tests/test_extra_css.py +0 -0
  77. {mkdocs2confluence-0.13.3 → mkdocs2confluence-0.13.5}/tests/test_footer.py +0 -0
  78. {mkdocs2confluence-0.13.3 → mkdocs2confluence-0.13.5}/tests/test_frontmatter.py +0 -0
  79. {mkdocs2confluence-0.13.3 → mkdocs2confluence-0.13.5}/tests/test_icons.py +0 -0
  80. {mkdocs2confluence-0.13.3 → mkdocs2confluence-0.13.5}/tests/test_images.py +0 -0
  81. {mkdocs2confluence-0.13.3 → mkdocs2confluence-0.13.5}/tests/test_internallinks.py +0 -0
  82. {mkdocs2confluence-0.13.3 → mkdocs2confluence-0.13.5}/tests/test_ir.py +0 -0
  83. {mkdocs2confluence-0.13.3 → mkdocs2confluence-0.13.5}/tests/test_linkdefs.py +0 -0
  84. {mkdocs2confluence-0.13.3 → mkdocs2confluence-0.13.5}/tests/test_loader.py +0 -0
  85. {mkdocs2confluence-0.13.3 → mkdocs2confluence-0.13.5}/tests/test_mermaid.py +0 -0
  86. {mkdocs2confluence-0.13.3 → mkdocs2confluence-0.13.5}/tests/test_page_loader.py +0 -0
  87. {mkdocs2confluence-0.13.3 → mkdocs2confluence-0.13.5}/tests/test_parser.py +0 -0
  88. {mkdocs2confluence-0.13.3 → mkdocs2confluence-0.13.5}/tests/test_pdf.py +0 -0
  89. {mkdocs2confluence-0.13.3 → mkdocs2confluence-0.13.5}/tests/test_preprocess.py +0 -0
  90. {mkdocs2confluence-0.13.3 → mkdocs2confluence-0.13.5}/tests/test_preview.py +0 -0
  91. {mkdocs2confluence-0.13.3 → mkdocs2confluence-0.13.5}/tests/test_publish_client.py +0 -0
  92. {mkdocs2confluence-0.13.3 → mkdocs2confluence-0.13.5}/tests/test_publish_config.py +0 -0
  93. {mkdocs2confluence-0.13.3 → mkdocs2confluence-0.13.5}/tests/test_publish_pipeline.py +0 -0
  94. {mkdocs2confluence-0.13.3 → mkdocs2confluence-0.13.5}/tests/test_server.py +0 -0
  95. {mkdocs2confluence-0.13.3 → mkdocs2confluence-0.13.5}/tests/test_sync_anchoring.py +0 -0
  96. {mkdocs2confluence-0.13.3 → mkdocs2confluence-0.13.5}/tests/test_sync_command.py +0 -0
  97. {mkdocs2confluence-0.13.3 → mkdocs2confluence-0.13.5}/tests/test_sync_comments.py +0 -0
  98. {mkdocs2confluence-0.13.3 → mkdocs2confluence-0.13.5}/tests/test_sync_github.py +0 -0
  99. {mkdocs2confluence-0.13.3 → mkdocs2confluence-0.13.5}/tests/test_sync_state.py +0 -0
  100. {mkdocs2confluence-0.13.3 → mkdocs2confluence-0.13.5}/tests/test_treeutil.py +0 -0
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: mkdocs2confluence
3
- Version: 0.13.3
3
+ Version: 0.13.5
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.13.3"
3
+ version = "0.13.5"
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.13.3
3
+ Version: 0.13.5
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
@@ -544,7 +544,7 @@ def _cmd_publish(args: argparse.Namespace) -> None:
544
544
  print(f"Dry run: would publish {len(pages)} page(s) to {conf_config.base_url}")
545
545
  for page in pages:
546
546
  print(f" {page.docs_path} → '{page.title}'")
547
- if conf_config.changelog_file and not partial:
547
+ if conf_config.changelog_file:
548
548
  from mkdocs_to_confluence.publisher.changelog import _extract_title
549
549
  cl_path = config.docs_dir / conf_config.changelog_file
550
550
  cl_title = _extract_title(cl_path) or "What's New"
@@ -580,13 +580,12 @@ def _cmd_publish(args: argparse.Namespace) -> None:
580
580
  prune=getattr(args, "prune", False) and not partial,
581
581
  quiet=args.quiet,
582
582
  )
583
- # Changelog is a pinned top-level page always publish on full runs,
584
- # skip on partial runs (--page / --section) like all other publish behaviour.
585
- if not partial:
586
- publish_changelog(
587
- config, conf_config, client, space_id,
588
- space_key=conf_config.space_key, quiet=args.quiet,
589
- )
583
+ # Changelog is a pinned top-level page independent of the nav
584
+ # always publish it when it has updates, even on partial runs.
585
+ publish_changelog(
586
+ config, conf_config, client, space_id,
587
+ space_key=conf_config.space_key, quiet=args.quiet,
588
+ )
590
589
  except ConfluenceError as exc:
591
590
  print(f"error: {exc}", file=sys.stderr)
592
591
  sys.exit(1)
@@ -66,7 +66,7 @@ def install_skill(
66
66
  if _want("claude"):
67
67
  claude_dir = project_dir / ".claude"
68
68
  if explicit or claude_dir.exists():
69
- dest = claude_dir / "commands" / "changelog.md"
69
+ dest = claude_dir / "commands" / "mk2conf-changelog.md"
70
70
  dest.parent.mkdir(parents=True, exist_ok=True)
71
71
  dest.write_text(content_body, encoding="utf-8")
72
72
  installed.append(("claude", dest))
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  name: mkdocs-changelog
3
3
  description: Analyse doc changes since the last CHANGELOG.md update and draft a major-change entry if the changes qualify.
4
- version: "1.0.0"
4
+ version: "1.1.0"
5
5
  tags: [documentation, git, changelog, mkdocs, confluence]
6
6
  specificity: context-specific
7
7
  tool_agnostic: true
@@ -47,23 +47,31 @@ Analyse git changes to the docs directory since the last `CHANGELOG.md` commit.
47
47
  ```markdown
48
48
  ## YYYY-MM-DD — Brief title describing the major change
49
49
 
50
- One or two sentences summarising what fundamentally changed and why it matters to readers.
51
-
52
50
  ### Added
53
51
  - …
54
52
 
55
53
  ### Changed
56
54
  - …
57
55
 
56
+ ### Deprecated
57
+ - …
58
+
58
59
  ### Removed
59
60
  - …
61
+
62
+ ### Fixed
63
+ - …
64
+
65
+ ### Security
66
+ - …
60
67
  ```
61
68
 
62
69
  Rules for the entry:
63
70
  - Date is today's date in `YYYY-MM-DD` format
64
- - Sections (`Added`, `Changed`, `Removed`) are included only when non-empty
65
- - No version numbers — dates only
66
71
  - Title is a brief, reader-facing description (not a git commit message)
72
+ - No version numbers — dates only
73
+ - **Include only sections that have actual content** — omit any empty section entirely
74
+ - Section meanings: `Added` (new content), `Changed` (updated content), `Deprecated` (content being phased out), `Removed` (deleted content), `Fixed` (corrected errors or misleading information), `Security` (security-related documentation updates)
67
75
 
68
76
  Prepend the entry above any existing entries in `CHANGELOG.md`. Do not commit — the user reviews, edits if needed, and commits manually.
69
77
 
@@ -71,7 +79,14 @@ One or two sentences summarising what fundamentally changed and why it matters t
71
79
 
72
80
  - **Do not draft an entry for every change.** The changelog is for readers who want to know what fundamentally changed, not a git log. When in doubt, do not draft.
73
81
  - **Do not commit.** Always leave the file for the user to review. The user runs `git add` and `git commit` themselves before publishing.
74
- - **If CHANGELOG.md does not exist yet**, create it with just the new entry (no header needed).
82
+ - **If `CHANGELOG.md` does not exist yet**, create it with this header before the first entry:
83
+
84
+ ```markdown
85
+ # Changelog
86
+
87
+ All notable changes to this documentation are recorded here.
88
+ The format is inspired by [Keep a Changelog](https://keepachangelog.com/en/1.1.0/).
89
+ ```
75
90
 
76
91
  ## Verification
77
92
 
@@ -45,7 +45,7 @@ def test_install_skill_claude(tmp_path: Path) -> None:
45
45
  assert len(installed) == 1
46
46
  name, dest = installed[0]
47
47
  assert name == "claude"
48
- assert dest == tmp_path / ".claude" / "commands" / "changelog.md"
48
+ assert dest == tmp_path / ".claude" / "commands" / "mk2conf-changelog.md"
49
49
  content = dest.read_text(encoding="utf-8")
50
50
  # Frontmatter stripped for Claude Code
51
51
  assert "name: mkdocs-changelog" not in content
@@ -117,7 +117,7 @@ def test_install_skill_explicit_tool_ignores_detection(tmp_path: Path) -> None:
117
117
 
118
118
  def test_install_skill_overwrites_existing(tmp_path: Path) -> None:
119
119
  (tmp_path / ".claude").mkdir()
120
- dest = tmp_path / ".claude" / "commands" / "changelog.md"
120
+ dest = tmp_path / ".claude" / "commands" / "mk2conf-changelog.md"
121
121
  dest.parent.mkdir(parents=True, exist_ok=True)
122
122
  dest.write_text("old content", encoding="utf-8")
123
123