21 May 2012

Aspirational & Useful: deck.rb with RStudio/knitr & Go2Shell

There has been some interest in the recent release of RStudio 0.96 and especially the ability to use combine its knitr Markdown functionality with Pandoc to integrate R and a variety of different documents types.

I just wanted to add two quick things (one mostly aspirational, the other useful)

Aspirational: Markdown/Ruby/deck.js

I am currently using this combination to put together a presentation based on a recent working paper. Maybe out of procrastination I decided to see if there was any way to use knitr/Markdown to write a deck.js presentation. I generally prefer deck.js to the three Pandoc HTML presentation types (slidy, S5, and dzslides).

Deck.js presentations are a pain to write, so it would be great if there was a program like Pandoc that could quickly convert a Markdown file into a deck.js presentation.

I discovered that there kind of is. There is a ruby program called deck.rb. The Markdown syntax is really simple and would be familiar to Pandoc users (individual slides are demarcated with the first level header #).

After you install deck.rb in the terminal with the usual:

    sudo gem install deckrb

you can easily build presentations in the command line with:

    deck myPresentation.md 

However, I’ve classified this as aspirational since it lacks a lot of functionality that Pandoc has, including:

  • There really aren’t title slides.

  • The slideshow opens as a locally hosted webserver, and the command to build a stand alone HTML presentation doesn’t seem to work that well (hence no example included with this post).

  • It only allows you to use the Swiss template.

  • I couldn’t figure out how to easily get MathJax support to display equations.

Maybe I won’t use use deck.rb for this presentation, but I will keep an eye on any developments.

Useful Tip: Command Line/Go2Shell

Since I’m on about the terminal and command line, I thought I might mention a small (free) program that is very helpful: Go2Shell. It is a little Mac application that only opens a new terminal window from the folder that you currently have open.

Very useful for easily setting your terminal working directory when, for example, making Pandoc presentations.

5 comments:

Yihui Xie said...

I'm also looking for a good markdown-to-deck.js conversion tool. If you find one some day, please let me know or write a blog post on it. Thanks!

Christopher Gandrud said...

I'll definitely post anything that I find.

And thanks for putting together knitr!

Ramnath said...

Check out slidify - An R package designed to make it easy to generate reproducible HTML5 slides, using knitr and R markdown. (https://github.com/ramnathv/slidify)

Alex Chaffee said...

I wrote deck.rb and I agree with all your feature requests -- I don't have a lot of time to work on the tool right now, but I'm open to patches or even persistent nagging :-)

Any idea on how to implement the last one? I'm using RedCarpet with markdown extensions; maybe there's one for equations, or maybe we can roll our own.

Alex Chaffee said...

"There aren't really title slides" -- If a slide contains only a single H1 then it gets really big... I agree that's not quite a title slide, but can you tell me more how you think a real title slide would work?