mkdocs2confluence 0.10.2__tar.gz → 0.11.0__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 (87) hide show
  1. {mkdocs2confluence-0.10.2 → mkdocs2confluence-0.11.0}/PKG-INFO +48 -1
  2. {mkdocs2confluence-0.10.2 → mkdocs2confluence-0.11.0}/README.md +47 -0
  3. {mkdocs2confluence-0.10.2 → mkdocs2confluence-0.11.0}/pyproject.toml +1 -1
  4. {mkdocs2confluence-0.10.2 → mkdocs2confluence-0.11.0}/src/mkdocs2confluence.egg-info/PKG-INFO +48 -1
  5. {mkdocs2confluence-0.10.2 → mkdocs2confluence-0.11.0}/src/mkdocs_to_confluence/transforms/footer.py +1 -1
  6. {mkdocs2confluence-0.10.2 → mkdocs2confluence-0.11.0}/tests/test_footer.py +4 -4
  7. {mkdocs2confluence-0.10.2 → mkdocs2confluence-0.11.0}/LICENSE +0 -0
  8. {mkdocs2confluence-0.10.2 → mkdocs2confluence-0.11.0}/setup.cfg +0 -0
  9. {mkdocs2confluence-0.10.2 → mkdocs2confluence-0.11.0}/src/mkdocs2confluence.egg-info/SOURCES.txt +0 -0
  10. {mkdocs2confluence-0.10.2 → mkdocs2confluence-0.11.0}/src/mkdocs2confluence.egg-info/dependency_links.txt +0 -0
  11. {mkdocs2confluence-0.10.2 → mkdocs2confluence-0.11.0}/src/mkdocs2confluence.egg-info/entry_points.txt +0 -0
  12. {mkdocs2confluence-0.10.2 → mkdocs2confluence-0.11.0}/src/mkdocs2confluence.egg-info/requires.txt +0 -0
  13. {mkdocs2confluence-0.10.2 → mkdocs2confluence-0.11.0}/src/mkdocs2confluence.egg-info/top_level.txt +0 -0
  14. {mkdocs2confluence-0.10.2 → mkdocs2confluence-0.11.0}/src/mkdocs_to_confluence/__init__.py +0 -0
  15. {mkdocs2confluence-0.10.2 → mkdocs2confluence-0.11.0}/src/mkdocs_to_confluence/cli.py +0 -0
  16. {mkdocs2confluence-0.10.2 → mkdocs2confluence-0.11.0}/src/mkdocs_to_confluence/emitter/__init__.py +0 -0
  17. {mkdocs2confluence-0.10.2 → mkdocs2confluence-0.11.0}/src/mkdocs_to_confluence/emitter/xhtml.py +0 -0
  18. {mkdocs2confluence-0.10.2 → mkdocs2confluence-0.11.0}/src/mkdocs_to_confluence/ir/__init__.py +0 -0
  19. {mkdocs2confluence-0.10.2 → mkdocs2confluence-0.11.0}/src/mkdocs_to_confluence/ir/document.py +0 -0
  20. {mkdocs2confluence-0.10.2 → mkdocs2confluence-0.11.0}/src/mkdocs_to_confluence/ir/nodes.py +0 -0
  21. {mkdocs2confluence-0.10.2 → mkdocs2confluence-0.11.0}/src/mkdocs_to_confluence/ir/treeutil.py +0 -0
  22. {mkdocs2confluence-0.10.2 → mkdocs2confluence-0.11.0}/src/mkdocs_to_confluence/loader/__init__.py +0 -0
  23. {mkdocs2confluence-0.10.2 → mkdocs2confluence-0.11.0}/src/mkdocs_to_confluence/loader/config.py +0 -0
  24. {mkdocs2confluence-0.10.2 → mkdocs2confluence-0.11.0}/src/mkdocs_to_confluence/loader/extra_css.py +0 -0
  25. {mkdocs2confluence-0.10.2 → mkdocs2confluence-0.11.0}/src/mkdocs_to_confluence/loader/nav.py +0 -0
  26. {mkdocs2confluence-0.10.2 → mkdocs2confluence-0.11.0}/src/mkdocs_to_confluence/loader/page.py +0 -0
  27. {mkdocs2confluence-0.10.2 → mkdocs2confluence-0.11.0}/src/mkdocs_to_confluence/parser/__init__.py +0 -0
  28. {mkdocs2confluence-0.10.2 → mkdocs2confluence-0.11.0}/src/mkdocs_to_confluence/parser/markdown.py +0 -0
  29. {mkdocs2confluence-0.10.2 → mkdocs2confluence-0.11.0}/src/mkdocs_to_confluence/pdf/__init__.py +0 -0
  30. {mkdocs2confluence-0.10.2 → mkdocs2confluence-0.11.0}/src/mkdocs_to_confluence/pdf/generator.py +0 -0
  31. {mkdocs2confluence-0.10.2 → mkdocs2confluence-0.11.0}/src/mkdocs_to_confluence/pdf/render.py +0 -0
  32. {mkdocs2confluence-0.10.2 → mkdocs2confluence-0.11.0}/src/mkdocs_to_confluence/preprocess/__init__.py +0 -0
  33. {mkdocs2confluence-0.10.2 → mkdocs2confluence-0.11.0}/src/mkdocs_to_confluence/preprocess/abbrevs.py +0 -0
  34. {mkdocs2confluence-0.10.2 → mkdocs2confluence-0.11.0}/src/mkdocs_to_confluence/preprocess/fence.py +0 -0
  35. {mkdocs2confluence-0.10.2 → mkdocs2confluence-0.11.0}/src/mkdocs_to_confluence/preprocess/frontmatter.py +0 -0
  36. {mkdocs2confluence-0.10.2 → mkdocs2confluence-0.11.0}/src/mkdocs_to_confluence/preprocess/icons.py +0 -0
  37. {mkdocs2confluence-0.10.2 → mkdocs2confluence-0.11.0}/src/mkdocs_to_confluence/preprocess/includes.py +0 -0
  38. {mkdocs2confluence-0.10.2 → mkdocs2confluence-0.11.0}/src/mkdocs_to_confluence/preprocess/linkdefs.py +0 -0
  39. {mkdocs2confluence-0.10.2 → mkdocs2confluence-0.11.0}/src/mkdocs_to_confluence/preview/__init__.py +0 -0
  40. {mkdocs2confluence-0.10.2 → mkdocs2confluence-0.11.0}/src/mkdocs_to_confluence/preview/render.py +0 -0
  41. {mkdocs2confluence-0.10.2 → mkdocs2confluence-0.11.0}/src/mkdocs_to_confluence/preview/server.py +0 -0
  42. {mkdocs2confluence-0.10.2 → mkdocs2confluence-0.11.0}/src/mkdocs_to_confluence/publisher/__init__.py +0 -0
  43. {mkdocs2confluence-0.10.2 → mkdocs2confluence-0.11.0}/src/mkdocs_to_confluence/publisher/client.py +0 -0
  44. {mkdocs2confluence-0.10.2 → mkdocs2confluence-0.11.0}/src/mkdocs_to_confluence/publisher/pipeline.py +0 -0
  45. {mkdocs2confluence-0.10.2 → mkdocs2confluence-0.11.0}/src/mkdocs_to_confluence/sync/__init__.py +0 -0
  46. {mkdocs2confluence-0.10.2 → mkdocs2confluence-0.11.0}/src/mkdocs_to_confluence/sync/anchoring.py +0 -0
  47. {mkdocs2confluence-0.10.2 → mkdocs2confluence-0.11.0}/src/mkdocs_to_confluence/sync/command.py +0 -0
  48. {mkdocs2confluence-0.10.2 → mkdocs2confluence-0.11.0}/src/mkdocs_to_confluence/sync/comments.py +0 -0
  49. {mkdocs2confluence-0.10.2 → mkdocs2confluence-0.11.0}/src/mkdocs_to_confluence/sync/github.py +0 -0
  50. {mkdocs2confluence-0.10.2 → mkdocs2confluence-0.11.0}/src/mkdocs_to_confluence/sync/platform.py +0 -0
  51. {mkdocs2confluence-0.10.2 → mkdocs2confluence-0.11.0}/src/mkdocs_to_confluence/sync/state.py +0 -0
  52. {mkdocs2confluence-0.10.2 → mkdocs2confluence-0.11.0}/src/mkdocs_to_confluence/transforms/__init__.py +0 -0
  53. {mkdocs2confluence-0.10.2 → mkdocs2confluence-0.11.0}/src/mkdocs_to_confluence/transforms/abbrevs.py +0 -0
  54. {mkdocs2confluence-0.10.2 → mkdocs2confluence-0.11.0}/src/mkdocs_to_confluence/transforms/assets.py +0 -0
  55. {mkdocs2confluence-0.10.2 → mkdocs2confluence-0.11.0}/src/mkdocs_to_confluence/transforms/editlink.py +0 -0
  56. {mkdocs2confluence-0.10.2 → mkdocs2confluence-0.11.0}/src/mkdocs_to_confluence/transforms/images.py +0 -0
  57. {mkdocs2confluence-0.10.2 → mkdocs2confluence-0.11.0}/src/mkdocs_to_confluence/transforms/internallinks.py +0 -0
  58. {mkdocs2confluence-0.10.2 → mkdocs2confluence-0.11.0}/src/mkdocs_to_confluence/transforms/mermaid.py +0 -0
  59. {mkdocs2confluence-0.10.2 → mkdocs2confluence-0.11.0}/tests/test_abbrevs.py +0 -0
  60. {mkdocs2confluence-0.10.2 → mkdocs2confluence-0.11.0}/tests/test_children_macro.py +0 -0
  61. {mkdocs2confluence-0.10.2 → mkdocs2confluence-0.11.0}/tests/test_cli.py +0 -0
  62. {mkdocs2confluence-0.10.2 → mkdocs2confluence-0.11.0}/tests/test_editlink.py +0 -0
  63. {mkdocs2confluence-0.10.2 → mkdocs2confluence-0.11.0}/tests/test_emitter.py +0 -0
  64. {mkdocs2confluence-0.10.2 → mkdocs2confluence-0.11.0}/tests/test_extra_css.py +0 -0
  65. {mkdocs2confluence-0.10.2 → mkdocs2confluence-0.11.0}/tests/test_frontmatter.py +0 -0
  66. {mkdocs2confluence-0.10.2 → mkdocs2confluence-0.11.0}/tests/test_icons.py +0 -0
  67. {mkdocs2confluence-0.10.2 → mkdocs2confluence-0.11.0}/tests/test_images.py +0 -0
  68. {mkdocs2confluence-0.10.2 → mkdocs2confluence-0.11.0}/tests/test_internallinks.py +0 -0
  69. {mkdocs2confluence-0.10.2 → mkdocs2confluence-0.11.0}/tests/test_ir.py +0 -0
  70. {mkdocs2confluence-0.10.2 → mkdocs2confluence-0.11.0}/tests/test_linkdefs.py +0 -0
  71. {mkdocs2confluence-0.10.2 → mkdocs2confluence-0.11.0}/tests/test_loader.py +0 -0
  72. {mkdocs2confluence-0.10.2 → mkdocs2confluence-0.11.0}/tests/test_mermaid.py +0 -0
  73. {mkdocs2confluence-0.10.2 → mkdocs2confluence-0.11.0}/tests/test_page_loader.py +0 -0
  74. {mkdocs2confluence-0.10.2 → mkdocs2confluence-0.11.0}/tests/test_parser.py +0 -0
  75. {mkdocs2confluence-0.10.2 → mkdocs2confluence-0.11.0}/tests/test_pdf.py +0 -0
  76. {mkdocs2confluence-0.10.2 → mkdocs2confluence-0.11.0}/tests/test_preprocess.py +0 -0
  77. {mkdocs2confluence-0.10.2 → mkdocs2confluence-0.11.0}/tests/test_preview.py +0 -0
  78. {mkdocs2confluence-0.10.2 → mkdocs2confluence-0.11.0}/tests/test_publish_client.py +0 -0
  79. {mkdocs2confluence-0.10.2 → mkdocs2confluence-0.11.0}/tests/test_publish_config.py +0 -0
  80. {mkdocs2confluence-0.10.2 → mkdocs2confluence-0.11.0}/tests/test_publish_pipeline.py +0 -0
  81. {mkdocs2confluence-0.10.2 → mkdocs2confluence-0.11.0}/tests/test_server.py +0 -0
  82. {mkdocs2confluence-0.10.2 → mkdocs2confluence-0.11.0}/tests/test_sync_anchoring.py +0 -0
  83. {mkdocs2confluence-0.10.2 → mkdocs2confluence-0.11.0}/tests/test_sync_command.py +0 -0
  84. {mkdocs2confluence-0.10.2 → mkdocs2confluence-0.11.0}/tests/test_sync_comments.py +0 -0
  85. {mkdocs2confluence-0.10.2 → mkdocs2confluence-0.11.0}/tests/test_sync_github.py +0 -0
  86. {mkdocs2confluence-0.10.2 → mkdocs2confluence-0.11.0}/tests/test_sync_state.py +0 -0
  87. {mkdocs2confluence-0.10.2 → mkdocs2confluence-0.11.0}/tests/test_treeutil.py +0 -0
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: mkdocs2confluence
3
- Version: 0.10.2
3
+ Version: 0.11.0
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
@@ -94,6 +94,53 @@ git clone https://github.com/jeckyl2010/mkdocs2confluence.git
94
94
  cd mkdocs2confluence && uv sync
