Modular presentations with reveal.js and Jekyll
Those who know me know that I’m not a big fan of using Powerpoint for presentations. Even before I read Tufte’s The Cognative Style of Powerpoint I already had a sort of aversion for Powerpoint style. For several years I’ve been using JessyInk, which, despite its appearance of unexcitement, is actually a spectacular way of creating really nice and powerful presentations, backed by the power of a world-class vector graphics illustrator (Inkscape) for every slide. In my opinion, it simply blows Powerpoint out of the water.
Since I’m always interested in the art of presentation, I’ve been watching the community closely over the past few years and seen some new exciting developments. One that I’ve started to use and like is reveal.js, which is a javascript framework for building presentations in HTML. What I like about it is that it’s lightweight, simple, and fast – and, it separates style from content, which is really cool.
So, essentially you’re writing your presentation in HTML. Since I’ve been building web pages since I was about 14, this is a major bonus! This makes it quite different from using Powerpoint, and there are some advantages and some disadvantages. One of the main advantages is that it makes it really easy to make your presentations modular – especially when you combine it with a templating engine like Jekyll. For example, many of my presentations have an Acknowledgements slide; in Powerpoint (or JesseInk), I create this slide and then paste it into each presentation, maybe tweaking it as time goes on. With reveal.js, I can create a single Acknowledgements slide, and then just include it at the end of each presentation. Now, when I update the slide, it updates all my presentations automatically.
Now imagine creating a bunch of sub-presentations. I can easily put together a new presentation by mixing and matching these modular components. Seems like an interesting idea. I’ve merged reveal.js with Jekyll on this site and it makes really slick, markdown or HTML presentations with a common external style. For example, I could change the look and feel of all my presentations at once. Not sure how useful that is, but it illustrates the power of the templating system; I can just create a few different templates, and then my presentations are nothing more than pretty simple, human-readable documents (web pages) that subscribe to a particular theme. I think for simple stuff it’s clearly the way to go.
The other thing I love about reveal.js is the web sharability of presentations. It’s just so easy to stick them on a web server and anyone interested in the topic can get an overview. I think it’s really a step in the right direction for open science.
Anyway, as I start to embrace reveal.js (and try to convince others to do the same), I’m going to start putting together my presentations publicly on the web. You can take a look at what I’m up to in the newly created slides page. Feedback and tips welcome!