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 attachments when a PlantUML server is configured.
  • Leave plantuml / puml blocks as normal code blocks when no PlantUML server is configured.

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)
  • OBSIDIAN_PUBLISH_CONFLUENCE_PLANTUML_SERVER (optional)

Defaults:

  • OBSIDIAN_PUBLISH_CONFLUENCE_MAPPING_FILE defaults to ~/.config/obsidian-publish-confluence/mapping.json
  • OBSIDIAN_PUBLISH_CONFLUENCE_PLANTUML_SERVER is disabled unless set

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

To enable PlantUML rendering, set:

export OBSIDIAN_PUBLISH_CONFLUENCE_PLANTUML_SERVER="http://localhost:9090"

Without this variable, PlantUML blocks stay regular code blocks.

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.

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.1.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.1-py3-none-any.whl (11.1 kB view details)

Uploaded Python 3

File details

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

File metadata

File hashes

Hashes for obsidian_publish_confluence-0.1.1.tar.gz
Algorithm Hash digest
SHA256 69ea410c67f5840b9bb81aaffc404dd526b50b002052133b709d2ed883c5ed8a
MD5 fbad20dc5bad78e0cad77cd967353291
BLAKE2b-256 bf38f118110db511fde5e7c03648d11f849d0ee570cefad980c6c06292f3b4b2

See more details on using hashes here.

Provenance

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

File metadata

File hashes

Hashes for obsidian_publish_confluence-0.1.1-py3-none-any.whl
Algorithm Hash digest
SHA256 e9a2b7732ca6e999a884bd75867f8677b68ad9789babf609b18aa88a40886256
MD5 ec53c95d749b962d8968d394460d018e
BLAKE2b-256 3faa92037294041d89634d61ececc885218921e5d4eae1135fb7fdff643f0251

See more details on using hashes here.

Provenance

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