Export Obsidian vaults to PDF with plugin support. Runs locally or in CI.
Project description
Export Obsidian vaults to PDF with plugin support. Runs locally or in CI.
Features
- Folder-tree → single PDF, preserving Obsidian's folder-note convention.
- Wiki links and embedded images resolved against a one-pass vault index.
- Obsidian callouts styled per type, YAML frontmatter parsed and stripped.
- Built-in support for Folder Notes, Dataview, and Meta Bind; third-party plugin support is pip-installable. See PLUGINS.md.
- Redline PDFs: tracked-changes diff between two git commits.
- Pluggable PDF templates (CSS + running header/footer + paged-media
@pagerules). Two ship in the box:defaultandredline. See TEMPLATING.md. - Wide tables auto-rotated to landscape pages.
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:
Space/Space.mdexists → used as the root note.Space/Space/Space.md→ the inner folder is the root, its siblings become children.- 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
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_pdf_exporter-0.0.6.tar.gz.
File metadata
- Download URL: obsidian_pdf_exporter-0.0.6.tar.gz
- Upload date:
- Size: 46.8 kB
- Tags: Source
- Uploaded using Trusted Publishing? Yes
- Uploaded via: uv/0.11.11 {"installer":{"name":"uv","version":"0.11.11","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}
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
ddea85a930f764f4e20407f72a3eb7b8775f3bbc96658f3aaa68969564a20e05
|
|
| MD5 |
5dd3720a3a2f73a8515395d41c7f7740
|
|
| BLAKE2b-256 |
bd965265189d552e656ddf29501a44098412093397797ce3c6ddd2fc42c5e3ef
|
File details
Details for the file obsidian_pdf_exporter-0.0.6-py3-none-any.whl.
File metadata
- Download URL: obsidian_pdf_exporter-0.0.6-py3-none-any.whl
- Upload date:
- Size: 63.4 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? Yes
- Uploaded via: uv/0.11.11 {"installer":{"name":"uv","version":"0.11.11","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}
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
ac548f21f62d6d61ccfd5a057850257cedff082ce7570ce7e9c9ddcf8ae0417f
|
|
| MD5 |
bba86b40d7c5f6cd9af22ea32caea3cc
|
|
| BLAKE2b-256 |
ce8fb63f5f7a3479f05c97f3066ea7d29083eb960a9a0b33567ae05372959e7b
|