Skip to main content

obsidian-pdf-exporter

Export Obsidian vaults to PDF with plugin support. Runs locally or in CI.

Test, Lint and Build Build and publish to PyPI Package version

Features

  • Folder-tree → single PDF, preserving Obsidian's folder-note convention.
  • Wiki links and embedded images resolved against a one-pass vault index.
  • Embedded notes, headings, blocks and Block Link Plus ranges (![[Note#^id]]) are transcluded.
  • Obsidian callouts styled per type, YAML frontmatter parsed and stripped.
  • Bases (.base files and ```base blocks) rendered as static tables and lists. See MARKDOWN.md.
  • Built-in support for Folder Notes, Dataview, Meta Bind, Block Link Plus, Excalidraw drawings and draw.io SVG exports; third-party plugin support is pip-installable. See PLUGINS.md.
  • Pandoc citations ([@key]) with a reference list, from a BibTeX or CSL JSON bibliography. See MARKDOWN.md.
  • Redline PDFs: tracked-changes diff between two git commits.
  • Pluggable PDF templates (CSS + running header/footer + paged-media @page rules). Two ship in the box: default and redline. See TEMPLATING.md.
  • Wide tables auto-rotated to landscape pages.
  • Mermaid diagrams rendered to SVG or PNG with mermaid-cli. See MARKDOWN.md.

Install

macOS / Linux

curl -LsSf uvx.sh/obsidian-pdf-exporter/install.sh | sh && obsidian-pdf-exporter setup --yes

Windows

powershell -ExecutionPolicy ByPass -c "irm https://uvx.sh/obsidian-pdf-exporter/install.ps1 | iex; obsidian-pdf-exporter setup --yes"

The chained setup --yes installs the native runtime dependencies (Pango/HarfBuzz/Fontconfig and pandoc) through your OS package manager. For per-OS commands, pinned versions, and CI usage see INSTALLATION.md.

The shorter alias ope is identical to obsidian-pdf-exporter.

Quick start

# Standard export
ope export ./MyVault/SpaceA

# Custom title, version, output path
ope export ./MyVault/SpaceA \
  --title "Quality Manual" --version 3.1.0 \
  --output ./out/quality-manual.pdf

# Redline between two commits (must run inside a git repo)
ope redline ./MyVault/SpaceA \
  --from-commit v3.0.0 --to-commit HEAD

# Discovery
ope list-templates
ope list-plugins
ope --help

Full flag reference: COMMANDS.md.

Vault layout

The exporter walks a space folder (the ROOT argument) and turns every subfolder into a section. A folder note named after its folder is the section's body:

SpaceA/
├── SpaceA.md            ← root note (becomes the document's intro page)
├── images/              ← attachments folder name is irrelevant
│   └── logo.png
├── Chapter A/
│   ├── Chapter A.md     ← folder note for "Chapter A"
│   ├── img/             ← scoped attachments — picked over top-level on ties
│   │   └── logo.png
│   └── Section 1/
│       └── Section 1.md
└── Chapter B/
    └── Chapter B.md

Three roots are recognised:

  1. Space/Space.md exists → used as the root note.
  2. Space/Space/Space.md → the inner folder is the root, its siblings become children.
  3. Neither → an anonymous root, immediate child folders are sections.

Folders without markdown are pruned automatically. .git, .obsidian, .vscode and other dotfile folders are skipped.

Documentation

Topic Where
Installing the CLI and native deps; per-OS package commands INSTALLATION.md
Every command, flag, env var, and exit code COMMANDS.md
Obsidian-specific markdown features the exporter handles MARKDOWN.md
Built-in plugins, options, authoring third-party plugins PLUGINS.md
Custom PDF templates (no-Python recipes + full Python spec) TEMPLATING.md
Development setup, testing, PR guidelines CONTRIBUTING.md

License

MIT

Metadata

Release files for obsidian-pdf-exporter 0.7.0

For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.

Source distribution (sdist)

Source distribution for obsidian-pdf-exporter 0.7.0
File Size Uploaded
obsidian_pdf_exporter-0.7.0.tar.gz 123.8 kB Details

Built distribution (wheel)

Table of built distributions (wheels) for obsidian-pdf-exporter 0.7.0
File Interpreter ABI Platform
obsidian_pdf_exporter-0.7.0-py3-none-any.whl Python 3 none any Details

Total release size: 290.4 kB

Release files / obsidian_pdf_exporter-0.7.0.tar.gz

Download URL obsidian_pdf_exporter-0.7.0.tar.gz
Size 123.8 kB
Tags Source
SHA-256 checksum
How to use checksums
9af7ffe1542b2bea544d8f4d330721df20a490ece48cbafa782e25bd4a16f1af
BLAKE2b-256 checksum
How to use checksums
a1c8d9b46648261d012bb4bfe9dcd7f7902f8f95670bbcad55f91dc8d0efe886
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via uv/0.13.1 {"installer":{"name":"uv","version":"0.13.1","subcommand":["publish"]},"python":null,"implementation":{"name":null,"version":null},"distro":{"name":"Ubuntu","version":"24.04","id":"noble","libc":null},"system":{"name":null,"release":null},"cpu":null,"openssl_version":null,"setuptools_version":null,"rustc_version":null,"ci":true}

Release files / obsidian_pdf_exporter-0.7.0-py3-none-any.whl

Download URL obsidian_pdf_exporter-0.7.0-py3-none-any.whl
Size 166.7 kB
Tags Python 3
SHA-256 checksum
How to use checksums
a4d76805451d5d7ab8cdd990d243e04f98cc8c070ee88cd4c1d030577f2daf46
BLAKE2b-256 checksum
How to use checksums
44b526e0e6b2dcea9c72e05e120f72ce7e128bc4d98c61a840915a86d23382dc
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via uv/0.13.1 {"installer":{"name":"uv","version":"0.13.1","subcommand":["publish"]},"python":null,"implementation":{"name":null,"version":null},"distro":{"name":"Ubuntu","version":"24.04","id":"noble","libc":null},"system":{"name":null,"release":null},"cpu":null,"openssl_version":null,"setuptools_version":null,"rustc_version":null,"ci":true}

Release history Release notifications | RSS feed

0.14.0

2 release files

0.13.0

2 release files

0.12.2

2 release files

0.12.1

2 release files

0.12.0

2 release files

0.11.2

2 release files

0.11.1

2 release files

0.11.0

2 release files

0.10.1

2 release files

0.10.0

2 release files

0.9.0

2 release files

0.8.2

2 release files

0.8.1

2 release files

0.8.0

2 release files

0.7.2

2 release files

0.7.1

2 release files

This release

0.7.0 This release

2 release files

0.6.1

2 release files

0.6.0

2 release files

0.5.1

2 release files

0.5.0

2 release files

0.4.0

2 release files

0.3.0

2 release files

0.2.1

2 release files

0.2.0

2 release files

0.1.0

2 release files

0.0.6

2 release files

0.0.5

2 release files

0.0.4

2 release files

0.0.3

2 release files

0.0.2

2 release files

0.0.1

2 release files

Anthropic, PBC Visionary sponsor Bloomberg Visionary sponsor Hudson River Trading Visionary sponsor Meta Visionary sponsor NVIDIA Visionary sponsor Microsoft Sustainability sponsor Depot Continuous Integration AWS Cloud computing and Security Sponsor Datadog Monitoring Fastly CDN Google Download Analytics Sentry Error logging StatusPage Status page