Serving multiple #CALIcon15 presentations with reveal.js

I have 4 sessions to present at CALICon15 this year and that means a lot of slides. Over the past few years I’ve tried a number of different approaches to putting together presentations including using outlines, wikis, AsciiDoc with deck.js, even plain old web pages. This year I’m giving reveal.js a try.

Reveal.js is a framework for easily creating beautiful presentations using HTML. It includes a lot of really handy features including speaker notes and a multiplexing plugin that allows viewers to follow a guided version of the presentation. The full installation gives me a nice node.js infrastructure that serves the slides and all I need to do is write an HTML file for each presentation.

Of course the basic installation instruction show you how to grab the code, then create and serve a single presentation. Even though I’m using git for versioning, I didn’t want to keep up 4 separate repos or even branches of code. I want to have all the HTML for the presentations in a single directory, in a single repo. I needed to figure out how to serve up multiple presentations from a single reveal.js installation.

It turns out there is a quick way to do this. I copied the included index.html to sample.html, for future reference and edited index.html into a single slide that links to 4 other html files. Each of the other files contains one presentation. This gives me a single code base for all the presentations and easy access to all of the features of reveal.js.

My presentations for CALIcon15
My presentations for CALIcon15

For my next step I’m going to give the multiplexing feature a try so folks can follow along. I think that there a lot of potential here for law schools to make use of this sort of tech in the classroom. Fast presentations that are shared directly with students would be something worth looking into.

Adding custom slash commands to Slack

Slack’s custom slash commands perform a very simple task: they take whatever text you enter after the command itself (along with some other predefined values), send it to a URL, then accept whatever the script returns and posts it as a Slackbot message to the person who issued the command. What you do with that text at the URL is what makes slash commands so useful.

For example, you have a script that translates English to French, so you create a slash command called /translate, and expect that the user will enter an English word that they’d like translated into French. When the user types /translate dog into the Slack message field, Slack bundles up the text string dog with those other server variables and sends the whole thing to your script, which performs its task of finding the correct French word, chien, and sends it back to Slack along with whatever message you added with your script has, and Slack posts it back to the user as The French word for "dog" is "chien". No one else on the team will see message, since it’s from Slackbot to the user.

— via Creating Custom Slash Commands for Slack

Great tutorial walking you through one of the many useful features of Slack. This will get included in the CALIcon15 session.