Skip to content


Subversion checkout URL

You can clone with
Download ZIP
Tag: v0.6.0
Fetching contributors…

Cannot retrieve contributors at this time

265 lines (176 sloc) 7.046 kB



Generates a slideshow using the slides that power the html5-slides presentation.


A sample slideshow is here.



Version 0.6.0 is tagged and pushed to pypi. New features:

  • Press t to toggle a table of contents for your presentation
  • Press n to toggle slide number visibility
  • Press '2' to toggle notes in your slides (specify with the .notes macro)
  • ReST (Restructured Text) support. It's kind of experimental!
  • Theme support. Develop your own themes!
  • Macros. Easily add functionality to landslide slideshows!
  • Many bug fixes


  • Version 0.4.0 is tagged, and Landslide is on pypi.
  • Landslide installs as a command line script if you install it via easy_install or pip.


  • Write your slide contents easily using the Markdown or ReStructuredText syntaxes
  • HTML5, Web based, stand-alone document (embedded local images), fancy transitions
  • PDF export (using PrinceXML if available)


python and the following modules:

  • jinja2
  • pygments for code blocks syntax coloration


  • markdown if you use Markdown syntax for your slide contents
  • docutils if you use ReStructuredText syntax for your slide contents



  • To create a title slide, render a single h1 element (eg. # My Title)
  • Separate your slides with a horizontal rule (--- in markdown)
  • Your other slides should have a heading that renders to an h1 element
  • To highlight blocks of code, put !{lang} where {lang} is the pygment supported language identifier as the first indented line


  • Use headings for slide titles
  • Separate your slides using an horizontal rule (---- in RST)


  • Put your markdown or rst content in a file, eg or slides.rst
  • Run landslide or landslide slides.rst
  • Enjoy your newly generated presentation.html

As a proof of concept, you can even transform this annoying README into a fancy presentation:

$ landslide && open presentation.html

Or get it as a PDF document, at least if PrinceXML is installed and available on your system:

$ landslide -d readme.pdf
$ open readme.pdf


  • Press left arrow and right arrow to navigate
  • Press t to toggle a table of contents for your presentation. Slide titles are links
  • Press n to toggle slide number visibility
  • Press '2' to toggle notes in your slides (specify with the .notes macro)
  • Browser zooming is supported


You can use macros to enhance your presentation:


Add notes to your slides using the .notes: keyword, eg.:

# My Slide Title

.notes: These are my notes, hidden by default

My visible content goes here

You can toggle display of notes by pressing the 2 key.


Several options are available using the command line:

$ landslide/landslide 
Usage: landslide [options] ...

Generates fancy HTML5 or PDF slideshows from Markdown sources

  -h, --help            show this help message and exit
  -b, --debug           Will display any exception trace to stdin
  -d FILE, --destination=FILE
                        The path to the to the destination file: .html or .pdf
                        extensions allowed (default: presentation.html)
  -e ENCODING, --encoding=ENCODING
                        The encoding of your files (defaults to utf8)
  -i, --embed           Embed base64-encoded images in presentation
  -t THEME, --theme=THEME
                        A theme name, or path to a landlside theme directory
  -o, --direct-ouput    Prints the generated HTML code to stdin; won't work
                        with PDF export
  -q, --quiet           Won't write anything to stdin (silent mode)
  -v, --verbose         Write informational messages to stdin (enabled by

Note: PDF export requires the `prince` program:

Advanced Usage

Setting Custom Destination File

$ landslide -d ~/MyPresentations/KeynoteKiller.html

Working with Directories

$ landslide slides/

Working with Direct Output

$ landslide -o | tidy

Using an Alternate Landslide Theme

$ landslide -t mytheme
$ landslide -t /path/to/theme/dir

Embedding Base-64-Encoded Images

$ landslide -i

Exporting to PDF

$ landslide -d PowerpointIsDead.pdf


A Landlside theme is a directory following this simple structure:

|-- base.html
|-- css
|   |-- print.css
|   `-- screen.css
`-- js
    `-- slides.js

Theme Variables

The base.html must be a Jinja2 template file where you can harness the following template variables:

  • css: the stylesheet contents, available via two keys, print and screen, both having:
    • a path_url key storing the url to the asset file path
    • a contents key storing the asset contents
  • js: the javascript contents, having:
    • a path_url key storing the url to the asset file path
    • a contents key storing the asset contents
  • slides: the slides list, each one having these properties:
    • header: the slide title
    • content: the slide contents
    • number: the slide number
  • embed: is the current document a standalone one?
  • num_slides: the number of slides in current presentation
  • toc: the Table of Contents, listing sections of the document. Each section has these properties available:
    • title: the section title
    • number: the slide number of the section
    • sub: subsections, if any

Styles Scope

  • To change HTML5 presentation styles, tweak the css/screen.css stylesheet bundled with the theme you are using
  • For PDF, modify the css/print.css


Original Author and Development Lead



Base Template Authors and Contributors (html5-slides)

Jump to Line
Something went wrong with that request. Please try again.