Help us improve
Share bugs, ideas, or general feedback.
From confluence
Convert Markdown content to Confluence's ADF (Atlassian Document Format) for creating and updating pages. Use when creating Confluence pages from README files, documentation, or any Markdown content. Handles headings, lists, code blocks, tables, links, and more.
npx claudepluginhub ramirez-justin/claude-plugins --plugin confluenceHow this skill is triggered — by the user, by Claude, or both
Slash command
/confluence:markdown-to-adfThe summary Claude sees in its skill listing — used to decide when to auto-load this skill
Expert assistance for converting Markdown content to Confluence's ADF (Atlassian Document Format).
Read, search, create, update, move, delete, and convert Confluence pages and attachments using confluence-cli from the terminal or agents.
Provides templates for Confluence docs like TDD, ADR, API, runbooks, release notes. Covers CQL queries and Jira linking for engineering teams managing technical documentation.
Provides UI/UX resources: 50+ styles, color palettes, font pairings, guidelines, charts for web/mobile across React, Next.js, Vue, Svelte, Tailwind, React Native, Flutter. Aids planning, building, reviewing interfaces.
Share bugs, ideas, or general feedback.
Expert assistance for converting Markdown content to Confluence's ADF (Atlassian Document Format).
ADF (Atlassian Document Format) is Confluence's JSON-based document format representing content as a tree of nodes.
{
"version": 1,
"type": "doc",
"content": [/* nodes */]
}
| Markdown | ADF Mark Type | Example |
|---|---|---|
**bold** | {"type": "strong"} | {"type": "text", "text": "bold", "marks": [{"type": "strong"}]} |
*italic* | {"type": "em"} | {"type": "text", "text": "italic", "marks": [{"type": "em"}]} |
`code` | {"type": "code"} | {"type": "text", "text": "code", "marks": [{"type": "code"}]} |
~~strike~~ | {"type": "strike"} | {"type": "text", "text": "strike", "marks": [{"type": "strike"}]} |
<u>underline</u> | {"type": "underline"} | {"type": "text", "text": "underline", "marks": [{"type": "underline"}]} |
[link](url) | {"type": "link", "attrs": {"href": "url"}} | Text with link mark |
Combined marks: Use array of marks for ***bold italic***
| Markdown | ADF Type | Key Attributes |
|---|---|---|
# Heading | heading | attrs.level: 1-6 |
| Paragraph | paragraph | - |
- bullet | bulletList → listItem | - |
1. ordered | orderedList → listItem | - |
```lang | codeBlock | attrs.language |
> quote | blockquote | - |
--- | rule | - |
| table | | table → tableRow → tableCell/tableHeader | - |
 | mediaSingle → media | attrs: {type: "external", url, alt} |
- [x] task | taskList → taskItem | attrs.state: "DONE"/"TODO" |
{"type": "heading", "attrs": {"level": 1}, "content": [{"type": "text", "text": "Title"}]}
Confluence supports levels 1-6.
Bullet list structure:
{
"type": "bulletList",
"content": [
{"type": "listItem", "content": [
{"type": "paragraph", "content": [{"type": "text", "text": "Item"}]}
]}
]
}
Nested lists: Add another bulletList/orderedList inside the listItem.content array.
{
"type": "codeBlock",
"attrs": {"language": "python"},
"content": [{"type": "text", "text": "def hello():\n print('Hello')"}]
}
Supported languages: javascript, python, java, go, rust, typescript, sql, bash, json, xml, html, css, and more.
{
"type": "table",
"content": [
{"type": "tableRow", "content": [
{"type": "tableHeader", "content": [{"type": "paragraph", "content": [{"type": "text", "text": "Header"}]}]},
{"type": "tableHeader", "content": [{"type": "paragraph", "content": [{"type": "text", "text": "Header 2"}]}]}
]},
{"type": "tableRow", "content": [
{"type": "tableCell", "content": [{"type": "paragraph", "content": [{"type": "text", "text": "Cell"}]}]},
{"type": "tableCell", "content": [{"type": "paragraph", "content": [{"type": "text", "text": "Cell 2"}]}]}
]}
]
}
{"type": "panel", "attrs": {"panelType": "info"}, "content": [/* paragraphs */]}
Panel types: info, note, warning, error, success
Convert from: > ℹ️ **Info** or > ⚠️ **Warning**
{"type": "expand", "attrs": {"title": "Click to expand"}, "content": [/* content */]}
Convert from: <details><summary>Title</summary>Content</details>
{"type": "status", "attrs": {"text": "DONE", "color": "green"}}
Colors: neutral, purple, blue, red, yellow, green
{"type": "mention", "attrs": {"id": "user-id", "text": "@username"}}
{"type": "emoji", "attrs": {"shortName": ":smile:", "text": "😀"}}
Markdown Input:
# Project Documentation
This is a **sample project** with `code examples`.
- Feature 1
- Feature 2
```bash
npm install my-package
| Command | Description |
|---|---|
start | Start server |
**ADF Output**:
```json
{
"version": 1,
"type": "doc",
"content": [
{"type": "heading", "attrs": {"level": 1}, "content": [{"type": "text", "text": "Project Documentation"}]},
{"type": "paragraph", "content": [
{"type": "text", "text": "This is a "},
{"type": "text", "text": "sample project", "marks": [{"type": "strong"}]},
{"type": "text", "text": " with "},
{"type": "text", "text": "code examples", "marks": [{"type": "code"}]},
{"type": "text", "text": "."}
]},
{"type": "bulletList", "content": [
{"type": "listItem", "content": [{"type": "paragraph", "content": [{"type": "text", "text": "Feature 1"}]}]},
{"type": "listItem", "content": [{"type": "paragraph", "content": [{"type": "text", "text": "Feature 2"}]}]}
]},
{"type": "codeBlock", "attrs": {"language": "bash"}, "content": [{"type": "text", "text": "npm install my-package"}]},
{"type": "table", "content": [
{"type": "tableRow", "content": [
{"type": "tableHeader", "content": [{"type": "paragraph", "content": [{"type": "text", "text": "Command"}]}]},
{"type": "tableHeader", "content": [{"type": "paragraph", "content": [{"type": "text", "text": "Description"}]}]}
]},
{"type": "tableRow", "content": [
{"type": "tableCell", "content": [{"type": "paragraph", "content": [{"type": "text", "text": "start", "marks": [{"type": "code"}]}]}]},
{"type": "tableCell", "content": [{"type": "paragraph", "content": [{"type": "text", "text": "Start server"}]}]}
]}
]}
]
}
| Markdown Feature | Workaround |
|---|---|
| HTML tags | Convert to ADF equivalent or plain text |
| Footnotes | Use numbered references in text |
| Definition lists | Use tables or headings |
| Complex nesting | Flatten or use expand sections |
Add these to improve Markdown content:
When converting Markdown to ADF, I will:
/confluence-create-page or /confluence-update-pageYou: "Convert my README.md to a Confluence page"
Me: "I'll convert your README.md to Confluence ADF format.
[Reads README.md]
I see:
Converting to ADF with enhancements:
Ready to create the page. Which space should I use?"
You: "Space 123456"
Me: [Uses /confluence-create-page with converted ADF]
"Created page 'My Project' in space 123456!"