README file from
GithubConfluence Publisher
Sync the active note from Obsidian to Confluence using the REST API. The plugin converts Obsidian-flavored Markdown to HTML (Confluence storage format) and updates or creates pages in your target space.
Features
- Convert Markdown to Confluence storage HTML.
- Update existing pages by frontmatter page ID or by title lookup.
- Create new pages under an optional parent page.
- Store Confluence page ID back into frontmatter.
Setup
- Install dependencies:
npm install - Build the plugin:
npm run build - Copy
main.js,manifest.json, andstyles.cssto your vault plugin folder (e.g..obsidian/plugins/confluence-publisher/). - Enable the plugin in Obsidian.
- Configure settings: base URL, space key, auth email, and API token.
Usage
- Run the command:
Sync active note to Confluence. - The plugin will look for a frontmatter field (default
confluence-page-id) to update an existing page. - If no page ID is found, it searches by title in the configured space and updates the first match.
- Otherwise, it creates a new page and stores the page id in frontmatter. You can override the parent page per note using frontmatter (default key
confluence-parent-page-id).
Syncing a Page
- Open the note you want to sync.
- Open the Command Palette and run
Sync active note to Confluence. - On success, the plugin writes the Confluence page ID back to frontmatter.
Getting Confluence Details
Space key
- From URL:
https://your-domain.atlassian.net/wiki/spaces/ENG/overview-> space key isENG. - From Space settings: Overview/Details lists the space key.
API token (Confluence Cloud)
- Visit
https://id.atlassian.com/manage-profile/security/api-tokens. - Click "Create API token", name it, and copy the token.
- Use your Atlassian account email + this token in the plugin settings.
Parent page ID
- From URL:
.../wiki/spaces/SPACE/pages/123456789/Page+Title-> page ID is123456789. - From API:
GET .../wiki/rest/api/content?title=Page%20Title&spaceKey=SPACEand readresults[0].id.
Notes
- Wiki links are converted to Confluence URLs when possible (via frontmatter page ID or title match). Unresolved wiki links are left as
[[...]]. - Non-image embeds (
![[file]]) are converted to plain text markers; attachments other than images are not uploaded yet. - Image embeds (
![[image.png]]) and Markdown image links to local files are uploaded as Confluence attachments and embedded in the page. - Confluence base URL should include
/wikifor Confluence Cloud (e.g.https://your-domain.atlassian.net/wiki).
Troubleshooting
- 404 errors usually mean the base URL is wrong or the page ID/space key is invalid. The base URL should be the site root (include
/wikifor Cloud) and must not include/rest/api. - If you set
confluence-page-id, make sure the page exists and you have access; otherwise remove it to force create.
Community Plugin Release Checklist
- Update
manifest.jsonversion andpackage.jsonversion to match the release tag (e.g.0.1.1). - Run
npm run buildand verifymain.jsis generated. - Create a GitHub release tagged
vX.Y.Zand uploadmain.js,manifest.json, andstyles.cssas assets. - Submit a PR to
obsidianmd/obsidian-releasesupdatingcommunity-plugins.jsonwith this plugin entry.
License
MIT