Skip to content


Subversion checkout URL

You can clone with
Download ZIP
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...
Latest commit 71f423e @chrishulbert Handing over


Please go to 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 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 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 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
Something went wrong with that request. Please try again.