Skip to main content

obsidian-publish-confluence

PyPI Python Build License: WTFPL

Publish Obsidian-flavored Markdown to Confluence over Kerberos.

Versioning is derived from Git tags for releases.

Features

  • Create or update Confluence pages from Markdown.
  • Store the Confluence page URL in note frontmatter.
  • Upload attachments on both page create and update.
  • Convert Obsidian image embeds like ![[image.png]] and ![[image.png|400]].
  • Convert Obsidian Canvas embeds like ![[board.canvas]] to SVG attachments while preserving node coordinates and multiline labels.
  • Convert Markdown checkbox lists into Confluence tasks, including nested unordered and ordered lists.
  • Convert fenced code blocks to Confluence code macros.
  • Convert PlantUML blocks to the native Confluence plantuml macro.
  • Support --dry-run to inspect conversion and publish actions without changing Confluence.

Requirements

  • Python 3.10+
  • curl
  • kinit and klist
  • A Confluence instance that accepts Kerberos auth via curl --negotiate

Installation

pip install obsidian-publish-confluence

For local development:

python -m pip install -e .

Configuration

Set these environment variables:

  • OBSIDIAN_PUBLISH_CONFLUENCE_BASE_URL
  • OBSIDIAN_PUBLISH_CONFLUENCE_SPACE
  • OBSIDIAN_PUBLISH_CONFLUENCE_PARENT_ID

Usage

export OBSIDIAN_PUBLISH_CONFLUENCE_BASE_URL="https://confluence.example.com"
export OBSIDIAN_PUBLISH_CONFLUENCE_SPACE="DOCS"
export OBSIDIAN_PUBLISH_CONFLUENCE_PARENT_ID="123456"

obsidian-publish-confluence note.md
obsidian-publish-confluence note.md --title "Custom title"
obsidian-publish-confluence note.md --page-url "https://confluence.example.com/spaces/DOCS/pages/123456"
obsidian-publish-confluence note.md --space DEV --parent-id 987654
obsidian-publish-confluence note.md --dry-run

--dry-run converts the note, prints the intended action and attachment list, and skips Confluence API calls.

The Confluence page URL is stored in the note frontmatter as confluence_url. An explicit --page-url takes precedence and is saved to the note after a successful publish.

Kerberos

The CLI expects a valid Kerberos ticket:

kinit YOUR_LOGIN@REALM.EXAMPLE

PlantUML

PlantUML fenced blocks are converted to the native Confluence plantuml macro.

This requires a Confluence instance with a compatible plantuml macro installed.

Release versioning

The package version comes from the Git tag used for the release. For PyPI releases, create a tag like v0.1.0 before publishing a GitHub Release. The release workflow verifies that the tag and built package version match.

Limitations

  • Image and Canvas Obsidian embeds are converted to Confluence attachments; local images are resolved relative to the note and recursively in the vault.
  • Canvas embeds are rendered as SVG with text, file, link, group, and edge data; embedded files and multiline labels are shown as labels.
  • Checkbox task status is stored in Confluence task macros; nested tasks become nested task lists.
  • Attachment names are namespaced automatically to avoid collisions between files with the same basename.
  • Numeric Obsidian image suffixes like ![[image.png|640]] become Confluence image widths.
  • Non-image wiki links stay plain text.
  • PDF embeds are not converted.
  • Auth mode is Kerberos-only.
  • If a note has no confluence_url and --page-url is not provided, a new Confluence page is created.
  • PlantUML publishing depends on the Confluence-side plantuml macro being available.

Publishing

This repository includes GitHub Actions for:

  • building distributions on push and pull request
  • publishing to PyPI on GitHub Release published

PyPI publishing is configured for Trusted Publishing.

Metadata

Release files for obsidian-publish-confluence 0.1.11

For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.

Source distribution (sdist)

Source distribution for obsidian-publish-confluence 0.1.11
File Size Uploaded
obsidian_publish_confluence-0.1.11.tar.gz 27.3 kB Details

Built distribution (wheel)

Table of built distributions (wheels) for obsidian-publish-confluence 0.1.11
File Interpreter ABI Platform
obsidian_publish_confluence-0.1.11-py3-none-any.whl Python 3 none any Details

Total release size: 46.5 kB

Release files / obsidian_publish_confluence-0.1.11.tar.gz

Download URL obsidian_publish_confluence-0.1.11.tar.gz
Size 27.3 kB
Tags Source
SHA-256 checksum
How to use checksums
67ced03935c08fdedf5efe52ce5d6b6a9df5b1cca4518f727e3e3299a73f3038
BLAKE2b-256 checksum
How to use checksums
ade1f974a9abfe0d6c0521dccb6b39630c24307da3b550bd875c7cb6646382fd
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via twine/7.0.0 CPython/3.13.14

Provenance

Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.

PyPI Publish Attestation

PyPI verified that this artifact, at this checksum, originated from the publisher listed below.

Signed by GitHub Actions, verified by PyPI on Sep 22, 2026.

Transparency log

Release files / obsidian_publish_confluence-0.1.11-py3-none-any.whl

Download URL obsidian_publish_confluence-0.1.11-py3-none-any.whl
Size 19.2 kB
Tags Python 3
SHA-256 checksum
How to use checksums
1d99d93b11d540ca7776139476b16779762c5bc9663d50c742b8ec22b668ba1c
BLAKE2b-256 checksum
How to use checksums
e050ce1bff08fb5b6b47bb46f7a1bd6180a219dbf15561f52a68da2476516335
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via twine/7.0.0 CPython/3.13.14

Provenance

Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.

PyPI Publish Attestation

PyPI verified that this artifact, at this checksum, originated from the publisher listed below.

Signed by GitHub Actions, verified by PyPI on Sep 22, 2026.

Transparency log

Release history Release notifications | RSS feed

This release

0.1.11 This release

2 release files

0.1.10

2 release files

0.1.8

2 release files

0.1.7

2 release files

0.1.6

2 release files

0.1.4

2 release files

0.1.3

2 release files

0.1.2

2 release files

0.1.1

2 release files

0.1.0

2 release files

Anthropic, PBC Visionary sponsor Bloomberg Visionary sponsor Hudson River Trading Visionary sponsor Meta Visionary sponsor NVIDIA Visionary sponsor Microsoft Sustainability sponsor Depot Continuous Integration AWS Cloud computing and Security Sponsor Datadog Monitoring Fastly CDN Google Download Analytics Sentry Error logging StatusPage Status page