Description
Pages that contain diagrams from the Flowchart, PlantUML Diagrams for Confluence app export with the diagram missing entirely: no code block, no image, and no marker of any kind. The surrounding text is exported normally, so the omission is easy to miss.
docs/features.md links to this exact marketplace app and states that PlantUML is "exported as fenced PlantUML code blocks", so the documented behaviour and the actual behaviour differ.
Command:
cme pages https://company.atlassian.net/wiki/spaces/KEY/pages/123/Title
Expected: a fenced ```plantuml block per diagram, as already happens for the Server/Data Center plantuml macro.
Actual: nothing is emitted where each diagram was.
Cause
On Confluence Cloud, this app registers the macro name plantumlcloud, not plantuml. The macro_handlers map in Page.Converter.convert_div (confluence_markdown_exporter/confluence.py) dispatches plantuml only, so plantumlcloud falls through to super().convert_div(...).
It is a Connect (iframe) app, so body.view contains only an empty placeholder:
<div class="ap-container conf-macro output-block" data-macro-name="plantumlcloud" data-macro-id="...">
<div class="ap-content"> </div>
<script>...</script>
</div>
markdownify drops <script>, and ap-content is empty, so the fall-through converts the children to an empty string. The app also writes nothing usable to body.editor2.
The diagram source is present, but only in body.storage, in the macro's data parameter:
<ac:structured-macro ac:name="plantumlcloud" ac:macro-id="...">
<ac:parameter ac:name="filename">diagram.svg</ac:parameter>
<ac:parameter ac:name="data">...</ac:parameter>
<ac:parameter ac:name="compressed">true</ac:parameter>
</ac:structured-macro>
The data value decodes with the mxgraph/draw.io pipeline: base64 decode, raw DEFLATE inflate (wbits = -15), percent-decode. When the sibling compressed parameter is absent or not true, the deflate step is skipped. Confirmed against a page holding 5 such diagrams; all 5 decoded to plain @startuml ... @enduml text.
Notes
Because the macro is unhandled rather than explicitly skipped, there is no warning and no placeholder comment, so an export can lose every diagram on a page without any signal to the user.
A fix is proposed in #289.
Version
confluence-markdown-exporter 5.3.0
Confluence Version
Confluence Cloud
Description
Pages that contain diagrams from the Flowchart, PlantUML Diagrams for Confluence app export with the diagram missing entirely: no code block, no image, and no marker of any kind. The surrounding text is exported normally, so the omission is easy to miss.
docs/features.mdlinks to this exact marketplace app and states that PlantUML is "exported as fenced PlantUML code blocks", so the documented behaviour and the actual behaviour differ.Command:
Expected: a fenced
```plantumlblock per diagram, as already happens for the Server/Data Centerplantumlmacro.Actual: nothing is emitted where each diagram was.
Cause
On Confluence Cloud, this app registers the macro name
plantumlcloud, notplantuml. Themacro_handlersmap inPage.Converter.convert_div(confluence_markdown_exporter/confluence.py) dispatchesplantumlonly, soplantumlcloudfalls through tosuper().convert_div(...).It is a Connect (iframe) app, so
body.viewcontains only an empty placeholder:markdownify drops
<script>, andap-contentis empty, so the fall-through converts the children to an empty string. The app also writes nothing usable tobody.editor2.The diagram source is present, but only in
body.storage, in the macro'sdataparameter:The
datavalue decodes with the mxgraph/draw.io pipeline: base64 decode, raw DEFLATE inflate (wbits = -15), percent-decode. When the siblingcompressedparameter is absent or nottrue, the deflate step is skipped. Confirmed against a page holding 5 such diagrams; all 5 decoded to plain@startuml ... @endumltext.Notes
Because the macro is unhandled rather than explicitly skipped, there is no warning and no placeholder comment, so an export can lose every diagram on a page without any signal to the user.
A fix is proposed in #289.
Version
confluence-markdown-exporter 5.3.0
Confluence Version
Confluence Cloud