Now liveThe Skillselion MCP - thousands of ranked skills, loaded into your agent mid-task. No install.Get it →
ericfisherdev avatar

Create Page

  • 1 installs
  • 1 repo stars
  • Updated April 10, 2026
  • ericfisherdev/claude-plugins

Creates Confluence pages via a Python script with space-lookup caching and markdown-to-Confluence conversion.

About

Creates new Confluence pages through a bundled Python script that caches space lookups and converts markdown with a --markdown flag. A developer uses it whenever adding a wiki page or publishing documentation to Confluence.

  • Creates Confluence pages via a Python script with space-lookup caching
  • Converts markdown to Confluence format with the --markdown flag

Create Page by the numbers

  • 1 all-time installs (skills.sh)
  • Ranked #1,361 of 1,879 Documentation skills by installs in the Skillselion catalog
  • Data as of Jul 8, 2026 (Skillselion catalog sync)
npx skills add https://github.com/ericfisherdev/claude-plugins --skill create-page

Add your badge

Show developers this skill is listed on Skillselion. Paste this into your README.

Listed on Skillselion
Installs1
repo stars1
Last updatedApril 10, 2026
Repositoryericfisherdev/claude-plugins

What it does

Creates Confluence pages via a Python script with space-lookup caching and markdown-to-Confluence conversion.

Files

SKILL.mdMarkdownGitHub ↗

Create Confluence Page

IMPORTANT: Always use this skill's Python script for creating Confluence pages. This skill uses caching for space lookups and provides token-efficient output.

Markdown Content Handling

CRITICAL: When uploading markdown content to Confluence, you MUST use the --markdown flag:

  • Files with `.md` extension → ALWAYS add --markdown
  • Content containing markdown syntax (headers with #, lists with -, code blocks with ``) → ALWAYS add --markdown`
  • User asks to upload/publish a markdown file → ALWAYS add --markdown

Without the --markdown flag, markdown content will appear as raw unformatted text in Confluence.

# CORRECT - markdown file with --markdown flag
python scripts/create_confluence_page.py --space DEV --title "Docs" \
  --body-file README.md --markdown

# WRONG - markdown will show as raw text
python scripts/create_confluence_page.py --space DEV --title "Docs" \
  --body-file README.md

Quick Start

Use the Python script at scripts/create_confluence_page.py:

# Create page in a space
python scripts/create_confluence_page.py --space DEV --title "New Feature Spec"

# Create with content
python scripts/create_confluence_page.py --space DEV --title "API Docs" \
  --body "<p>API documentation content here</p>"

# Create from markdown file (automatically converted)
python scripts/create_confluence_page.py --space DEV --title "README" \
  --body-file /path/to/README.md --markdown

# Create under a parent page
python scripts/create_confluence_page.py --space DEV --title "Child Page" \
  --parent 123456

# Create from a file
python scripts/create_confluence_page.py --space DEV --title "README" \
  --body-file /path/to/content.html

Options

OptionDescription
--space, -sSpace key (required)
--title, -tPage title (required)
--body, -bPage body in storage format (HTML) or markdown
--body-fileRead body content from file
--markdown, -mConvert body content from markdown to Confluence format
--parent, -pParent page ID (creates under this page)
--parent-titleParent page title (alternative to ID)
--labels, -lComma-separated labels to add
--format, -fOutput: compact (default), text, json

Content Format

Confluence uses "storage format" (XHTML-based). Common elements:

<!-- Paragraph -->
<p>Regular text paragraph</p>

<!-- Headings -->
<h1>Heading 1</h1>
<h2>Heading 2</h2>

<!-- Lists -->
<ul>
  <li>Unordered item</li>
</ul>
<ol>
  <li>Ordered item</li>
</ol>

<!-- Code block -->
<ac:structured-macro ac:name="code">
  <ac:parameter ac:name="language">python</ac:parameter>
  <ac:plain-text-body><![CDATA[print("Hello")]]></ac:plain-text-body>
</ac:structured-macro>

<!-- Info panel -->
<ac:structured-macro ac:name="info">
  <ac:rich-text-body><p>Info message</p></ac:rich-text-body>
</ac:structured-macro>

<!-- Link to another page -->
<ac:link><ri:page ri:content-title="Page Title"/></ac:link>

Common Workflows

Create Simple Documentation Page

python scripts/create_confluence_page.py \
  --space DEV \
  --title "Setup Guide" \
  --body "<h1>Setup Guide</h1><p>Follow these steps...</p>"

Create Page Under Existing Parent

# Find parent page ID first, then create under it
python scripts/create_confluence_page.py \
  --space DEV \
  --title "API Reference" \
  --parent-title "Developer Documentation"

Create Page with Labels

python scripts/create_confluence_page.py \
  --space DEV \
  --title "Architecture Decision Record" \
  --labels "adr,architecture,decision" \
  --body "<p>Decision: Use microservices</p>"

Create from Markdown

# Native markdown support (recommended)
python scripts/create_confluence_page.py \
  --space DEV --title "README" --body-file README.md --markdown

# Alternative: via pandoc for advanced markdown features
pandoc -f markdown -t html README.md | \
  python scripts/create_confluence_page.py \
    --space DEV --title "README" --body-file -

Output Formats

compact (default):

CREATED|123456|New Feature Spec|DEV
URL:https://yoursite.atlassian.net/wiki/spaces/DEV/pages/123456

text:

Page Created: New Feature Spec
ID: 123456
Space: DEV
URL: https://yoursite.atlassian.net/wiki/spaces/DEV/pages/123456

json:

{"id":"123456","title":"New Feature Spec","space":"DEV","url":"..."}

Environment Setup

Requires environment variables:

  • CONFLUENCE_BASE_URL - e.g., https://yoursite.atlassian.net
  • CONFLUENCE_EMAIL - Your Atlassian account email
  • CONFLUENCE_API_TOKEN - API token from Atlassian account settings

Reference

For detailed options, see references/options-reference.md.

Related skills

Documentationworkflownotes

This week in AI coding

Five minutes, every Monday - the tools, releases and tactics for developers.

unsubscribe anytime.