SliDesk

SliDesk
SliDesk

Markdown slides with native translations and file includes. One binary, no build step.

β†’ / ← or swipe to move between slides

Write in Markdown

## Hello πŸ‘‹

Each `##` starts a slide.

/*
Notes for the speaker view
*/

No Vue, no React, no config: a .md file is a talk.

Split it into files

demo/
β”œβ”€β”€ main.md        ← !include(slides)
β”œβ”€β”€ slides/
β”‚   β”œβ”€β”€ 01-markdown.md
β”‚   β”œβ”€β”€ 02-includes.md
β”‚   └── …
β”œβ”€β”€ en.lang.json
└── fr.lang.json

One !include(slides) pulls a whole directory, in order. This talk is built that way.

One talk, many languages

Slides hold $$key$$ variables, the words live in en.lang.json, fr.lang.json…

slidesk my-talk          # English
slidesk -l fr my-talk    # French, same slides

Voir cette dΓ©mo en franΓ§ais β†’

Layouts

Templates are plain HTML with named blocks. Themes, components and plugins are shared on the hub.

## My slide .[#split]

[[left]]
On the left
[[/left]]

A real speaker view

Open the speaker view of this demo β†—

Export and share

slidesk export -t pdf my-talk     # my-talk.pdf
slidesk export -t pptx my-talk    # my-talk.pptx
slidesk save -t public my-talk    # a static site
slidesk link host my-talk         # online for 72 h

PDF, PowerPoint, a static site for GitHub or GitLab Pages, or hosted on slidesk.link.

Bring your existing decks

slidesk import deck.pptx
slidesk import https://docs.google.com/presentation/d/…
slidesk import slides.md -t slidev
slidesk import index.html -t revealjs

PowerPoint, Google Slides, Slidev and reveal.js decks become SliDesk talks.

Present from a terminal

slidesk -t my-talk
telnet localhost 2323

Yes, really: --telnet serves a text version of your talk.

Get started

brew install gouz/tools/slidesk
slidesk create my-talk
slidesk my-talk