Skip to main content

Publish Obsidian Markdown notes to Confluence over Kerberos

Project description

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.
  • Track markdown -> page_id mappings locally.
  • Upload attachments on both page create and update.
  • Convert Obsidian image embeds like ![[image.png]] and ![[image.png|400]].
  • 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
  • OBSIDIAN_PUBLISH_CONFLUENCE_MAPPING_FILE (optional)

Defaults:

  • OBSIDIAN_PUBLISH_CONFLUENCE_MAPPING_FILE defaults to ~/.config/obsidian-publish-confluence/mapping.json

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 --space DEV --parent-id 987654
obsidian-publish-confluence note.md --dry-run
obsidian-publish-confluence --check

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

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.

Limitations

  • Only image-style Obsidian embeds are converted to Confluence attachments.
  • 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 is not already tracked in the mapping file, a new Confluence page is created instead of matching an existing page by title.
  • 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.

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

obsidian_publish_confluence-0.1.4.tar.gz (14.7 kB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

obsidian_publish_confluence-0.1.4-py3-none-any.whl (12.5 kB view details)

Uploaded Python 3

File details

Details for the file obsidian_publish_confluence-0.1.4.tar.gz.

File metadata

File hashes

Hashes for obsidian_publish_confluence-0.1.4.tar.gz
Algorithm Hash digest
SHA256 d4bb37b5295a93993af94fde29e9625f57ad24317101762acbef715dbe95dcf1
MD5 0a23854286f5f3eea5f2bbd44e9a87ad
BLAKE2b-256 8b75127abd5a385f074d7823a6ce59d97b3f84e72f9f7b6a0ddc1cbfb848b3cc

See more details on using hashes here.

Provenance

The following attestation bundles were made for obsidian_publish_confluence-0.1.4.tar.gz:

Publisher: publish.yml on kotborealis/obsidian-publish-confluence

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file obsidian_publish_confluence-0.1.4-py3-none-any.whl.

File metadata

File hashes

Hashes for obsidian_publish_confluence-0.1.4-py3-none-any.whl
Algorithm Hash digest
SHA256 8dfabb4edf88b8ba263877c7879b8d31784547a01ecff10ab2e03ade824c95da
MD5 ae7f0536c7dbe20f1cb08117f58e2c99
BLAKE2b-256 1ed1b1a70c456a12ac122373ef3cddbb722ae00fc6587cad376d7914701821d2

See more details on using hashes here.

Provenance

The following attestation bundles were made for obsidian_publish_confluence-0.1.4-py3-none-any.whl:

Publisher: publish.yml on kotborealis/obsidian-publish-confluence

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page