95
95
  ```
96
96
 
97
+ ### GitHub Actions
98
+
99
+ Add `mk2conf` to any CI/CD pipeline with the official action. Store your Confluence API token as a repository secret (`CONFLUENCE_API_TOKEN`) and add a workflow step:
100
+
101
+ ```yaml
102
+ - name: Publish docs to Confluence
103
+ uses: jeckyl2010/mkdocs2confluence@v1
104
+ with:
105
+ token: ${{ secrets.CONFLUENCE_API_TOKEN }}
106
+ ```
107
+
108
+ **Full example** — publish on every push to `main`:
109
+
110
+ ```yaml
111
+ name: Publish docs
112
+
113
+ on:
114
+ push:
115
+ branches: [main]
116
+ paths: ['docs/**', 'mkdocs.yml']
117
+
118
+ jobs:
119
+ publish:
120
+ runs-on: ubuntu-latest
121
+ steps:
122
+ - uses: actions/checkout@v4
123
+
124
+ - name: Publish docs to Confluence
125
+ uses: jeckyl2010/mkdocs2confluence@v1
126
+ with:
127
+ token: ${{ secrets.CONFLUENCE_API_TOKEN }}
128
+ prune: 'true' # remove pages deleted from nav
129
+ ```
130
+
131
+ **All inputs:**
132
+
133
+ | Input | Required | Default | Description |
134
+ |---|---|---|---|
135
+ | `token` | ✅ | — | Confluence API token |
136
+ | `config` | | `mkdocs.yml` | Path to mkdocs.yml |
137
+ | `version` | | latest | Pin a specific `mk2conf` version (e.g. `"0.10.3"`) |
138
+ | `dry-run` | | `false` | Print sync plan without publishing |
139
+ | `section` | | — | Publish only a nav section (e.g. `"Guide/Setup"`) |
140
+ | `page` | | — | Publish only a single page (e.g. `"guide/setup.md"`) |
141
+ | `prune` | | `false` | Delete managed pages removed from nav |
142
+ | `quiet` | | `false` | Suppress per-item progress output |
143
+
97
144
  ---
98
145
 
99
146
  ## Quick start
@@ -53,6 +53,53 @@ git clone https://github.com/jeckyl2010/mkdocs2confluence.git
53
53
  cd mkdocs2confluence && uv sync
54
54
  ```
