Convert Markdown files to Confluence Wiki Markup and publish to Confluence with CLI.
If you encounter any problems or have suggestions, feel free to raise an issue on GitHub.
- Converts Markdown to Confluence Wiki Markup
- Supports tables, code blocks, callouts, images, mermaid and more
- Extracts YAML frontmatter (title, labels, id) from Markdown files
- CLI usage for easy integration
- Confluence macro tags are preserved without escaping, allowing native macros to function as intended
Supported syntax:
Bold, Italic, Strike, Codespan, Code block, Links, Anchor links, Lists, Nested lists, Tables, Horizontal rules, Callouts, Quotes
Mermaid. Using HTML and mermaid.js
Image. Supports uploading attachments
Install from npm:
npm i -g markdown2conf
mdconf -VInstall from source code:
pnpm build
pnpm link --global
mdconf -VCreate a config file at ~/.config/mdconf.json
{
"confluenceToken": "abcdef",
"host": "http://localhost"
}mdconf test/demo.md <output>If output is provided, saves the result to a file. Otherwise, prints to stdout.
mdconf frontmatter test/demo.md{
"title": "Page Title",
"labels": [ "test", "markdown", "confluence", "typescript" ]
}Prints the parsed frontmatter as a JSON object.
Creates a page under the space's home page.
mdconf new input.md -s '~your.name' -t 'title'mdconf publish markdown.md -i <id> -m 'message'mdconf --helpmdconf -h
Usage: mdconf [options] [command] <input.md> [output.confluence]
Markdown to Confluence Wiki Markup Converter
Arguments:
input.md Markdown input file
output.confluence Output file (optional)
Options:
-V, --version output the version number
-h, --help display help for command
Commands:
frontmatter <input.md> Extract frontmatter (id, title, labels)
publish|pub [options] <markdown.md> Convert markdown/markup to storage format and publish to Confluence page
new [options] <markdown.md> Create a new Confluence page from markdown with frontmatter
Markdown:
---
title: My Page
labels:
- docs
- confluence
---
# Welcome
This is a sample page.Command:
mdconf sample.mdYou can also use the library programmatically:
import { convertToConfluence } from './convert.js'
const md = '# Title\n```py\nprint('hello')\n```\n'
const { markup, localImages } = await convertToConfluence(markdown, { outputPath: null })It overrides the Renderer functions of Marked to produce Confluence wiki markup.
MIT