markdown-to-confluence 0.5.2__tar.gz → 0.5.3__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 (163) hide show
  1. {markdown_to_confluence-0.5.2 → markdown_to_confluence-0.5.3}/LICENSE +1 -1
  2. markdown_to_confluence-0.5.3/MANIFEST.in +13 -0
  3. {markdown_to_confluence-0.5.2/markdown_to_confluence.egg-info → markdown_to_confluence-0.5.3}/PKG-INFO +80 -4
  4. {markdown_to_confluence-0.5.2 → markdown_to_confluence-0.5.3}/README.md +79 -3
  5. {markdown_to_confluence-0.5.2 → markdown_to_confluence-0.5.3/markdown_to_confluence.egg-info}/PKG-INFO +80 -4
  6. {markdown_to_confluence-0.5.2 → markdown_to_confluence-0.5.3}/markdown_to_confluence.egg-info/SOURCES.txt +49 -5
  7. {markdown_to_confluence-0.5.2 → markdown_to_confluence-0.5.3}/md2conf/__init__.py +2 -2
  8. {markdown_to_confluence-0.5.2 → markdown_to_confluence-0.5.3}/md2conf/__main__.py +42 -24
  9. {markdown_to_confluence-0.5.2 → markdown_to_confluence-0.5.3}/md2conf/api.py +27 -8
  10. markdown_to_confluence-0.5.3/md2conf/attachment.py +72 -0
  11. markdown_to_confluence-0.5.3/md2conf/coalesce.py +43 -0
  12. {markdown_to_confluence-0.5.2 → markdown_to_confluence-0.5.3}/md2conf/collection.py +1 -1
  13. markdown_to_confluence-0.5.2/md2conf/extra.py → markdown_to_confluence-0.5.3/md2conf/compatibility.py +1 -1
  14. {markdown_to_confluence-0.5.2 → markdown_to_confluence-0.5.3}/md2conf/converter.py +232 -649
  15. {markdown_to_confluence-0.5.2 → markdown_to_confluence-0.5.3}/md2conf/csf.py +13 -11
  16. markdown_to_confluence-0.5.3/md2conf/drawio/extension.py +116 -0
  17. markdown_to_confluence-0.5.2/md2conf/drawio.py → markdown_to_confluence-0.5.3/md2conf/drawio/render.py +1 -1
  18. {markdown_to_confluence-0.5.2 → markdown_to_confluence-0.5.3}/md2conf/emoticon.py +3 -3
  19. {markdown_to_confluence-0.5.2 → markdown_to_confluence-0.5.3}/md2conf/environment.py +2 -2
  20. markdown_to_confluence-0.5.3/md2conf/extension.py +78 -0
  21. markdown_to_confluence-0.5.3/md2conf/external.py +49 -0
  22. markdown_to_confluence-0.5.3/md2conf/formatting.py +135 -0
  23. markdown_to_confluence-0.5.3/md2conf/frontmatter.py +70 -0
  24. markdown_to_confluence-0.5.3/md2conf/image.py +127 -0
  25. markdown_to_confluence-0.5.3/md2conf/latex.py +66 -0
  26. {markdown_to_confluence-0.5.2 → markdown_to_confluence-0.5.3}/md2conf/local.py +8 -8
  27. {markdown_to_confluence-0.5.2 → markdown_to_confluence-0.5.3}/md2conf/markdown.py +1 -1
  28. {markdown_to_confluence-0.5.2 → markdown_to_confluence-0.5.3}/md2conf/matcher.py +1 -1
  29. markdown_to_confluence-0.5.3/md2conf/mermaid/config.py +20 -0
  30. markdown_to_confluence-0.5.3/md2conf/mermaid/extension.py +109 -0
  31. markdown_to_confluence-0.5.2/md2conf/mermaid.py → markdown_to_confluence-0.5.3/md2conf/mermaid/render.py +10 -38
  32. markdown_to_confluence-0.5.3/md2conf/mermaid/scanner.py +55 -0
  33. {markdown_to_confluence-0.5.2 → markdown_to_confluence-0.5.3}/md2conf/metadata.py +1 -1
  34. markdown_to_confluence-0.5.2/md2conf/domain.py → markdown_to_confluence-0.5.3/md2conf/options.py +73 -16
  35. markdown_to_confluence-0.5.3/md2conf/plantuml/__init__.py +0 -0
  36. markdown_to_confluence-0.5.3/md2conf/plantuml/config.py +20 -0
  37. markdown_to_confluence-0.5.3/md2conf/plantuml/extension.py +158 -0
  38. markdown_to_confluence-0.5.3/md2conf/plantuml/render.py +139 -0
  39. markdown_to_confluence-0.5.3/md2conf/plantuml/scanner.py +56 -0
  40. markdown_to_confluence-0.5.2/md2conf/latex.py → markdown_to_confluence-0.5.3/md2conf/png.py +103 -146
  41. {markdown_to_confluence-0.5.2 → markdown_to_confluence-0.5.3}/md2conf/processor.py +32 -11
  42. {markdown_to_confluence-0.5.2 → markdown_to_confluence-0.5.3}/md2conf/publisher.py +14 -18
  43. markdown_to_confluence-0.5.3/md2conf/py.typed +0 -0
  44. markdown_to_confluence-0.5.3/md2conf/scanner.py +106 -0
  45. {markdown_to_confluence-0.5.2 → markdown_to_confluence-0.5.3}/md2conf/serializer.py +2 -2
  46. {markdown_to_confluence-0.5.2 → markdown_to_confluence-0.5.3}/md2conf/svg.py +24 -2
  47. {markdown_to_confluence-0.5.2 → markdown_to_confluence-0.5.3}/md2conf/text.py +1 -1
  48. {markdown_to_confluence-0.5.2 → markdown_to_confluence-0.5.3}/md2conf/toc.py +1 -1
  49. {markdown_to_confluence-0.5.2 → markdown_to_confluence-0.5.3}/md2conf/uri.py +1 -1
  50. {markdown_to_confluence-0.5.2 → markdown_to_confluence-0.5.3}/md2conf/xml.py +1 -1
  51. {markdown_to_confluence-0.5.2 → markdown_to_confluence-0.5.3}/pyproject.toml +4 -1
  52. {markdown_to_confluence-0.5.2 → markdown_to_confluence-0.5.3}/setup.py +1 -1
  53. markdown_to_confluence-0.5.3/tests/__init__.py +0 -0
  54. {markdown_to_confluence-0.5.2 → markdown_to_confluence-0.5.3}/tests/emoji.py +2 -4
  55. markdown_to_confluence-0.5.3/tests/relative.txt +2 -0
  56. markdown_to_confluence-0.5.3/tests/scanner/frontmatter.md +21 -0
  57. markdown_to_confluence-0.5.3/tests/scanner/id_only.md +5 -0
  58. markdown_to_confluence-0.5.3/tests/scanner/id_space_title.md +10 -0
  59. markdown_to_confluence-0.5.3/tests/source/.mdignore +7 -0
  60. {markdown_to_confluence-0.5.2 → markdown_to_confluence-0.5.3}/tests/source/alignment.md +2 -1
  61. markdown_to_confluence-0.5.3/tests/source/docs/sample.docx +0 -0
  62. markdown_to_confluence-0.5.3/tests/source/docs/sample.ods +0 -0
  63. markdown_to_confluence-0.5.3/tests/source/docs/sample.odt +0 -0
  64. markdown_to_confluence-0.5.3/tests/source/docs/sample.pdf +0 -0
  65. markdown_to_confluence-0.5.3/tests/source/docs/sample.xlsx +0 -0
  66. {markdown_to_confluence-0.5.2 → markdown_to_confluence-0.5.3}/tests/source/images.md +6 -0
  67. {markdown_to_confluence-0.5.2 → markdown_to_confluence-0.5.3}/tests/source/mermaid.md +4 -2
  68. markdown_to_confluence-0.5.3/tests/source/plantuml.md +98 -0
  69. {markdown_to_confluence-0.5.2 → markdown_to_confluence-0.5.3}/tests/source/table.md +6 -0
  70. {markdown_to_confluence-0.5.2 → markdown_to_confluence-0.5.3}/tests/target/images.xml +6 -6
  71. markdown_to_confluence-0.5.3/tests/target/mermaid/class.mmd +6 -0
  72. markdown_to_confluence-0.5.3/tests/target/mermaid/mindmap.mmd +17 -0
  73. markdown_to_confluence-0.5.3/tests/target/mermaid/pie.mmd +3 -0
  74. markdown_to_confluence-0.5.3/tests/target/mermaid/quadrant.mmd +8 -0
  75. markdown_to_confluence-0.5.3/tests/target/mermaid/sequence.mmd +9 -0
  76. markdown_to_confluence-0.5.3/tests/target/mermaid/timeline.mmd +10 -0
  77. {markdown_to_confluence-0.5.2 → markdown_to_confluence-0.5.3}/tests/target/mermaid.xml +6 -7
  78. markdown_to_confluence-0.5.3/tests/target/plantuml/class.puml +22 -0
  79. markdown_to_confluence-0.5.3/tests/target/plantuml/component.puml +20 -0
  80. markdown_to_confluence-0.5.3/tests/target/plantuml/sequence.puml +13 -0
  81. markdown_to_confluence-0.5.3/tests/target/plantuml/usecase.puml +6 -0
  82. markdown_to_confluence-0.5.3/tests/target/plantuml.xml +59 -0
  83. {markdown_to_confluence-0.5.2 → markdown_to_confluence-0.5.3}/tests/target/table.xml +3 -3
  84. {markdown_to_confluence-0.5.2 → markdown_to_confluence-0.5.3}/tests/test_conversion.py +154 -39
  85. markdown_to_confluence-0.5.3/tests/test_document.py +105 -0
  86. {markdown_to_confluence-0.5.2 → markdown_to_confluence-0.5.3}/tests/test_drawio.py +2 -2
  87. {markdown_to_confluence-0.5.2 → markdown_to_confluence-0.5.3}/tests/test_matcher.py +1 -1
  88. {markdown_to_confluence-0.5.2 → markdown_to_confluence-0.5.3}/tests/test_mermaid.py +2 -2
  89. markdown_to_confluence-0.5.3/tests/test_plantuml.py +62 -0
  90. markdown_to_confluence-0.5.3/tests/test_png.py +83 -0
  91. {markdown_to_confluence-0.5.2 → markdown_to_confluence-0.5.3}/tests/test_processor.py +7 -7
  92. {markdown_to_confluence-0.5.2 → markdown_to_confluence-0.5.3}/tests/test_scanner.py +23 -23
  93. {markdown_to_confluence-0.5.2 → markdown_to_confluence-0.5.3}/tests/test_svg.py +1 -1
  94. {markdown_to_confluence-0.5.2 → markdown_to_confluence-0.5.3}/tests/test_text.py +1 -1
  95. {markdown_to_confluence-0.5.2 → markdown_to_confluence-0.5.3}/tests/test_unit.py +44 -22
  96. {markdown_to_confluence-0.5.2 → markdown_to_confluence-0.5.3}/tests/test_xml.py +1 -1
  97. {markdown_to_confluence-0.5.2 → markdown_to_confluence-0.5.3}/tests/utility.py +1 -1
  98. markdown_to_confluence-0.5.2/MANIFEST.in +0 -8
  99. markdown_to_confluence-0.5.2/md2conf/scanner.py +0 -203
  100. {markdown_to_confluence-0.5.2 → markdown_to_confluence-0.5.3}/markdown_to_confluence.egg-info/dependency_links.txt +0 -0
  101. {markdown_to_confluence-0.5.2 → markdown_to_confluence-0.5.3}/markdown_to_confluence.egg-info/entry_points.txt +0 -0
  102. {markdown_to_confluence-0.5.2 → markdown_to_confluence-0.5.3}/markdown_to_confluence.egg-info/requires.txt +0 -0
  103. {markdown_to_confluence-0.5.2 → markdown_to_confluence-0.5.3}/markdown_to_confluence.egg-info/top_level.txt +0 -0
  104. {markdown_to_confluence-0.5.2 → markdown_to_confluence-0.5.3}/markdown_to_confluence.egg-info/zip-safe +0 -0
  105. {markdown_to_confluence-0.5.2/tests → markdown_to_confluence-0.5.3/md2conf/drawio}/__init__.py +0 -0
  106. {markdown_to_confluence-0.5.2 → markdown_to_confluence-0.5.3}/md2conf/entities.dtd +0 -0
  107. /markdown_to_confluence-0.5.2/md2conf/py.typed → /markdown_to_confluence-0.5.3/md2conf/mermaid/__init__.py +0 -0
  108. {markdown_to_confluence-0.5.2 → markdown_to_confluence-0.5.3}/md2conf/puppeteer-config.json +0 -0
  109. {markdown_to_confluence-0.5.2 → markdown_to_confluence-0.5.3}/setup.cfg +0 -0
  110. {markdown_to_confluence-0.5.2 → markdown_to_confluence-0.5.3}/tests/source/admonition.md +0 -0
  111. {markdown_to_confluence-0.5.2 → markdown_to_confluence-0.5.3}/tests/source/alert.md +0 -0
  112. {markdown_to_confluence-0.5.2 → markdown_to_confluence-0.5.3}/tests/source/anchors.md +0 -0
  113. {markdown_to_confluence-0.5.2 → markdown_to_confluence-0.5.3}/tests/source/basic.md +0 -0
  114. {markdown_to_confluence-0.5.2 → markdown_to_confluence-0.5.3}/tests/source/code.md +0 -0
  115. {markdown_to_confluence-0.5.2 → markdown_to_confluence-0.5.3}/tests/source/collapsed.md +0 -0
  116. {markdown_to_confluence-0.5.2 → markdown_to_confluence-0.5.3}/tests/source/fenced.md +0 -0
  117. {markdown_to_confluence-0.5.2 → markdown_to_confluence-0.5.3}/tests/source/figure/diagram.drawio +0 -0
  118. {markdown_to_confluence-0.5.2 → markdown_to_confluence-0.5.3}/tests/source/figure/diagram.drawio.png +0 -0
  119. {markdown_to_confluence-0.5.2 → markdown_to_confluence-0.5.3}/tests/source/figure/diagram.drawio.svg +0 -0
  120. {markdown_to_confluence-0.5.2 → markdown_to_confluence-0.5.3}/tests/source/figure/raster.png +0 -0
  121. {markdown_to_confluence-0.5.2 → markdown_to_confluence-0.5.3}/tests/source/figure/vector.svg +0 -0
  122. {markdown_to_confluence-0.5.2 → markdown_to_confluence-0.5.3}/tests/source/footnote.md +0 -0
  123. {markdown_to_confluence-0.5.2 → markdown_to_confluence-0.5.3}/tests/source/ignore.md +0 -0
  124. {markdown_to_confluence-0.5.2 → markdown_to_confluence-0.5.3}/tests/source/images/images.md +0 -0
  125. {markdown_to_confluence-0.5.2 → markdown_to_confluence-0.5.3}/tests/source/macro.md +0 -0
  126. {markdown_to_confluence-0.5.2 → markdown_to_confluence-0.5.3}/tests/source/math.md +0 -0
  127. {markdown_to_confluence-0.5.2 → markdown_to_confluence-0.5.3}/tests/source/missing.md +0 -0
  128. {markdown_to_confluence-0.5.2 → markdown_to_confluence-0.5.3}/tests/source/sections.md +0 -0
  129. {markdown_to_confluence-0.5.2 → markdown_to_confluence-0.5.3}/tests/source/skip_title_heading.md +0 -0
  130. {markdown_to_confluence-0.5.2 → markdown_to_confluence-0.5.3}/tests/source/skip_title_heading_abstract.md +0 -0
  131. {markdown_to_confluence-0.5.2 → markdown_to_confluence-0.5.3}/tests/source/skip_title_heading_frontmatter.md +0 -0
  132. {markdown_to_confluence-0.5.2 → markdown_to_confluence-0.5.3}/tests/source/skip_title_heading_multiple.md +0 -0
  133. {markdown_to_confluence-0.5.2 → markdown_to_confluence-0.5.3}/tests/source/status.md +0 -0
  134. {markdown_to_confluence-0.5.2 → markdown_to_confluence-0.5.3}/tests/source/tags.md +0 -0
  135. {markdown_to_confluence-0.5.2 → markdown_to_confluence-0.5.3}/tests/source/tasklist.md +0 -0
  136. {markdown_to_confluence-0.5.2 → markdown_to_confluence-0.5.3}/tests/source/title.md +0 -0
  137. {markdown_to_confluence-0.5.2 → markdown_to_confluence-0.5.3}/tests/source/toc.md +0 -0
  138. {markdown_to_confluence-0.5.2 → markdown_to_confluence-0.5.3}/tests/target/admonition.xml +0 -0
  139. {markdown_to_confluence-0.5.2 → markdown_to_confluence-0.5.3}/tests/target/alert.xml +0 -0
  140. {markdown_to_confluence-0.5.2 → markdown_to_confluence-0.5.3}/tests/target/alignment.xml +0 -0
  141. {markdown_to_confluence-0.5.2 → markdown_to_confluence-0.5.3}/tests/target/anchors.xml +0 -0
  142. {markdown_to_confluence-0.5.2 → markdown_to_confluence-0.5.3}/tests/target/basic.xml +0 -0
  143. {markdown_to_confluence-0.5.2 → markdown_to_confluence-0.5.3}/tests/target/code.xml +0 -0
  144. {markdown_to_confluence-0.5.2 → markdown_to_confluence-0.5.3}/tests/target/collapsed.xml +0 -0
  145. {markdown_to_confluence-0.5.2 → markdown_to_confluence-0.5.3}/tests/target/fenced.xml +0 -0
  146. {markdown_to_confluence-0.5.2 → markdown_to_confluence-0.5.3}/tests/target/footnote.xml +0 -0
  147. {markdown_to_confluence-0.5.2 → markdown_to_confluence-0.5.3}/tests/target/images/images.xml +0 -0
  148. {markdown_to_confluence-0.5.2 → markdown_to_confluence-0.5.3}/tests/target/macro.xml +0 -0
  149. {markdown_to_confluence-0.5.2 → markdown_to_confluence-0.5.3}/tests/target/math.xml +0 -0
  150. {markdown_to_confluence-0.5.2 → markdown_to_confluence-0.5.3}/tests/target/missing.xml +0 -0
  151. {markdown_to_confluence-0.5.2 → markdown_to_confluence-0.5.3}/tests/target/panel.xml +0 -0
  152. {markdown_to_confluence-0.5.2 → markdown_to_confluence-0.5.3}/tests/target/sections.xml +0 -0
  153. {markdown_to_confluence-0.5.2 → markdown_to_confluence-0.5.3}/tests/target/skip_title_heading.xml +0 -0
  154. {markdown_to_confluence-0.5.2 → markdown_to_confluence-0.5.3}/tests/target/skip_title_heading_abstract.xml +0 -0
  155. {markdown_to_confluence-0.5.2 → markdown_to_confluence-0.5.3}/tests/target/skip_title_heading_abstract_removed.xml +0 -0
  156. {markdown_to_confluence-0.5.2 → markdown_to_confluence-0.5.3}/tests/target/skip_title_heading_frontmatter.xml +0 -0
  157. {markdown_to_confluence-0.5.2 → markdown_to_confluence-0.5.3}/tests/target/skip_title_heading_multiple.xml +0 -0
  158. {markdown_to_confluence-0.5.2 → markdown_to_confluence-0.5.3}/tests/target/skip_title_heading_preserved.xml +0 -0
  159. {markdown_to_confluence-0.5.2 → markdown_to_confluence-0.5.3}/tests/target/skip_title_heading_removed.xml +0 -0
  160. {markdown_to_confluence-0.5.2 → markdown_to_confluence-0.5.3}/tests/target/status.xml +0 -0
  161. {markdown_to_confluence-0.5.2 → markdown_to_confluence-0.5.3}/tests/target/tags.xml +0 -0
  162. {markdown_to_confluence-0.5.2 → markdown_to_confluence-0.5.3}/tests/target/tasklist.xml +0 -0
  163. {markdown_to_confluence-0.5.2 → markdown_to_confluence-0.5.3}/tests/target/toc.xml +0 -0