55
55
 
56
+ ### GitHub Actions
57
+
58
+ Add `mk2conf` to any CI/CD pipeline with the official action. Store your Confluence API token as a repository secret (`CONFLUENCE_API_TOKEN`) and add a workflow step:
59
+
60
+ ```yaml
61
+ - name: Publish docs to Confluence
62
+ uses: jeckyl2010/mkdocs2confluence@v1
63
+ with:
64
+ token: ${{ secrets.CONFLUENCE_API_TOKEN }}
65
+ ```
66
+
67
+ **Full example** — publish on every push to `main`:
68
+
69
+ ```yaml
70
+ name: Publish docs
71
+
72
+ on:
73
+ push:
74
+ branches: [main]
75
+ paths: ['docs/**', 'mkdocs.yml']
76
+
77
+ jobs:
78
+ publish:
79
+ runs-on: ubuntu-latest
80
+ steps:
81
+ - uses: actions/checkout@v4
82
+
83
+ - name: Publish docs to Confluence
84
+ uses: jeckyl2010/mkdocs2confluence@v1
85
+ with:
86
+ token: ${{ secrets.CONFLUENCE_API_TOKEN }}
87
+ prune: 'true' # remove pages deleted from nav
88
+ ```
89
+
90
+ **All inputs:**
91
+
92
+ | Input | Required | Default | Description |
93
+ |---|---|---|---|
94
+ | `token` | ✅ | — | Confluence API token |
95
+ | `config` | | `mkdocs.yml` | Path to mkdocs.yml |
96
+ | `version` | | latest | Pin a specific `mk2conf` version (e.g. `"0.10.3"`) |
97
+ | `dry-run` | | `false` | Print sync plan without publishing |
98
+ | `section` | | — | Publish only a nav section (e.g. `"Guide/Setup"`) |
99
+ | `page` | | — | Publish only a single page (e.g. `"guide/setup.md"`) |
100
+ | `prune` | | `false` | Delete managed pages removed from nav |
101
+ | `quiet` | | `false` | Suppress per-item progress output |
102
+
56
103
  ---
