Supported Extensions & Macros
acs2md uses the same conversion engine as ac2any. That engine recognizes a broad catalog of Confluence extensions, marketplace-app macros, embeds, and media types and decides, element by element, whether to render real content from Confluence or preserve the original element as a safe HTML comment.
All extension handling is enabled by default. Caching is shared across pages in the same space conversion, so page-listing macros can reuse resolved data instead of repeating API calls. If one element still cannot be resolved, it falls back to an HTML comment and the rest of the space continues converting.
Supported categories
| Category | What acs2md renders | Operational note |
|---|---|---|
| Images and media | Inline images, Confluence-hosted media files, and non-image attachments such as PDF, Office, and archive files | Non-image attachments are saved as sidecar files beside the Markdown so each exported page remains self-contained |
| Diagrams | draw.io and Roadmap Planner diagrams | Rendered as embedded base64 PNGs |
| Page-listing macros | Page Tree, Children, Recently Updated, Blog Posts, Content by Label, and List Labels | Full-space conversion already provides the space context these macros typically need |
| People and activity macros | Contributors, Task Report, and Content Report Table | Rendered as Markdown lists or tables |
| Document control | Page Signatures | Rendered as a signatures table or a reviewers fallback table |
| QC documents | qc-property-macro and qc-revision-macro | Resolves template placeholders into actual page metadata |
| Cards and embeds | Inline cards, embed cards, and block cards for Jira, Confluence, and YouTube | Produces human-readable links instead of opaque raw markup |
| Lossless fallback | Anchors, excerpts, bodied extensions, and unrecognized macros | Preserved as HTML comments so content is not silently dropped |
Flags that control extension behavior
For the full space-conversion syntax, examples, and output behavior, use Convert Spaces.
Images and media
| Flag | Default | What it controls |
|---|---|---|
--embed-images | true | Embed images as base64 data URIs |
--ext-embed-drawio | true | Embed draw.io diagrams as base64 images |
--ext-embed-roadmap | true | Embed Roadmap Planner diagrams as base64 images |
--embed-media-images | true | Embed Confluence media files such as avatars and inline images as base64 data URIs |
Extension rendering
| Flag | Default | What it controls |
|---|---|---|
--ext-render-toc | true | Generate a Markdown table of contents from document headings |
--ext-render-recently-updated | true | Render the recently-updated macro as a Markdown list |
--ext-render-listlabels | true | Render label badges |
--ext-render-pagetree | true | Render the pagetree macro as a nested Markdown list |
--ext-render-children | true | Render the children macro as a flat Markdown list |
--ext-render-contributors | true | Render the contributors macro as a Markdown list |
--ext-render-page-signatures | true | Render Document Control signature tables |
--ext-render-qc-properties | true | Render QC property and revision macros with their actual values |
--ext-render-task-report | true | Render the tasks-report-macro as a Markdown table |
--ext-render-content-report | true | Render the content-report-table macro as a Markdown table |
--ext-resolve-inline-card-titles | true | Resolve inline Confluence card links to their actual page titles |
Space-scale behavior
- Shared caching keeps repeated macro resolution efficient across pages in the same run.
- Pass
--embed-images=falsewhen smaller output matters more than a fully self-contained export. - Unsupported or unresolved elements are preserved as HTML comments so a bulk conversion does not silently lose content.
When to inspect one page more closely
acs2md also includes page-level commands. Use Get Space Info or the page commands documented in Utilities when a bulk run identifies one page that needs deeper inspection before migration or publishing.