This is a simple to use template for creating Reveal.js presentations using Markdown alone that comes along with a useful build script.
Clone or download
Fetching latest commit…
Cannot retrieve the latest commit at this time.
Type Name Latest commit message Commit time
Failed to load latest commit information.

dSebastien's reveal.js presentations template


This is a simple to use template for creating Reveal.js presentations using Markdown alone that comes along with a useful build script.

Using it you can:

  • Create your slide deck using markdown alone
  • Edit your metadata in a single configuration file
  • Tweak Reveal.JS as you wish in the provided template
  • Use a few NPM commands to build your presentation and serve it to the world
  • See the results live (thanks to BrowserSync)

Status & roadmap

Check out the current TODO list


  • Clone the repository
  • Run npm install --no-optional to download all dependencies
  • Edit the slide deck using markdown: presentation/
    • you can create additional markdown (md) files and they'll get merged into a single slide deck
    • additional md files MUST start with --- (slide separator) otherwise the merge operation will not do what you want. The file names will dictate the order in which they're merged (i.e., follow a natural order in your filenames)
    • note that '' must exist and is always loaded first. All other files are appended to this one before all the markdown is converted to reveal.js HTML slides
    • for more details, check the edition section below
  • Run npm run debug to quickly launch the presentation based on the Markdown contents using reveal-md.
    • note that the debug mode won't take your metadata and configuration into account.
    • moreover, the debug mode doesn't support multiple markdown files, it'll only take the one into account
  • Run npm run build to convert your presentation to HTML
  • Run npm run serve to watch your presentation for changes, automatically convert to HTML and display the results in your browser
  • Run npm run clean to clean all output directories
  • Run npm run help to list all available commands

Options and customization

You can customize the options and metadata (e.g., deck title, author, description, theme, ...) by editing the 'presentation/config.json' file.

If you need, you can add additional entries to the configuration file and refer to these using {{key}} (without whitespace inside) in your slide deck. The placeholders will all get resolved during the build. This is useful in case you reuse code/contents across slides in your deck.

Note that all entries having a key ending with '_comment' in the config file just serve as comments given that comments aren't supported in JSON :)

You can also adapt the template file and refer to custom placeholders within.

Finally, if you wish to customize the template or the options of Reveal.js, then you can edit the 'presentation/template.html' file. Reference for Reveal.js options: By customizing the template, nothing prevents you from adding slides using HTML; this is useful when you want to benefit from all Reveal.js's capabilities.


Reveal.JS supports 'Common' Markdown, so just google Markdown to see what you can do :) There are only three Reveal.JS specific things that you should know/use:

  • use --- to mark the separation between slides (only needed before a slide, thus no need to put one at the end of the file
  • use ---- to state that the next slide should be placed below the current one
  • use note: to add speaker notes (don't ask me how these work, I don't use them)

Note that Reveal.js's fragments are also supported with Markdown:



Sebastien Dubois


This project and all associated source code is licensed under the terms of the MIT License.