Skip to content
100% local

Text to presentation slides

Split plain text into Markdown slides for Marp or reveal.js.

Input

Text to presentation slides

Paste an outline, a set of notes or a Markdown document and this tool splits it into slides in the Markdown format that Marp and reveal.js both read directly. Each slide is separated by a marker line, so the result can be dropped straight into a Marp-enabled editor or a reveal.js deck without any reformatting.

Choose how the text is divided: by headings, so every "##" (or whichever level you pick) starts a new slide, or by a fixed number of lines per slide for notes that have no heading structure. Turn on "Convert bullets to slide points" to normalize mixed list markers into clean "-" points and cap how many appear on one slide with "Max bullets per slide" — anything past the limit is trimmed and counted in the tally rather than left to overflow the screen. "Add speaker notes from paragraphs" moves the paragraph that follows a slide's bullets into a presenter-notes comment instead of showing it on the slide itself.

A title slide and a contents slide are generated on request, each pulling from the actual structure of your text rather than being separate steps to write by hand. Numbering appends a slide count to every slide, and a Marp-style header can be prepended with the theme and the document's title. Slides whose visible text runs long are flagged so you catch an overloaded slide before presenting it, and the tool works the same whether your notes use Windows or Unix line endings.

Everything runs locally in your browser — nothing you paste is uploaded anywhere. Copy the Markdown, download it as a .txt file, or send the output back into the input to keep refining the split.

FAQ

Does the output work with Marp and reveal.js?
Yes. Slides are separated by a marker line (three dashes by default), which both Marp and reveal.js recognize as a slide boundary in Markdown mode.
What happens to bullet lists longer than the max?
Points beyond the limit you set are trimmed from that slide and the trimmed count is shown in the tally, so nothing overflows silently.
Where do speaker notes come from?
When enabled, the paragraph that follows a slide’s bullet list is moved into an HTML comment instead of the visible slide, which Marp reads as presenter notes.
How does splitting by line count work without headings?
Your text is grouped into fixed-size chunks of the number of lines you choose; if a chunk starts with a Markdown heading line, that line becomes the slide title.
Is my text uploaded anywhere?
No. The split runs entirely in your browser using JavaScript — your notes never leave your device.