English · Português (Brasil)
Present any note as slides inside Obsidian.


Spotlight Slides is for the desktop app, and needs Obsidian 1.5.7 or newer.
Go to Settings → Community plugins, select Browse, search for "Spotlight Slides", then select Install and Enable.
main.js, manifest.json and styles.css from the latest release.<your vault>/.obsidian/plugins/spotlight-slides/.Open a note and run one of these from the command palette (Cmd/Ctrl+P):
| Command | What it does |
|---|---|
| Present current note | Opens the slides in a new tab. The ribbon icon does the same. |
| Present to the side | Opens the slides to the right of the note, for editing with a live preview that follows your cursor. The keyboard stays with the editor. |
| Present in new window | Opens the slides in a window of their own, to drag to a projector or a second screen. |


Beside the note, the slides show the slide that holds the line your cursor is on: click anywhere in the note, or move through it, and that slide comes up. Slides opened in a tab or in a new window do not follow the cursor, so clicking in the note never changes what an audience sees. If the plugin cannot tell for sure where a slide starts, the slides stay where they are.
| Key | Action |
|---|---|
→ ↓ Page Down Space |
Next slide |
← ↑ Page Up |
Previous slide |
Home / End |
First / last slide |
F |
Toggle full screen (Esc leaves it too) |
Move the pointer over the slides to show the previous, next and full screen buttons, with the slide counter. A progress bar runs along the bottom edge.
A slide taller than the screen scrolls with the mouse wheel or the trackpad, and a slim indicator on the right edge shows where you are.
A note without marp: true in its front matter is split into slides for you:
---, *** or ___).Code blocks and the note's front matter are never cut. The front matter is not shown.
Add marp: true to the front matter and the note goes to Marp as you wrote it. You decide where the slides break, with ---, and you can use Marp's directives and image keywords:
---
marp: true
paginate: true
---
# First slide
---
## Second slide
![[photo.png|bg left:40%]]
Text beside a background image.
The look comes from your Obsidian theme. Directives such as paginate and headingDivider work. Marp's own themes (theme: gaia, theme: uncover) switch to a look that does not follow your Obsidian theme, and raw HTML in a note is not rendered.
| What | You write | Notes |
|---|---|---|
| Code | fenced blocks | Highlighted by Obsidian. Mermaid and other plugins' code blocks work too. |
| Math | $x^2$ and $$ ... $$ |
Rendered by Obsidian's MathJax. Prices such as $5 and $10 stay text. |
| Callouts | > [!note] Title |
Every type, foldable ones ([!note]-) and nested ones. |
| Embeds | ![[Note]], ![[Note#Heading]], ![[Note#^block]] |
Also PDFs, audio and video. |
| Task lists | - [ ], - [x], - [/] |
Custom statuses look as your theme draws them. Checkboxes are display-only. |
| Links | [[Note]], [[Note|alias]] |
Styled as in reading view. Links to missing notes are dimmed. |
| Tags | #tag, #project/sub |
Styled by Obsidian. |
| Highlights | ==text== |
|
| Comments | %%text%% |
Left out of the slides. |
| Footnotes | [^1] with [^1]: text, and ^[inline] |
Shown at the foot of each slide, numbered per slide. A reference without a definition stays as text. |
Images from your vault are found the way Obsidian finds them, or by a path relative to the note. Marp's image keywords go in the alias:
| You write | You get |
|---|---|
![[photo.png]] |
The image, kept within the slide |
![[photo.png|300]] |
300 px wide |
![[photo.png|300x200]] |
300 px wide and 200 px tall |
![[photo.png|bg left:40%]] |
A background filling the left 40% of the slide |
 |
A Markdown image from the vault |

---, *** and ___. A horizontal rule cannot be drawn as a line inside a slide.:smile: are not converted. Emoji typed as characters work.Not available yet: exporting to HTML or PDF, and a presenter view with notes and a timer.
Spotlight Slides makes no network requests and has no telemetry or analytics. It reads only the note you present and the files that note refers to in your vault. External links open in your browser only when you select them.
Spotlight Slides is built on Marp Core and Marpit, by the Marp team, under the MIT license.
You need Node.js 22.12 or newer.
npm install
npm run dev # rebuild on change
npm run build # type-check and bundle main.js
npm test # unit tests
npm run lint
To try it, link the project folder to <your vault>/.obsidian/plugins/spotlight-slides and run npm run dev.
How it works: the pieces Marp cannot render are cut out of the note and replaced by plain tokens, Marp turns the rest into slides, and Obsidian renders each piece and puts it back.
src/
main.ts commands and ribbon icon
present.ts where the slides open: tab, side or window
view.ts the slide view: keys, links, live updates
controls.ts buttons, counter and progress bar
scroll-indicator.ts
render/
slides.ts the pipeline, in order
auto.ts automatic mode: where to cut
callouts.ts embeds.ts footnotes.ts images.ts inline.ts math.ts tasks.ts
postprocess.ts Obsidian renders each piece back into the slides
theme.ts the Marp theme that follows the Obsidian theme
test/ a stand-in for the obsidian module
Distributed under the MIT license.
Made by the spanish guy with 🖤
/> フ
| _ _|
/` ミ__^ノ
/ |
/ ヽ ノ ╱|、
/ | | | (˚ˎ 。7
/ ̄| | | | |、˜〵
( ̄ヽ__ ヽ_)__) じしˍ,)ノ
\二)