@@ -1,6 +1,6 @@
1
1
  MIT License
2
2
 
3
- Copyright (c) 2022-2025 Levente Hunyadi
3
+ Copyright (c) 2022-2026 Levente Hunyadi
4
4
 
5
5
  Permission is hereby granted, free of charge, to any person obtaining a copy
6
6
  of this software and associated documentation files (the "Software"), to deal
@@ -0,0 +1,13 @@
1
+ recursive-include tests *.py
2
+ recursive-include tests *.md
3
+ recursive-include tests *.txt
4
+ recursive-include tests .mdignore
5
+ recursive-include tests/source *.drawio
6
+ recursive-include tests/source *.png
7
+ recursive-include tests/source *.svg
8
+ include tests/source/docs/sample.*
9
+ exclude tests/source/emoji.md
10
+ recursive-include tests/target *.xml
11
+ recursive-include tests/target *.mmd
12
+ recursive-include tests/target *.puml
13
+ exclude tests/target/emoji.xml
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: markdown-to-confluence
3
- Version: 0.5.2
3
+ Version: 0.5.3
4
4
  Summary: Publish Markdown files to Confluence wiki
5
5
  Author-email: Levente Hunyadi <hunyadi@gmail.com>
6
6
  Maintainer-email: Levente Hunyadi <hunyadi@gmail.com>
