md-to-confluence

Publishes local Markdown files to Confluence pages with create-or-update upsert logic.

11|Updated Mar 20, 2026
One-click install
npx skills add https://github.com/qa-aman/next-leap-claude-code --skill md-to-confluence-qa-aman
Or copy as Structured Prompt for Agent▼
Please help me install this Agent Skill.
Skill: md-to-confluence
Source: https://github.com/qa-aman/next-leap-claude-code/tree/main/.claude/skills/md-to-confluence
Command: npx skills add https://github.com/qa-aman/next-leap-claude-code --skill md-to-confluence-qa-aman

SYSTEM DOCUMENTATION & REQUIREMENTS

💡 This Skill requires requests, markdown, python-dotenv, and includes scripts (resource) and references (resource) components.

What problem does it solve? Manually copying Markdown specs and docs into Confluence is tedious and error-prone, and formatting often breaks during paste. This Skill automates the entire publish flow: it converts Markdown to Confluence storage HTML, checks whether a page already exists, and either creates a new page or updates the existing one. ## Core Features & Use Cases - Upsert Publishing: Searches Confluence by page title and space, then updates the existing page (incrementing its version) or creates a new one under a chosen parent page. - Markdown to Confluence Conversion: Converts headings, lists, tables, links, and code blocks into Confluence storage format, including code macros with language parameters and note/warning/info panels. - Bulk Push & Dry Run: A Python script supports glob patterns for pushing many files at once, plus a dry-run mode to preview changes without touching Confluence. - Use Case: After finishing a product spec in Markdown, ask to publish it to the BS space under the Product Specs parent page, and get back a direct Confluence URL in seconds. ## Quick Start Publish the file spec.md to the Confluence space BS under the parent page Product Specs.

Frequently Asked Questions about md-to-confluence

High-intent search queries and answers about installing and using this skill.

FAQPage Schema
How do I publish a Markdown file to Confluence?▼

Provide the Markdown file path, the target Confluence space key, and a parent page title or ID. The skill extracts the page title from the first # heading, converts the body to Confluence HTML, and creates or updates the page via the REST API.

How do I push multiple Markdown files to Confluence at once?▼

Run the script with the --files flag and a glob pattern, for example python scripts/md_to_confluence.py --files "docs/**/*.md" --space BS --parent "Engineering Docs". Each file is processed individually and failures are reported at the end.

Does it update an existing Confluence page instead of creating a duplicate?▼

Yes. It searches Confluence with CQL for a page matching the title and space. If found, it updates that page and increments the version number; otherwise it creates a new page under the specified parent.

What credentials are needed for the Confluence API?▼

You need a Confluence base URL, username, and API token. Provide them via the CONFLUENCE_URL, CONFLUENCE_USERNAME, and CONFLUENCE_API_TOKEN environment variables, a .env file, or the corresponding CLI flags.

Can I preview changes before publishing to Confluence?▼

Yes, use the --dry-run flag with the script. It shows whether each page would be created or updated, including the target page ID and version bump, without making any changes to Confluence.

Why do my Markdown code blocks look wrong in Confluence?▼

Code blocks must be converted to Confluence code macros with a language parameter and CDATA body. The script handles this automatically for fenced blocks, but unsupported languages should have the language parameter omitted.