HTML slideshow exporters for the new org export framework
Emacs Lisp CSS JavaScript
Switch branches/tags
Nothing to show
Latest commit d2965a4 Jul 8, 2015 @titaniumbones titaniumbones committed with Rick Frankel ox-deck: parse checkboxes properly
Previously, list items with checkboxes would not build properly. This
trivial and clumsy patch fixes that.
Failed to load latest commit information.
.gitignore as copied from latest org contrib Feb 24, 2013


This repository contains emacs lisp files providing HTML slideshow export and publishing options for the new org-mode version 8 export framework. The latest org-mode is available for checkout at git://, and includes these classes in the contrib/lisp directory.

The Exporters


This will export/publish an org outline (or subtree) to a deck.js slideshow.


  1. Get a copy of deck.js from or the github repositiory at
  2. Customize the variable org-deck-directories to include the path to the directory created in (1) above. This is required to automatically identify available deck components (extensions, themes and transitions).
  3. The exporter will create links to the themes, transitions and extensions relative to the customization variable org-deck-base-url.


The method org-deck-list-components, will list all the available extensions, themes and transitions in the directories included in org-deck-directories.

The following variables (in the customization group org-export-deck) are available to customize the slideshow generation:

optionin buffer optionpublishing optiondefault

Using “builds”

deck.js creates “builds” through nested slides — any block level element with the class “slide” will be treated as a build. The exporter has two ways to accomplish this:

  1. Set the :HTML_CONTAINER_CLASS property on a headline to a string including slide.
  2. To build a list, set the :STEP property on the enclosing headline to t.

Generating HTML5 compatible slideshows

Standard org outlines are generated as XHTML 1.0 compatible documents. The “standard” for deck.js is HTML5. The latest version of the org exporter will allow you to modify the output as follows. By modifying the following options/variable:

optionin buffer optionpublishing optionvalue
org-html-doctypeHTML_DOCTYPE:html-doctype<!DOCTYPE html>
org-html-divs((preamble “header” “preamble”) (content “article” “content”) (postamble “footer” “postamble))

Note that org-html-divs cannot be set with a customization or in-buffer option, but must be set with a BIND or local variable.


This will export/publish an org outline (or subtree) to an s5 slideshow.


  1. Get a copy of the s5 scripts from
  2. The exporter will create links to the javscript file and the generic stylesheets in the default directory under :s5-ui-url (org-s5-ui-url).


The following variables (in the customization group org-export-s5) are available to customize the slideshow generation:

customization variablein buffer optionpublishing optiondefault

Note that if the :s5-theme-file is nil, it will use the file default/screen.css relative to :s5-ui-url.

Using “builds”

s5 creates “builds” by including the class incremental on a headline or list (ul or ol). You can set the HTML_CONTAINER_CLASS property on a headline to “incremental”, to make it build. To make a list build, set the INCREMENTAL property on the parent headline to t.

Generating XOXO style slideshows

XOXO style slideshows (see S5 (XOXO Version)) can be generated by setting the org-html-container-element to li. This can be done in a number of ways as show in the table above under Generating HTML5 compatible slideshows.

deck.js extension

onepage is a deck.js exension which, logically, will display a deck.js slideshow as a single scrolling page. It can be toggled with the ‘o’ key, and will print with slides separated by rule instead of one slide per page.