markdeck - presentations as code
author cool slide decks, text-only, offline-ready, collaborative
why?
- 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.
tldr
Choose the right binary to download:
# MacOS (Intel)
curl -Lo markdeck https://github.com/arnehilmann/markdeck/releases/download/v0.60.0/markdeck.x86_64-apple-darwin
# Linux
curl -Lo markdeck https://github.com/arnehilmann/markdeck/releases/download/v0.60.0/markdeck.x86_64-unknown-linux-musl
chmod a+rx ./markdeck
./markdeck init my-slides
cd my-slides
../markdeck
open http://localhost:8080/
open http://localhost:8080/admin.html
# edit slides.md, add assets/*, examine example deck, read documentation, create ascii-art, ...
optional components
Renderer | Needed Component | Installation on MacOS |
---|---|---|
render_ditaa, render_plantuml | java runtime | brew install java |
render_dot | graphviz | brew install graphviz |
render_vegalite | vega-lite | brew install npm; npm install vega vega-cli vega-lite |
render_qr | qrencode | brew install qrencode |
render_svgbob | svgbob | brew install svgbob |
render_a2s, render_a2sketch | docker | docker run -d -p 22753:22753 arne/a2sketch:0.15 |
tldr, the old way
also see the old README.md for v0.54.
mkdir -p my-slides/deck && cd my-slides
echo -e '# Hello World!\n\n# Second Slide...' > slides.md
curl -LO https://raw.githubusercontent.com/arnehilmann/markdeck/main/docker-compose.yaml
docker-compose up
open http://localhost:8080/
open http://localhost:8080/admin.html
# edit slides.md, add assets/*, examine example deck, read documentation, create ascii-art, ...
links
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
- http://bigsense.github.io/
- http://slideshow-s9.github.io
- https://github.com/FormidableLabs/spectacle
- https://github.com/divshot/markdeck
- https://github.com/jxnblk/mdx-deck
- https://github.com/munen/p_slides
- https://github.com/regebro/hovercraft
- https://github.com/sinedied/backslide
- https://gitpitch.com/
- https://godoc.org/golang.org/x/tools/cmd/present
- https://www.deckset.com/
- https://yhatt.github.io/marp/