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.3.tar.gz (11.6 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.3-py3-none-any.whl (11.1 kB view details)

Uploaded Python 3

File details

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

File metadata

File hashes

Hashes for obsidian_publish_confluence-0.1.3.tar.gz
Algorithm Hash digest
SHA256 1b96ef253a39d0b935273493ff8e8423aa73ce8541fc9ebb7db8d65774f59215
MD5 0f943e6323441c5ff0f5eb524e571c42
BLAKE2b-256 27d621d6287952d7097aaf9d692ae53877844492c91f7ffc12396eb624b33fc0

See more details on using hashes here.

Provenance

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

File metadata

File hashes

Hashes for obsidian_publish_confluence-0.1.3-py3-none-any.whl
Algorithm Hash digest
SHA256 2e58ac490897aec82bae12ae52b183841ec7c648501c0d0229bc4f339e88c296
MD5 a5dbc9d6d770cc576a0ebf07da90b056
BLAKE2b-256 198fec38c4993fc4c5f7e463caf62212e66612890eb04b023d825cd864665e83

See more details on using hashes here.

Provenance

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