57
104
 
58
105
  ## Quick start
@@ -1,6 +1,6 @@
1
1
  [project]
2
2
  name = "mkdocs2confluence"
3
- version = "0.10.2"
3
+ version = "0.11.0"
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.10.2
3
+ Version: 0.11.0
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
@@ -94,6 +94,53 @@ git clone https://github.com/jeckyl2010/mkdocs2confluence.git
94
94
  cd mkdocs2confluence && uv sync
95
95
  ```
96
96
 
97
+ ### GitHub Actions
98
+
99
+ Add `mk2conf` to any CI/CD pipeline with the official action. Store your Confluence API token as a repository secret (`CONFLUENCE_API_TOKEN`) and add a workflow step:
100
+
101
+ ```yaml
102
+ - name: Publish docs to Confluence
103
+ uses: jeckyl2010/mkdocs2confluence@v1
104
+ with:
105
+ token: ${{ secrets.CONFLUENCE_API_TOKEN }}
106
+ ```
107
+
108
+ **Full example** — publish on every push to `main`:
109
+
110
+ ```yaml
111
+ name: Publish docs
112
+
113
+ on:
114
+ push:
115
+ branches: [main]
116
+ paths: ['docs/**', 'mkdocs.yml']
117
+
118
+ jobs:
119
+ publish:
120
+ runs-on: ubuntu-latest
121
+ steps:
122
+ - uses: actions/checkout@v4
123
+
124
+ - name: Publish docs to Confluence
125
+ uses: jeckyl2010/mkdocs2confluence@v1
126
+ with:
127
+ token: ${{ secrets.CONFLUENCE_API_TOKEN }}
128
+ prune: 'true' # remove pages deleted from nav
129
+ ```
130
+
131
+ **All inputs:**
132
+
133
+ | Input | Required | Default | Description |
134
+ |---|---|---|---|
135
+ | `token` | ✅ | — | Confluence API token |
136
+ | `config` | | `mkdocs.yml` | Path to mkdocs.yml |
137
+ | `version` | | latest | Pin a specific `mk2conf` version (e.g. `"0.10.3"`) |
138
+ | `dry-run` | | `false` | Print sync plan without publishing |
139
+ | `section` | | — | Publish only a nav section (e.g. `"Guide/Setup"`) |
140
+ | `page` | | — | Publish only a single page (e.g. `"guide/setup.md"`) |
141
+ | `prune` | | `false` | Delete managed pages removed from nav |
142
+ | `quiet` | | `false` | Suppress per-item progress output |
143
+
97
144
  ---
98
145
 
99
146
  ## Quick start
@@ -56,7 +56,7 @@ def _last_commit_info(abs_path: str) -> tuple[str, str] | None:
56
56
  [
57
57
  "git", "log", "-1",
58
58
  f"--format=%h{sep}%s{sep}%an{sep}%ad",
59
- "--date=relative",
59
+ "--date=short",
60
60
  "--",
61
61
  abs_path,
62
62
  ],
@@ -60,14 +60,14 @@ def test_last_commit_info_returns_sha_and_summary(tmp_path):
60
60
  fake_file = str(tmp_path / "docs" / "page.md")
61
61
  sep = "\x1f"
62
62
  with patch("mkdocs_to_confluence.transforms.footer.subprocess.run") as mock_run:
63
- mock_run.return_value.stdout = f"abc1234{sep}Fix typo{sep}Jane{sep}2 days ago\n"
63
+ mock_run.return_value.stdout = f"abc1234{sep}Fix typo{sep}Jane{sep}2024-01-15\n"
64
64
  result = _last_commit_info(fake_file)
65
65
  assert result is not None
66
66
  sha, summary = result
67
67
  assert sha == "abc1234"
68
68
  assert "Fix typo" in summary
69
69
  assert "Jane" in summary
70
- assert "2 days ago" in summary
70
+ assert "2024-01-15" in summary
71
71
 
72
72
 
73
73
  def test_last_commit_info_returns_none_when_empty(tmp_path):
@@ -121,7 +121,7 @@ def test_emit_footer_contains_edit_link():
121
121
  history_url="https://github.com/org/repo/commits/main/docs/page.md",
122
122
  commit_sha="abc1234",
123
123
  commit_url="https://github.com/org/repo/commit/abc1234",
124
- commit_summary="Fix typo · Jane · 2 days ago",
124
+ commit_summary="Fix typo · Jane · 2024-01-15",
125
125
  )
126
126
  out = emit((footer,))
127
127
  assert "Edit this page" in out
@@ -199,7 +199,7 @@ def test_emit_footer_non_ascii_encoded_as_entity():
199
199
  history_url=None,
200
200
  commit_sha=None,
201
201
  commit_url=None,
202
- commit_summary="Fix caf\u00e9 · \u00c5ngstr\u00f6m · 2 days ago",
202
+ commit_summary="Fix caf\u00e9 · \u00c5ngstr\u00f6m · 2024-01-15",
203
203
  )
204
204
  out = emit((footer,))
205
205
  assert "caf\u00e9" not in out