Update: Follow link to recommended fork. For when you're giving a presentation in half an hour, and you haven't got the time to open up keynote...
Switch branches/tags
Nothing to show
Clone or download
Latest commit 71f423e May 24, 2013



Please go to https://github.com/jsakamoto/MarkdownPresenter for a more up-to-date fork of this app :)

Markdown Presenter

This is what I use for giving simple, quick-to-produce presentations. Rather than fighting with keynote or powerpoint for hours, I can whip up a presentation in minutes using markdown.

Demo and usage

Check out a demo here. Use the arrow keys on your keyboard to switch between slides.

You can reload the presentation at any time - staying on the same slide number - by pressing the spacebar.


You need to install this on a web server, otherwise it won't be able to open the presentation.md file via AJAX. So, if you're on a Mac, copy it to your ~/Sites/MyPresentation folder. Then open your web browser to http://localhost/~myusername/MyPresentation/Presenter.html.

On Linux or Mac you have also likely Python installed and can start its built-in web server in this directory by running python -m SimpleHTTPServer.

If you use IIS or IIS express copy all the MarkdownPresenter files to the webfolder (normally C:\Inetpub\wwwroot\<SiteFolder> on IIS and C:\Users\<User>\Documents\My Web Sites\<WebSite> on IIS express).

Also make sure that a MIME mapping for the .md extension is added. Either add the following mimeMap element to the applicationhost.config or the web.config file:

  <!-- there might be other configuration here. -->
    <!-- there might be other configuration here. -->
    <mimeMap fileExtension=".md" mimeType="text/plain" />

Markdown file

The presentation.md file is where you put your presentation. All you need to do to separate slides is a paragraph with an exclamation mark, eg:

This is a slide
Blah blah blah


This is another slide
Yada yada yada

How it works

The Presenter.html fetches the presentation.md from the server via Ajax, uses Showdown.js to transform it into HTML, splits it on <p>!</p> into individual slides, and displays the current slide.

Note: Showdown supports custom extensions that can either replace parts of the content based on a regular expression or transform the whole text. There are some extensions already available, for example prettify that adds support for syntax highlighting or support for tables.

The current version of the bundled Showdown.js is 0.3.1 from Nov 2012.


  • Reveal.js: full-featured HTML+JS presentation framework with support for Markdown in individual slides
  • PageDown - Stack Overflow's clone of Showdown