Skip to main content

Publish Obsidian Markdown notes to Confluence over Kerberos

Project description

obsidian-publish-confluence

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.

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 --check

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.
  • 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.2.tar.gz (11.5 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.2-py3-none-any.whl (10.9 kB view details)

Uploaded Python 3

File details

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

File metadata

File hashes

Hashes for obsidian_publish_confluence-0.1.2.tar.gz
Algorithm Hash digest
SHA256 2f53202a6ae0fe8bad2aaef38c01cf3479a683d491b67d4eadece622636a7d0a
MD5 f317acc55bac97193edf4ea643ce8ba9
BLAKE2b-256 77d9153c0c37a865a75d898830ebde1883ed91f9e759b80dffc7cd23c7ddc07c

See more details on using hashes here.

Provenance

The following attestation bundles were made for obsidian_publish_confluence-0.1.2.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.2-py3-none-any.whl.

File metadata

File hashes

Hashes for obsidian_publish_confluence-0.1.2-py3-none-any.whl
Algorithm Hash digest
SHA256 6b4f59a68f0dbe26fc0de594a3ec3b4d023a19621bd1c01aba9c05da84b7a728
MD5 3586c7227eeca1b5480d839770fc9886
BLAKE2b-256 243a5178ac9195bbb1c8c6158d6d7346984a5d26c5ed4604ba2fd9ad773e608f

See more details on using hashes here.

Provenance

The following attestation bundles were made for obsidian_publish_confluence-0.1.2-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