Johannes Kaindl1k downloadsExport a note — or a book note with embedded chapters — as an EPUB.
Export notes as EPUB3 — a single note, or a whole book assembled from embedded chapters.
🇬🇧 English · 🇩🇪 Deutsch

Alt+↑/↓ writes the new
order straight back into the book note's embed spine._assets/).autor/author, titelbild/cover, …).![[…]]) name the chapters in the
intended order. Everything else is optional.Community plugin list (recommended): Settings → Community plugins → Browse → search for "EPUB Exporter" → install and enable.
Manual install: copy main.js, manifest.json and styles.css from a
release into
<vault>/.obsidian/plugins/epub-exporter/.
From source: clone the repository, run npm install && npm run build, then copy the
same three files into the same folder.
A book note is the single source of truth. Its frontmatter carries the metadata, its ordered embeds form the chapter spine:
---
epub: true
title: Der Sandmann
author: E. T. A. Hoffmann
language: de
cover: assets/cover.png
---
![[01 Nathanael an Lothar]]
![[02 Clara an Nathanael]]
![[03 Nathanael an Lothar]]
The line epub: true (or book: true) marks the note as a book note; without it the note is exported as a single note and its embeds are not followed. Because the chapters are real embeds, the finished book is visible as such in reading
view — there is no separate project file that could drift out of sync with the note.
Recognized fields are title, author, language, identifier/isbn, description,
publisher, date, series + series_index, subject/tags, rights and cover —
each also under its German name (titel, autor, sprache, verlag, datum,
reihe + reihe_nr, schlagworte, rechte, titelbild). Without title the file
name is used; without identifier a UUID is generated. The command "Insert book
frontmatter into note" lays out the scaffold.
Alt+↑/↓; the new order
goes straight into the book note's embed spine, so the book reorders itself in
reading view immediately._assets/. A dialog picks whether chapters are copied or moved, and how many images
come along.![]()
The panel — click the preview for full size
Reordering, by dragging or with Alt+↑/↓ — the embed line in the note moves with it.
Per chapter: chapter_title overrides the title in the table of contents,
epub_exclude: true leaves a chapter out.
Settings → Community plugins → EPUB Exporter:
| Setting | Default | Meaning |
|---|---|---|
| Output destination | Beside the note | Or: attachment folder, custom folder, or "Share / open in another app" (mobile) |
| Custom folder | (empty) | Only used when the output destination is "Custom folder" |
| Default book language | en |
Used when a book note has no language field |
| Open sidebar on startup | off | Reveals the EPUB Exporter panel when Obsidian starts |
| Consolidate: chapter files | Copy | Copy (keep originals) or move |
| Consolidate: images | Full | Cover + all chapter images, cover only, or none |
The two consolidate settings are only the default in the dialog — it lets you deviate per run.
![]()
Click the preview for the full-size settings tab
The EPUB is built entirely inside the plugin, without an EPUB or ZIP library: a minimal,
uncompressed ZIP writer puts mimetype first (as the specification demands), followed by
the container, the OPF package and the navigation document. That is why the export also
works on mobile and needs no network connection.
Each chapter is rendered by Obsidian and then translated from the DOM into XHTML. Whatever EPUB does not know is degraded to the closest element rather than dropped — a notice reports how many elements that affected. Code blocks are swapped for placeholders before rendering and put back unchanged afterwards, so no syntax highlighting ends up in the book. Images are collected by a registry and stored once with the right media type (PNG, JPEG, GIF, SVG, WebP); links to notes within the same book become internal jump targets, links pointing outside become plain text.
AGPL-3.0-or-later — see LICENSE. The documentation is licensed CC BY-SA 4.0, see LICENSE-DOCS.