@@ -98,6 +98,15 @@ pip install markdown-to-confluence
98
98
  npm install -g @mermaid-js/mermaid-cli
99
99
  ```
100
100
 
101
+ **Optional.** Pre-rendering PlantUML diagrams into PNG or SVG images requires Java, Graphviz and [PlantUML](https://plantuml.com/). (Refer to `--render-plantuml`.)
102
+
103
+ 1. **Install Java**: Version 8 or later from [Adoptium](https://adoptium.net/) or [Oracle](https://www.oracle.com/java/technologies/downloads/)
104
+ 2. **Install Graphviz**: Required for most diagram types in PlantUML (except sequence diagrams)
105
+ * **Ubuntu/Debian**: `sudo apt-get install Graphviz`
106
+ * **macOS**: `brew install graphviz`
107
+ * **Windows**: Download from [graphviz.org](https://graphviz.org/download/)
108
+ 3. **Download PlantUML JAR**: Download [plantuml.jar](https://github.com/plantuml/plantuml/releases) and set `PLANTUML_JAR` environment variable to point to it
109
+
101
110
  **Optional.** Converting formulas and equations to PNG or SVG images requires [Matplotlib](https://matplotlib.org/):
102
111
 
103
112
  ```sh
@@ -112,7 +121,11 @@ As authors of *md2conf*, we don't endorse or support any particular Confluence m
112
121
 
