Bedecked converts markdown files to portable html5 presentations. I'm open to adding support for other templating engines too, right bedecked also supports jade and vanilla html.
Inspired by hackynote, I wanted a simple way to build snazzy presentations from markdown files that I could export as a single HTML document. Pop those in your public dropbox folder (or S3, or whatever) and share.
Bedecked looks for consecutive empty lines in your source file to insert slide breaks, for example:
## My first slideThis will be on one slide## My second slideThis will be on a new slide (notice the two empty lines above the heading)### Another slideMore than two empty lines is fine too.
Install bedecked globally to get access to the cli with:
npm install -g bedecked
You can also use bedecked api locally in your app:
npm install --save bedecked
After a global install you'll have access to the
bedecked [options] <file>
<file> is your markdown file. Your html presentation will be written to
stdout so you'll most often be sending that directly to a file:
bedecked my_prez.md > my_prez.html
Bedecked has built in options to switch the presentation theme, templating engine, start a live reload server, and more. We're using reveal.js for presentations and all reveal configuration options can be set with the bedecked cli.
bedecked --help for more information on command line usage.
Using the same options over and over? Have a favorite theme? Bedecked will read
$home/.bedeckedrc if it exists. The file should be in JSON format
and can override any option listed
The bedecked module exports a single method:
var bedecked =presentationFile = 'path/to/my/prez.md'opts =engine: 'markdown' // markdown | jade | htmltheme: 'black' // See available themesprotocol: 'https:' // http: | https: | ''title: 'Just Another Bedecked Presentation'revealjsVersion: '3.0.0'// SeeoptAutoSlide: 0optAutoSlideStoppable: trueoptCenter: trueoptControls: trueoptEmbedded: falseoptFragments: trueoptHideAddressBar: trueoptHistory: falseoptKeyboard: trueoptLoop: falseoptMouseWheel: falseoptOverview: trueoptPreviewLinks: falseoptProgress: trueoptRtl: falseoptSlideNumber: falseoptTouch: trueoptViewDistance: 3;// All options are optional ;) as is the opts parameter itself;
It would be a real pain to have to run
bedecked whenever you wanted to see
your latest changes. Bedecked ships with a live reload server to support
interactive presentation development. Try
bedecked --server my_prez.md or view
bedecked help server for more information.
The default port
bedecked --server uses is
9090. You can set a different
port by adding the
--port <portNumber> option:
bedecked --port 80 --server my_prez.md
Note that the
port options are only available with the bedecked
You can develop, build and run Bedecked using Docker. You can also package and run Bedecked presentations as self-contained Docker images.
No installation other than Docker is necessary in any case.
A Dockerfile is included to allow you to develop and build Bedecked using standard Docker workflow.
docker build -t bedecked .
docker run --rm -it -p 9090:9090 bedecked your_prez.md --server [options...]
You can run your local Bedecked presentations without installing anything (other than Docker):
$ docker run --rm -it -p 9090:9090 -v [your_host_prez_dir]:/presentation/ jtrussell/bedecked /presentation/your_prez_file.md --server [other options...]
--rm instead of
-d makes the container to not go to background and to be deleted after stop. Should stop by
CTRL+C'ing it, but doesn't work because of #28. Use
docker stop from another terminal, instead.
Just create a file named
Dockerfile in your presentation's source directory. Use the following as example and customize as needed:
FROM jtrussell/bedecked # Add presentation file(s) COPY index.md /presentation/ # Set options for Bedecked executable CMD [ "/presentation/index.md", "--server", "--opt-slide-number", "true", "--opt-slide-number", "true", "--opt-mouse-wheel", "true" ]
Build and run the resulting image using standard Docker workflow. See Docker docs for more information.
Test and lint with
grunt watch to run tests interactively.
Use the tag bedecked on Stack Overflow. For quick things I can be reached on twitter @jusrussell.