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_idmappings 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
plantumlmacro. - Support
--dry-runto inspect conversion and publish actions without changing Confluence.
Requirements
- Python 3.10+
curlkinitandklist- 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_URLOBSIDIAN_PUBLISH_CONFLUENCE_SPACEOBSIDIAN_PUBLISH_CONFLUENCE_PARENT_IDOBSIDIAN_PUBLISH_CONFLUENCE_MAPPING_FILE(optional)
Defaults:
OBSIDIAN_PUBLISH_CONFLUENCE_MAPPING_FILEdefaults 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
plantumlmacro 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
Built Distribution
Filter files by name, interpreter, ABI, and platform.
If you're not sure about the file name format, learn more about wheel file names.
Copy a direct link to the current filters
File details
Details for the file obsidian_publish_confluence-0.1.4.tar.gz.
File metadata
- Download URL: obsidian_publish_confluence-0.1.4.tar.gz
- Upload date:
- Size: 14.7 kB
- Tags: Source
- Uploaded using Trusted Publishing? Yes
- Uploaded via: twine/6.1.0 CPython/3.13.12
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
d4bb37b5295a93993af94fde29e9625f57ad24317101762acbef715dbe95dcf1
|
|
| MD5 |
0a23854286f5f3eea5f2bbd44e9a87ad
|
|
| BLAKE2b-256 |
8b75127abd5a385f074d7823a6ce59d97b3f84e72f9f7b6a0ddc1cbfb848b3cc
|
Provenance
The following attestation bundles were made for obsidian_publish_confluence-0.1.4.tar.gz:
Publisher:
publish.yml on kotborealis/obsidian-publish-confluence
-
Statement:
-
Statement type:
https://in-toto.io/Statement/v1 -
Predicate type:
https://docs.pypi.org/attestations/publish/v1 -
Subject name:
obsidian_publish_confluence-0.1.4.tar.gz -
Subject digest:
d4bb37b5295a93993af94fde29e9625f57ad24317101762acbef715dbe95dcf1 - Sigstore transparency entry: 2172790347
- Sigstore integration time:
-
Permalink:
kotborealis/obsidian-publish-confluence@bafef2e63a8d450f8411ac35a9ef3697f6f125bb -
Branch / Tag:
refs/tags/v0.1.4 - Owner: https://github.com/kotborealis
-
Access:
public
-
Token Issuer:
https://token.actions.githubusercontent.com -
Runner Environment:
github-hosted -
Publication workflow:
publish.yml@bafef2e63a8d450f8411ac35a9ef3697f6f125bb -
Trigger Event:
release
-
Statement type:
File details
Details for the file obsidian_publish_confluence-0.1.4-py3-none-any.whl.
File metadata
- Download URL: obsidian_publish_confluence-0.1.4-py3-none-any.whl
- Upload date:
- Size: 12.5 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? Yes
- Uploaded via: twine/6.1.0 CPython/3.13.12
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
8dfabb4edf88b8ba263877c7879b8d31784547a01ecff10ab2e03ade824c95da
|
|
| MD5 |
ae7f0536c7dbe20f1cb08117f58e2c99
|
|
| BLAKE2b-256 |
1ed1b1a70c456a12ac122373ef3cddbb722ae00fc6587cad376d7914701821d2
|
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
-
Statement:
-
Statement type:
https://in-toto.io/Statement/v1 -
Predicate type:
https://docs.pypi.org/attestations/publish/v1 -
Subject name:
obsidian_publish_confluence-0.1.4-py3-none-any.whl -
Subject digest:
8dfabb4edf88b8ba263877c7879b8d31784547a01ecff10ab2e03ade824c95da - Sigstore transparency entry: 2172790437
- Sigstore integration time:
-
Permalink:
kotborealis/obsidian-publish-confluence@bafef2e63a8d450f8411ac35a9ef3697f6f125bb -
Branch / Tag:
refs/tags/v0.1.4 - Owner: https://github.com/kotborealis
-
Access:
public
-
Token Issuer:
https://token.actions.githubusercontent.com -
Runner Environment:
github-hosted -
Publication workflow:
publish.yml@bafef2e63a8d450f8411ac35a9ef3697f6f125bb -
Trigger Event:
release
-
Statement type: