shuuul231 downloadsCreate markdown-based Marp presentations in Obsidian with extended Marp support
Marp Extended is an Obsidian plugin for creating, previewing, presenting, and exporting Marp slide decks from Markdown notes.
Project lineage: Marp Extended originated from Samuele Cozzi's Marp Slides for Obsidian and is now maintained as an independent plugin project. Upstream credits are preserved below.

.marp-extended/themes/ on first load, plus custom theme CSS from your vault.beautiful-mermaid and official Mermaid, featuring an interactive zooming and panning frame in the editor Live Preview (can be toggled in settings).Marp Extended renders slides with Marp, so notes should primarily use Marp-compatible Markdown. Obsidian image embeds are supported as a convenience by converting image wiki-links before preview/export.
Supported image wiki-link forms:
| Obsidian syntax | Converted Marp-compatible syntax |
|---|---|
![[image.png]] |
 |
![[image.png|Alt text]] |
 |
![[image.png|600]] |
 |
![[image.png|600x400]] |
 |
For example:
![[Pasted image 20260625124927.png]]
![[Pasted image 20260625124927.png|Screenshot]]
![[Pasted image 20260625124927.png|600]]
![[Pasted image 20260625124927.png|600x400]]
These are converted to standard Markdown image links / Marp image directives. Paths are URL-encoded so spaces become %20:




When possible, the plugin resolves the image through Obsidian's link resolver and emits a path Marp can read. If the image cannot be resolved, the plugin falls back to treating the wiki-link target as a path relative to the current note.
Other Obsidian-only extensions are not converted automatically. If Marp does not support an Obsidian syntax directly, write it in standard Markdown or Marp syntax.
For Kami-style decks, Marp Extended also supports a small fenced-block DSL that
compiles to Marp local directives and Kami theme HTML wrappers before
preview/export. For example, use slide blocks instead of Marp local directive
comments and cols / cards[2x2] blocks split with === for common Kami
layouts. Previewing these layout wrappers requires the plugin's Enable HTML
setting; export already invokes Marp CLI with HTML enabled. See
Kami DSL for the supported blocks and examples.
See also:
Marp Extended is submitted to the Obsidian community plugin directory:
https://community.obsidian.md/plugins/marp-extended
Open the plugin page in Obsidian or search for Marp Extended in Settings → Community plugins → Browse.
Marp Extended can also be installed from this repository with BRAT:
https://github.com/shuuul/obsidian-marp-extended..obsidian/plugins/marp-extended/ directory..marp-extended/themes/. Fork a bundled theme in settings before editing it.Bundled themes do not load font files from the network. Install the matching fonts on your operating system before opening Obsidian when you want the theme to match its upstream design; otherwise the browser uses the CSS fallback stack.
| Theme | Recommended local fonts |
|---|---|
beamer |
CMU Sans Serif, CMU Bright |
dracula |
IBM Plex Sans, IBM Plex Mono |
github |
Lato, Roboto Mono, NasuM, GenShin Gothic / 源真ゴシック |
kami |
TsangerJinKai02 W04, TsangerJinKai02 W05, JetBrains Mono Regular |
kami-en |
JetBrains Mono Regular |
olive |
Lato, Roboto Mono, NasuM, GenShin Gothic / 源真ゴシック |
Marp Extended does not bundle these font files. TsangerJinKai02 may require a separate license for commercial use.
Preview and presentation work from the plugin bundle. Export runs an external Marp CLI command so Marp Extended does not bundle the full CLI/Puppeteer toolchain.
Install Marp CLI globally, set an explicit executable path in Settings → Marp Extended → Marp CLI path, or enable Use npx fallback to let the plugin run a pinned Marp CLI package through npx when no executable is found or when a browser-backed PDF/PPTX export fails without an explicit CLI path:
npm install -g @marp-team/marp-cli
marp --version
Use Auto-detect in settings to search PATH and common Homebrew locations such as /opt/homebrew/bin/marp. If marp is not found automatically, set Marp CLI path to the executable path, such as /opt/homebrew/bin/marp or C:\Users\you\AppData\Roaming\npm\marp.cmd.
The opt-in npx fallback uses @marp-team/[email protected]. It requires Node.js/npm and may download the package on first use.
⚠️ PDF and PPTX export require Google Chrome, Chromium, or Microsoft Edge. You can set a custom browser path with the
CHROME_PATHsetting if Marp CLI cannot auto-detect your browser.
npm install
npm run typecheck
npm run lint
npm test -- --runInBand
npm run build
For live Obsidian testing, copy .env.local.example to .env.local and set OBSIDIAN_VAULT to your vault path. npm run dev and npm run build will then auto-copy main.js, manifest.json, and styles.css into <vault>/.obsidian/plugins/marp-extended/. Reload the dev plugin with the Obsidian CLI:
npm run obsidian:reload
Useful scripts:
| Command | Description |
|---|---|
npm run dev |
Watch build for local development |
npm run build |
Typecheck and produce production main.js |
npm run typecheck |
Run TypeScript checks only |
npm run lint |
Run ESLint over src and tests |
npm test |
Run Jest unit tests |
npm run test:coverage |
Run Jest unit tests with coverage |
npm run analyze:bundle |
Build and emit metafile.json for esbuild bundle analysis |
npm run obsidian:reload |
Reload the local Obsidian dev plugin and check dev errors |
npm run obsidian:profile -- path="samples/Kami Agent Slides.md" |
Capture preview Chrome metrics and Marp Extended timing marks for a vault-relative note path; pass cpu=true for a .cpuprofile |
main.js is generated. Edit files under src/, then rebuild.
Developer guidance lives in AGENTS.md. Release notes live in CHANGELOG.md.
Current Marp-related runtime dependencies are @marp-team/marp-core ^4.3.0 and beautiful-mermaid ^1.1.3. Export uses an external @marp-team/marp-cli executable or optional npx fallback instead of bundling Marp CLI into main.js.
Runtime and development dependencies audit clean with npm audit and npm audit --omit=dev.
Marp Extended builds on the original Marp Slides for Obsidian plugin by Samuele Cozzi.
Bundled default themes are limited to kami, kami-en, github, beamer, olive, and dracula, with CSS from tw93/Kami, matsubara0507/marp-themes, dracula/marp, plus the Marp Extended Beamer sample theme. These upstream projects are MIT-licensed; keep their notices when redistributing modified theme CSS. Kami's Chinese theme references TsangerJinKai02 fonts, whose commercial usage may require a separate font license.
Many thanks to: