1 Mar 2011 dgh   » (Journeyer)

Breakdown: Markdown for presentations

Recently I've been giving a few talks, and anticipate giving several more in the near future, and have been getting annoyed at how time-consuming writing the slides is. My current preferred (read: least despised) tool for writing slides is LaTeX Beamer, which is a fairly good compromise between simplicity, control and quality. However, the markup is still somewhat verbose, and hence time-consuming to edit.

To make things easier, I wrote a tool, Breakdown, which converts Markdown to Beamer. Of course, Markdown only has limited text formatting capabilities, so Breakdown passes through LaTeX commands. This way, the easy things are easy and hard things are possible.

For example, the markup:


# Breakdown

Write your presentations in Markdown!

 * Quick and simple
 * Use \LaTeX syntax when you need to, e.g.
     * for equations: $e^{i\pi} + 1 = 0$
     * for ``quoting'' things
     * for images, code listings, tables, quotations\ldots

Gets converted to:

Conversion can be automated using a couple of Makefile rules:

  %.pdf: %.tex
        rubber -d $<

%.tex: %.mdwn
        breakdown < $< > $@

Thankfully, the excellent Pandoc Haskell library does msot of the work; most of the Breakdown code is for splitting the input into slides.

Breakdown has a competitor in wiki2beamer, but I like the fact that Breakdown uses a standard markup language and standard TeX commands with a very small amount of custom syntax, rather than a custom wiki-style markup. Each to their own.

The code is in a git repository.

Syndicated 2011-03-01 19:40:26 from Dafydd

Latest blog entries     Older blog entries

New Advogato Features

New HTML Parser: The long-awaited libxml2 based HTML parser code is live. It needs further work but already handles most markup better than the original parser.

Keep up with the latest Advogato features by reading the Advogato status blog.

If you're a C programmer with some spare time, take a look at the mod_virgule project page and help us with one of the tasks on the ToDo list!