Awesome Open Source
Awesome Open Source

markdeck - presentations as code

author cool slide decks, text-only, offline-ready, collaborative


markdeck reloaded

In the past years maintaining markdeck, some questions (problems?) came up over and over again. Following some keyphrases:

  • what about that pesky docker dependency?
  • multi-user setup, how?
  • windows support?
  • what a poor performance...
  • native installation is cool.

I myself found it more and more difficult to bundle all the needed software packages, to improve performance, to add new features and fix bugs... and then delivering a 1GB docker image collection, yikes

So in the upcoming release (v0.60), markdeck gets reloaded (oh no, a rewrite, that cannot work!): the two main docker container (pandoc and liveserver) get merged and reimplemented in rust; and delivered as a binary, not a docker image.

It still is a bit rough around the edges (sanity check at startup: everything there where expected? ), and for render_a2s the docker container is still needed (no way to reimplemented that nodejs/php beauty). But it is working already quite well, so I keep you posted...

why markdeck?

  • converts markdown to a clean html5 slide deck
  • cool looking: based on battle-proven web frameworks, like reveal.js
  • no uplink required, neither when authoring, nor presenting: no awkward moments during presentation (no "I am still waiting for the Internet, sorry!")
  • all batteries included: live renderer, pdf output, asciiart-converter
  • text-only, easy syntax: just markdown
  • fast-n-easy to write: bring your own editor!
  • easy to collaborate-n-reuse: text-only, so bring your own VCS
  • eye-candy: supports unicode, emojis, fontawesome, asciiart, math, charts, code highlighting, recorded terminal sessions, ...
  • self-documenting documentation slides: see the slide source and the result, side-by-side

You can also visit the shiny landing page, the revealjs showcase, or the impressjs showcase.

install markdeck, tl;dr

You need bash, curl, and docker-compose, then run the following commands:

curl -LO
chmod a+x markdeck
./markdeck pull

The markdeck script can be stored in a folder in $PATH so that it can be executed from everywhere in the file system.


... can be found in

how to start from scratch

Run the following command to create an empty presentation (if markdeck is not stored in $PATH prefix the command with ./):

markdeck scaffold

Run the following command to start markdeck:


Open the browser at http://localhost:8080.

edit, add assets/, consult documentation, ...

how does this work

markdeck takes slide-*.md files in markdown format and the assets subdir and renders a html5 slidedeck, using pandoc as converter and reveal.js as the presenter framework.

see the side-by-side view, to get an idea how markdeck works and looks like, or have a look at the documentation.

based on

markdown, pandoc, reveal.js, plantuml, ditaamini, asciitosvg, graphviz, asciinema, decktape, vega-lite, mathjax-pandoc-filter, and font-awesome.

known issues

  • custom layout hard, but possible
  • pixel-perfect layout nearly impossible
  • see the todos

similar projects

Alternatives To Markdeck
Select To Compare

Alternative Project Comparisons
Related Awesome Lists
Top Programming Languages
Top Projects

Get A Weekly Email With Trending Projects For These Topics
No Spam. Unsubscribe easily at any time.
Html (253,148
Markdown (28,493
Slides (13,454
Presentation (10,235
Collaboration (6,120
Offline (5,533
Deck (3,607
Pandoc (2,337
Graphviz (2,046
Ascii Art (845
Plantuml (842
Mathjax (782
Markdown To Html (238
Reveal Js (233
Vega Lite (131
Pandoc Filter (65
Asciinema (37
Slide Deck (16
Ditaa (12