Skip to content

Import an existing deck

Move a talk you already have — PowerPoint, Google Slides, Slidev or reveal.js — into SliDesk.

slidesk import deck.pptx -o my-talk
cd my-talk && slidesk

The import gives you the content of the deck as editable Markdown. The original layout is not reproduced: you restyle it with a SliDesk theme, which is usually the point of moving over.

From PowerPoint

slidesk import deck.pptx -o my-talk

Titles, bullet lists with their nesting, tables, links, bold and italic, speaker notes and embedded images are converted. Images land in assets/ and are referenced with !image().

From Google Slides

slidesk import "https://docs.google.com/presentation/d/ABC.../edit" -o my-talk

SliDesk downloads the PowerPoint export of the presentation, so the deck must be shared with anyone with the link. If it is private, download it yourself (File > Download > Microsoft PowerPoint) and import the .pptx.

From Slidev

slidesk import slides.md -o my-talk       # or: slidesk import ./my-slidev-dir

Slides are split on ---, headmatter gives the deck title, per-slide layout and class become SliDesk classes, and a trailing <!-- ... --> becomes speaker notes. Separators inside fenced code blocks are left alone.

Vue components (<Tweet/>, v-click, …) are copied as-is — they will not do anything in SliDesk, remove them or replace them with a plugin.

From reveal.js

slidesk import talk/index.html -o my-talk

Each <section> becomes a slide, vertical stacks are flattened into consecutive slides, data-markdown sections keep their Markdown, and <aside class="notes"> becomes speaker notes. Image src paths are kept untouched, so copy your asset folder next to the imported talk.

After the import

The generated talk is a normal SliDesk talk:

my-talk/
├── main.md          # !include(slides)
├── slidesk.toml     # TITLE
├── slides/          # one file per slide, in order
└── assets/

Rework it slide by slide, add a theme, and use templates for the layouts you had in the original deck.

If the format is guessed wrong, force it:

slidesk import weird-file -t revealjs -o my-talk