113
122
  **Optional.** Displaying Mermaid diagrams in Confluence without pre-rendering in the synchronization phase requires a [marketplace app](https://marketplace.atlassian.com/apps/1226567/mermaid-diagrams-for-confluence). (Refer to `--no-render-mermaid`.)
114
123
 
115
- **Optional.** Displaying formulas and equations in Confluence requires [marketplace app](https://marketplace.atlassian.com/apps/1226109/latex-math-for-confluence-math-formula-equations), refer to [LaTeX Math for Confluence - Math Formula & Equations](https://help.narva.net/latex-math-for-confluence/).
124
+ **Optional.** PlantUML diagrams are embedded with compressed source data and are displayed using the [PlantUML Diagrams for Confluence](https://marketplace.atlassian.com/apps/1215115/plantuml-diagrams-for-confluence) app (if installed). (Refer to `--no-render-plantuml`.)
125
+
126
+ Installing `plantuml.jar` (see above) helps display embedded diagrams with pre-calculated optimal dimensions.
127
+
128
+ **Optional.** Displaying formulas and equations in Confluence requires [marketplace app](https://marketplace.atlassian.com/apps/1226109/latex-math-for-confluence-math-formula-equations), refer to [LaTeX Math for Confluence - Math Formula & Equations](https://help.narva.net/latex-math-for-confluence/). (Refer to `--no-render-latex`.)
116
129
 
117
130
  ## Getting started
118
131
 
@@ -218,7 +231,9 @@ Alternatively, use the `--generated-by GENERATED_BY` option. The tag takes prece
218
231
  The generated-by text can also be templated with the following variables:
219
232
 
220
233
  - `%{filename}`: the name of the Markdown file
221
- - `%{filepath}`: the path of the Markdown file relative to the *source root*
234
+ - `%{filestem}`: the name of the Markdown file without the extension
235
+ - `%{filepath}`: the path of the Markdown file relative to the _source root_
236
+ - `%{filedir}`: the dirname of the `%{filepath}` (the path without the filename)
222
237
 
223
238
  When publishing a directory hierarchy, the *source root* is the directory in which *md2conf* is launched. When publishing a single file, this is the directory in which the Markdown file resides.
224
239
 
@@ -372,6 +387,11 @@ Likewise, if you have a nested list, make sure that nested items are indented by
372
387
 
373
388
  Local images referenced in a Markdown file are automatically published to Confluence as attachments to the page.
374
389
 
390
+ * Relative paths (e.g. `path/to/image.png` or `../to/image.png`) resolve to absolute paths w.r.t. the Markdown document location.
391
+ * Absolute paths (e.g. `/path/to/image.png`) are interpreted w.r.t. to the synchronization root (typically the shell current directory).
392
+
393
+ As a security measure, resolved paths can only reference files that are in the directory hierarchy of the synchronization root; you can't use `..` to leave the top-level directory of the synchronization root.
394
+
375
395
  Unfortunately, Confluence struggles with SVG images, e.g. they may only show in *edit* mode, display in a wrong size or text labels in the image may be truncated. (This seems to be a known issue in Confluence.) In order to mitigate the issue, whenever *md2conf* encounters a reference to an SVG image in a Markdown file, it checks whether a corresponding PNG image also exists in the same directory, and if a PNG image is found, it is published instead.
376
396
 
377
397
  External images referenced with an absolute URL retain the original URL.
@@ -605,7 +625,9 @@ Specifically, image references for status labels (e.g. `![My label][STATUS-RED]`
605
625
 
606
626
  ### Running the tool
607
627
 
608
- You execute the command-line tool `md2conf` to synchronize the Markdown file with Confluence:
628
+ #### Command line
629
+
630
+ You can synchronize a (directory of) Markdown file(s) with Confluence using the command-line tool `md2conf`:
609
631
 
610
632
  ```sh
611
633
  $ python3 -m md2conf sample/index.md
@@ -643,6 +665,8 @@ options:
643
665
  --no-render-drawio Upload draw.io diagram sources as Confluence page attachments. (Marketplace app required to display.)
644
666
  --render-mermaid Render Mermaid diagrams as image files. (Installed utility required to convert.)
645
667
  --no-render-mermaid Upload Mermaid diagram sources as Confluence page attachments. (Marketplace app required to display.)
668
+ --render-plantuml Render PlantUML diagrams as image files. (Installed utility required to convert.)
669
+ --no-render-plantuml Upload PlantUML diagram sources as Confluence page attachments. (Marketplace app required to display.)
646
670
  --render-latex Render LaTeX formulas as image files. (Matplotlib required to convert.)
647
671
  --no-render-latex Inline LaTeX formulas in Confluence page. (Marketplace app required to display.)
648
672
  --diagram-output-format {png,svg}
@@ -667,6 +691,58 @@ options:
667
691
  Apply custom headers to all Confluence API requests.
668
692
  ```
669
693
 
694
+ #### Python
695
+
696
+ *md2conf* has a Python interface. Create a `ConnectionProperties` object to set connection parameters to the Confluence server, and a `DocumentOptions` object to configure how Markdown files are converted into pages on a Confluence wiki site. Open a connection to the Confluence server with the context manager `ConfluenceAPI`, and instantiate a `Publisher` to start converting documents.
697
+
698
+ ```python
699
+ from md2conf.api import ConfluenceAPI
700
+ from md2conf.environment import ConnectionProperties
701
+ from md2conf.options import ConverterOptions, DocumentOptions, ImageLayoutOptions, LayoutOptions, TableLayoutOptions
702
+ from md2conf.publisher import Publisher
703
+
704
+ properties = ConnectionProperties(
705
+ api_url=...,
706
+ domain=...,
707
+ base_path=...,
708
+ user_name=...,
709
+ api_key=...,
710
+ space_key=...,
711
+ headers=...,
712
+ )
713
+ options = DocumentOptions(
714
+ root_page_id=...,
715
+ keep_hierarchy=...,
716
+ title_prefix=...,
717
+ generated_by=...,
718
+ converter=ConverterOptions(
719
+ heading_anchors=...,
720
+ ignore_invalid_url=...,
721
+ skip_title_heading=...,
722
+ prefer_raster=...,
723
+ render_drawio=...,
724
+ render_mermaid=...,
725
+ render_plantuml=...,
726
+ render_latex=...,
727
+ diagram_output_format=...,
728
+ webui_links=...,
729
+ use_panel=...,
730
+ layout=LayoutOptions(
731
+ image=ImageLayoutOptions(
732
+ alignment=...,
733
+ max_width=...,
734
+ ),
735
+ table=TableLayoutOptions(
736
+ width=...,
737
+ display_mode=...,
738
+ ),
739
+ ),
740
+ ),
741
+ )
742
+ with ConfluenceAPI(properties) as api:
743
+ Publisher(api, options).process(mdpath)
744
+ ```
745
+
670
746
  ### Confluence REST API v1 vs. v2
671
747
 
672
748
  *md2conf* version 0.3.0 has switched to using [Confluence REST API v2](https://developer.atlassian.com/cloud/confluence/rest/v2/) for API calls such as retrieving current page content. Earlier versions used [Confluence REST API v1](https://developer.atlassian.com/cloud/confluence/rest/v1/) exclusively. Unfortunately, Atlassian has decommissioned Confluence REST API v1 for several endpoints in Confluence Cloud as of due date March 31, 2025, and we don't have access to an environment where we could test retired v1 endpoints.
@@ -52,6 +52,15 @@ pip install markdown-to-confluence
52
52
  npm install -g @mermaid-js/mermaid-cli
53
53
  ```
54
54
 
55
+ **Optional.** Pre-rendering PlantUML diagrams into PNG or SVG images requires Java, Graphviz and [PlantUML](https://plantuml.com/). (Refer to `--render-plantuml`.)
56
+
57
+ 1. **Install Java**: Version 8 or later from [Adoptium](https://adoptium.net/) or [Oracle](https://www.oracle.com/java/technologies/downloads/)
58
+ 2. **Install Graphviz**: Required for most diagram types in PlantUML (except sequence diagrams)
59
+ * **Ubuntu/Debian**: `sudo apt-get install Graphviz`
60
+ * **macOS**: `brew install graphviz`
61
+ * **Windows**: Download from [graphviz.org](https://graphviz.org/download/)
62
+ 3. **Download PlantUML JAR**: Download [plantuml.jar](https://github.com/plantuml/plantuml/releases) and set `PLANTUML_JAR` environment variable to point to it
63
+
55
64
  **Optional.** Converting formulas and equations to PNG or SVG images requires [Matplotlib](https://matplotlib.org/):
56
65
 
57
66
  ```sh
@@ -66,7 +75,11 @@ As authors of *md2conf*, we don't endorse or support any particular Confluence m
66
75
 
67
76
  **Optional.** Displaying Mermaid diagrams in Confluence without pre-rendering in the synchronization phase requires a [marketplace app](https://marketplace.atlassian.com/apps/1226567/mermaid-diagrams-for-confluence). (Refer to `--no-render-mermaid`.)
68
77
 
69
- **Optional.** Displaying formulas and equations in Confluence requires [marketplace app](https://marketplace.atlassian.com/apps/1226109/latex-math-for-confluence-math-formula-equations), refer to [LaTeX Math for Confluence - Math Formula & Equations](https://help.narva.net/latex-math-for-confluence/).
78
+ **Optional.** PlantUML diagrams are embedded with compressed source data and are displayed using the [PlantUML Diagrams for Confluence](https://marketplace.atlassian.com/apps/1215115/plantuml-diagrams-for-confluence) app (if installed). (Refer to `--no-render-plantuml`.)
79
+
80
+ Installing `plantuml.jar` (see above) helps display embedded diagrams with pre-calculated optimal dimensions.
81
+
82
+ **Optional.** Displaying formulas and equations in Confluence requires [marketplace app](https://marketplace.atlassian.com/apps/1226109/latex-math-for-confluence-math-formula-equations), refer to [LaTeX Math for Confluence - Math Formula & Equations](https://help.narva.net/latex-math-for-confluence/). (Refer to `--no-render-latex`.)
70
83
 
71
84
  ## Getting started
72
85
 
@@ -172,7 +185,9 @@ Alternatively, use the `--generated-by GENERATED_BY` option. The tag takes prece
172
185
  The generated-by text can also be templated with the following variables:
173
186
 
174
187
  - `%{filename}`: the name of the Markdown file
175
- - `%{filepath}`: the path of the Markdown file relative to the *source root*
188
+ - `%{filestem}`: the name of the Markdown file without the extension
189
+ - `%{filepath}`: the path of the Markdown file relative to the _source root_
190
+ - `%{filedir}`: the dirname of the `%{filepath}` (the path without the filename)
176
191
 
177
192
  When publishing a directory hierarchy, the *source root* is the directory in which *md2conf* is launched. When publishing a single file, this is the directory in which the Markdown file resides.
178
193
 
@@ -326,6 +341,11 @@ Likewise, if you have a nested list, make sure that nested items are indented by
326
341
 
327
342
  Local images referenced in a Markdown file are automatically published to Confluence as attachments to the page.
328
343
 
344
+ * Relative paths (e.g. `path/to/image.png` or `../to/image.png`) resolve to absolute paths w.r.t. the Markdown document location.
345
+ * Absolute paths (e.g. `/path/to/image.png`) are interpreted w.r.t. to the synchronization root (typically the shell current directory).
346
+
347
+ As a security measure, resolved paths can only reference files that are in the directory hierarchy of the synchronization root; you can't use `..` to leave the top-level directory of the synchronization root.
348
+
329
349
  Unfortunately, Confluence struggles with SVG images, e.g. they may only show in *edit* mode, display in a wrong size or text labels in the image may be truncated. (This seems to be a known issue in Confluence.) In order to mitigate the issue, whenever *md2conf* encounters a reference to an SVG image in a Markdown file, it checks whether a corresponding PNG image also exists in the same directory, and if a PNG image is found, it is published instead.
330
350
 
331
351
  External images referenced with an absolute URL retain the original URL.
@@ -559,7 +579,9 @@ Specifically, image references for status labels (e.g. `![My label][STATUS-RED]`
559
579
 
560
580
  ### Running the tool
561
581
 
562
- You execute the command-line tool `md2conf` to synchronize the Markdown file with Confluence:
582
+ #### Command line
583
+
584
+ You can synchronize a (directory of) Markdown file(s) with Confluence using the command-line tool `md2conf`:
563
585
 
564
586
  ```sh
565
587
  $ python3 -m md2conf sample/index.md
@@ -597,6 +619,8 @@ options:
597
619
  --no-render-drawio Upload draw.io diagram sources as Confluence page attachments. (Marketplace app required to display.)
598
620
  --render-mermaid Render Mermaid diagrams as image files. (Installed utility required to convert.)
599
621
  --no-render-mermaid Upload Mermaid diagram sources as Confluence page attachments. (Marketplace app required to display.)
622
+ --render-plantuml Render PlantUML diagrams as image files. (Installed utility required to convert.)
623
+ --no-render-plantuml Upload PlantUML diagram sources as Confluence page attachments. (Marketplace app required to display.)
600
624
  --render-latex Render LaTeX formulas as image files. (Matplotlib required to convert.)
601
625
  --no-render-latex Inline LaTeX formulas in Confluence page. (Marketplace app required to display.)
602
626
  --diagram-output-format {png,svg}
@@ -621,6 +645,58 @@ options:
621
645
  Apply custom headers to all Confluence API requests.
622
646
  ```
623
647
 
648
+ #### Python
649
+
650
+ *md2conf* has a Python interface. Create a `ConnectionProperties` object to set connection parameters to the Confluence server, and a `DocumentOptions` object to configure how Markdown files are converted into pages on a Confluence wiki site. Open a connection to the Confluence server with the context manager `ConfluenceAPI`, and instantiate a `Publisher` to start converting documents.
651
+
652
+ ```python
653
+ from md2conf.api import ConfluenceAPI
654
+ from md2conf.environment import ConnectionProperties
655
+ from md2conf.options import ConverterOptions, DocumentOptions, ImageLayoutOptions, LayoutOptions, TableLayoutOptions
656
+ from md2conf.publisher import Publisher
657
+
658
+ properties = ConnectionProperties(
659
+ api_url=...,
660
+ domain=...,
661
+ base_path=...,
662
+ user_name=...,
663
+ api_key=...,
664
+ space_key=...,
665
+ headers=...,
666
+ )
667
+ options = DocumentOptions(
668
+ root_page_id=...,
669
+ keep_hierarchy=...,
670
+ title_prefix=...,
671
+ generated_by=...,
672
+ converter=ConverterOptions(
673
+ heading_anchors=...,
674
+ ignore_invalid_url=...,
675
+ skip_title_heading=...,
676
+ prefer_raster=...,
677
+ render_drawio=...,
678
+ render_mermaid=...,
679
+ render_plantuml=...,
680
+ render_latex=...,
681
+ diagram_output_format=...,
682
+ webui_links=...,
683
+ use_panel=...,
684
+ layout=LayoutOptions(
685
+ image=ImageLayoutOptions(
686
+ alignment=...,
687
+ max_width=...,
688
+ ),
689
+ table=TableLayoutOptions(
690
+ width=...,
691
+ display_mode=...,
692
+ ),
693
+ ),
694
+ ),
695
+ )
696
+ with ConfluenceAPI(properties) as api:
697
+ Publisher(api, options).process(mdpath)
698
+ ```
699
+
624
700
  ### Confluence REST API v1 vs. v2
625
701
 
626
702
  *md2conf* version 0.3.0 has switched to using [Confluence REST API v2](https://developer.atlassian.com/cloud/confluence/rest/v2/) for API calls such as retrieving current page content. Earlier versions used [Confluence REST API v1](https://developer.atlassian.com/cloud/confluence/rest/v1/) exclusively. Unfortunately, Atlassian has decommissioned Confluence REST API v1 for several endpoints in Confluence Cloud as of due date March 31, 2025, and we don't have access to an environment where we could test retired v1 endpoints.
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: markdown-to-confluence
3
- Version: 0.5.2
3
+ Version: 0.5.3
4
4
  Summary: Publish Markdown files to Confluence wiki
5
5
  Author-email: Levente Hunyadi <hunyadi@gmail.com>
6
6
  Maintainer-email: Levente Hunyadi <hunyadi@gmail.com>
@@ -98,6 +98,15 @@ pip install markdown-to-confluence
98
98
  npm install -g @mermaid-js/mermaid-cli
99
99
  ```
100
100
 
101
+ **Optional.** Pre-rendering PlantUML diagrams into PNG or SVG images requires Java, Graphviz and [PlantUML](https://plantuml.com/). (Refer to `--render-plantuml`.)
102
+
103
+ 1. **Install Java**: Version 8 or later from [Adoptium](https://adoptium.net/) or [Oracle](https://www.oracle.com/java/technologies/downloads/)
104
+ 2. **Install Graphviz**: Required for most diagram types in PlantUML (except sequence diagrams)
105
+ * **Ubuntu/Debian**: `sudo apt-get install Graphviz`
106
+ * **macOS**: `brew install graphviz`
107
+ * **Windows**: Download from [graphviz.org](https://graphviz.org/download/)
108
+ 3. **Download PlantUML JAR**: Download [plantuml.jar](https://github.com/plantuml/plantuml/releases) and set `PLANTUML_JAR` environment variable to point to it
109
+
101
110
  **Optional.** Converting formulas and equations to PNG or SVG images requires [Matplotlib](https://matplotlib.org/):
102
111
 
103
112
  ```sh
@@ -112,7 +121,11 @@ As authors of *md2conf*, we don't endorse or support any particular Confluence m
112
121
 
113
122
  **Optional.** Displaying Mermaid diagrams in Confluence without pre-rendering in the synchronization phase requires a [marketplace app](https://marketplace.atlassian.com/apps/1226567/mermaid-diagrams-for-confluence). (Refer to `--no-render-mermaid`.)
114
123
 
115
- **Optional.** Displaying formulas and equations in Confluence requires [marketplace app](https://marketplace.atlassian.com/apps/1226109/latex-math-for-confluence-math-formula-equations), refer to [LaTeX Math for Confluence - Math Formula & Equations](https://help.narva.net/latex-math-for-confluence/).
124
+ **Optional.** PlantUML diagrams are embedded with compressed source data and are displayed using the [PlantUML Diagrams for Confluence](https://marketplace.atlassian.com/apps/1215115/plantuml-diagrams-for-confluence) app (if installed). (Refer to `--no-render-plantuml`.)
125
+
126
+ Installing `plantuml.jar` (see above) helps display embedded diagrams with pre-calculated optimal dimensions.
127
+
128
+ **Optional.** Displaying formulas and equations in Confluence requires [marketplace app](https://marketplace.atlassian.com/apps/1226109/latex-math-for-confluence-math-formula-equations), refer to [LaTeX Math for Confluence - Math Formula & Equations](https://help.narva.net/latex-math-for-confluence/). (Refer to `--no-render-latex`.)
116
129
 
117
130
  ## Getting started
118
131
 
@@ -218,7 +231,9 @@ Alternatively, use the `--generated-by GENERATED_BY` option. The tag takes prece
218
231
  The generated-by text can also be templated with the following variables:
219
232
 
220
233
  - `%{filename}`: the name of the Markdown file
221
- - `%{filepath}`: the path of the Markdown file relative to the *source root*
234
+ - `%{filestem}`: the name of the Markdown file without the extension
235
+ - `%{filepath}`: the path of the Markdown file relative to the _source root_
236
+ - `%{filedir}`: the dirname of the `%{filepath}` (the path without the filename)
222
237
 
223
238
  When publishing a directory hierarchy, the *source root* is the directory in which *md2conf* is launched. When publishing a single file, this is the directory in which the Markdown file resides.
224
239
 
@@ -372,6 +387,11 @@ Likewise, if you have a nested list, make sure that nested items are indented by
372
387
 
373
388
  Local images referenced in a Markdown file are automatically published to Confluence as attachments to the page.
374
389
 
390
+ * Relative paths (e.g. `path/to/image.png` or `../to/image.png`) resolve to absolute paths w.r.t. the Markdown document location.
391
+ * Absolute paths (e.g. `/path/to/image.png`) are interpreted w.r.t. to the synchronization root (typically the shell current directory).
392
+
393
+ As a security measure, resolved paths can only reference files that are in the directory hierarchy of the synchronization root; you can't use `..` to leave the top-level directory of the synchronization root.
394
+
375
395
  Unfortunately, Confluence struggles with SVG images, e.g. they may only show in *edit* mode, display in a wrong size or text labels in the image may be truncated. (This seems to be a known issue in Confluence.) In order to mitigate the issue, whenever *md2conf* encounters a reference to an SVG image in a Markdown file, it checks whether a corresponding PNG image also exists in the same directory, and if a PNG image is found, it is published instead.
376
396
 
377
397
  External images referenced with an absolute URL retain the original URL.
@@ -605,7 +625,9 @@ Specifically, image references for status labels (e.g. `![My label][STATUS-RED]`
605
625
 
606
626
  ### Running the tool
607
627
 
608
- You execute the command-line tool `md2conf` to synchronize the Markdown file with Confluence:
628
+ #### Command line
629
+
630
+ You can synchronize a (directory of) Markdown file(s) with Confluence using the command-line tool `md2conf`:
609
631
 
610
632
  ```sh
611
633
  $ python3 -m md2conf sample/index.md
@@ -643,6 +665,8 @@ options:
643
665
  --no-render-drawio Upload draw.io diagram sources as Confluence page attachments. (Marketplace app required to display.)
644
666
  --render-mermaid Render Mermaid diagrams as image files. (Installed utility required to convert.)
645
667
  --no-render-mermaid Upload Mermaid diagram sources as Confluence page attachments. (Marketplace app required to display.)
668
+ --render-plantuml Render PlantUML diagrams as image files. (Installed utility required to convert.)
669
+ --no-render-plantuml Upload PlantUML diagram sources as Confluence page attachments. (Marketplace app required to display.)
646
670
  --render-latex Render LaTeX formulas as image files. (Matplotlib required to convert.)
647
671
  --no-render-latex Inline LaTeX formulas in Confluence page. (Marketplace app required to display.)
648
672
  --diagram-output-format {png,svg}
@@ -667,6 +691,58 @@ options:
667
691
  Apply custom headers to all Confluence API requests.
668
692
  ```
669
693
 
694
+ #### Python
695
+
696
+ *md2conf* has a Python interface. Create a `ConnectionProperties` object to set connection parameters to the Confluence server, and a `DocumentOptions` object to configure how Markdown files are converted into pages on a Confluence wiki site. Open a connection to the Confluence server with the context manager `ConfluenceAPI`, and instantiate a `Publisher` to start converting documents.
697
+
698
+ ```python
699
+ from md2conf.api import ConfluenceAPI
700
+ from md2conf.environment import ConnectionProperties
701
+ from md2conf.options import ConverterOptions, DocumentOptions, ImageLayoutOptions, LayoutOptions, TableLayoutOptions
702
+ from md2conf.publisher import Publisher
703
+
704
+ properties = ConnectionProperties(
705
+ api_url=...,
706
+ domain=...,
707
+ base_path=...,
708
+ user_name=...,
709
+ api_key=...,
710
+ space_key=...,
711
+ headers=...,
712
+ )
713
+ options = DocumentOptions(
714
+ root_page_id=...,
715
+ keep_hierarchy=...,
716
+ title_prefix=...,
717
+ generated_by=...,
718
+ converter=ConverterOptions(
719
+ heading_anchors=...,
720
+ ignore_invalid_url=...,
721
+ skip_title_heading=...,
722
+ prefer_raster=...,
723
+ render_drawio=...,
724
+ render_mermaid=...,
725
+ render_plantuml=...,
726
+ render_latex=...,
727
+ diagram_output_format=...,
728
+ webui_links=...,
729
+ use_panel=...,
730
+ layout=LayoutOptions(
731
+ image=ImageLayoutOptions(
732
+ alignment=...,
733
+ max_width=...,
734
+ ),
735
+ table=TableLayoutOptions(
736
+ width=...,
737
+ display_mode=...,
738
+ ),
739
+ ),
740
+ ),
741
+ )
742
+ with ConfluenceAPI(properties) as api:
743
+ Publisher(api, options).process(mdpath)
744
+ ```
745
+
670
746
  ### Confluence REST API v1 vs. v2
671
747
 
672
748
  *md2conf* version 0.3.0 has switched to using [Confluence REST API v2](https://developer.atlassian.com/cloud/confluence/rest/v2/) for API calls such as retrieving current page content. Earlier versions used [Confluence REST API v1](https://developer.atlassian.com/cloud/confluence/rest/v1/) exclusively. Unfortunately, Atlassian has decommissioned Confluence REST API v1 for several endpoints in Confluence Cloud as of due date March 31, 2025, and we don't have access to an environment where we could test retired v1 endpoints.
@@ -13,21 +13,27 @@ markdown_to_confluence.egg-info/zip-safe
13
13
  md2conf/__init__.py
14
14
  md2conf/__main__.py
15
15
  md2conf/api.py
16
+ md2conf/attachment.py
17
+ md2conf/coalesce.py
16
18
  md2conf/collection.py
19
+ md2conf/compatibility.py
17
20
  md2conf/converter.py
18
21
  md2conf/csf.py
19
- md2conf/domain.py
20
- md2conf/drawio.py
21
22
  md2conf/emoticon.py
22
23
  md2conf/entities.dtd
23
24
  md2conf/environment.py
24
- md2conf/extra.py
25
+ md2conf/extension.py
26
+ md2conf/external.py
27
+ md2conf/formatting.py
28
+ md2conf/frontmatter.py
29
+ md2conf/image.py
25
30
  md2conf/latex.py
26
31
  md2conf/local.py
27
32
  md2conf/markdown.py
28
33
  md2conf/matcher.py
29
- md2conf/mermaid.py
30
34
  md2conf/metadata.py
35
+ md2conf/options.py
36
+ md2conf/png.py
31
37
  md2conf/processor.py
32
38
  md2conf/publisher.py
33
39
  md2conf/puppeteer-config.json
@@ -39,12 +45,29 @@ md2conf/text.py
39
45
  md2conf/toc.py
40
46
  md2conf/uri.py
41
47
  md2conf/xml.py
48
+ md2conf/drawio/__init__.py
49
+ md2conf/drawio/extension.py
50
+ md2conf/drawio/render.py
51
+ md2conf/mermaid/__init__.py
52
+ md2conf/mermaid/config.py
53
+ md2conf/mermaid/extension.py
54
+ md2conf/mermaid/render.py
55
+ md2conf/mermaid/scanner.py
56
+ md2conf/plantuml/__init__.py
57
+ md2conf/plantuml/config.py
58
+ md2conf/plantuml/extension.py
59
+ md2conf/plantuml/render.py
60
+ md2conf/plantuml/scanner.py
42
61
  tests/__init__.py
43
62
  tests/emoji.py
63
+ tests/relative.txt
44
64
  tests/test_conversion.py
65
+ tests/test_document.py
45
66
  tests/test_drawio.py
46
67
  tests/test_matcher.py
47
68
  tests/test_mermaid.py
69
+ tests/test_plantuml.py
70
+ tests/test_png.py
48
71
  tests/test_processor.py
49
72
  tests/test_scanner.py
50
73
  tests/test_svg.py
@@ -52,6 +75,10 @@ tests/test_text.py
52
75
  tests/test_unit.py
53
76
  tests/test_xml.py
54
77
  tests/utility.py
78
+ tests/scanner/frontmatter.md
79
+ tests/scanner/id_only.md
80
+ tests/scanner/id_space_title.md
81
+ tests/source/.mdignore
55
82
  tests/source/admonition.md
56
83
  tests/source/alert.md
57
84
  tests/source/alignment.md
@@ -67,6 +94,7 @@ tests/source/macro.md
67
94
  tests/source/math.md
68
95
  tests/source/mermaid.md
69
96
  tests/source/missing.md
97
+ tests/source/plantuml.md
70
98
  tests/source/sections.md
71
99
  tests/source/skip_title_heading.md
72
100
  tests/source/skip_title_heading_abstract.md
@@ -78,6 +106,11 @@ tests/source/tags.md
78
106
  tests/source/tasklist.md
79
107
  tests/source/title.md
80
108
  tests/source/toc.md
109
+ tests/source/docs/sample.docx
110
+ tests/source/docs/sample.ods
111
+ tests/source/docs/sample.odt
112
+ tests/source/docs/sample.pdf
113
+ tests/source/docs/sample.xlsx
81
114
  tests/source/figure/diagram.drawio
82
115
  tests/source/figure/diagram.drawio.png
83
116
  tests/source/figure/diagram.drawio.svg
@@ -99,6 +132,7 @@ tests/target/math.xml
99
132
  tests/target/mermaid.xml
100
133
  tests/target/missing.xml
101
134
  tests/target/panel.xml
135
+ tests/target/plantuml.xml
102
136
  tests/target/sections.xml
103
137
  tests/target/skip_title_heading.xml
104
138
  tests/target/skip_title_heading_abstract.xml
@@ -112,4 +146,14 @@ tests/target/table.xml
112
146
  tests/target/tags.xml
113
147
  tests/target/tasklist.xml
114
148
  tests/target/toc.xml
115
- tests/target/images/images.xml
149
+ tests/target/images/images.xml
150
+ tests/target/mermaid/class.mmd
151
+ tests/target/mermaid/mindmap.mmd
152
+ tests/target/mermaid/pie.mmd
153
+ tests/target/mermaid/quadrant.mmd
154
+ tests/target/mermaid/sequence.mmd
155
+ tests/target/mermaid/timeline.mmd
156
+ tests/target/plantuml/class.puml
157
+ tests/target/plantuml/component.puml
158
+ tests/target/plantuml/sequence.puml
159
+ tests/target/plantuml/usecase.puml
@@ -5,9 +5,9 @@ Parses Markdown files, converts Markdown content into the Confluence Storage For
5
5
  Confluence API endpoints to upload images and content.
6
6
  """
7
7
 
8
- __version__ = "0.5.2"
8
+ __version__ = "0.5.3"
9
9
  __author__ = "Levente Hunyadi"
10
- __copyright__ = "Copyright 2022-2025, Levente Hunyadi"
10
+ __copyright__ = "Copyright 2022-2026, Levente Hunyadi"
11
11
  __license__ = "MIT"
12
12
  __maintainer__ = "Levente Hunyadi"
13
13
  __status__ = "Production"