Org Mode in Hakyll The Ultimate Toolkit for Publishing?

Posted in: emacs, haskell.
Posted on December 21, 2016

As an Emacs user I’m really glad that I can benefit from full power of Pandoc thanks to Hakyll while creating this site. One of the Emacs’ beloved mode - org-mode is supported by Pandoc therefore you can use it as markup language in Hakyll. Org-mode is really powerful. There is only problem with it - it’s almost exclusive for Emacs environment. Github maybe supports org preview but true power of org comes from editing experience in Emacs. Because Org is so exclusive to Emacs (written in E-Lisp) it’s hardly default markup even for many Emacs users simply because many of them has to to support all kinds of users not just ones who happen to use Emacs and org. Markdown is de-facto standard these days. This is for example why I’m personally also writing markdown daily. However this is quite different when it comes to project maintained only by one person - you. Org mode is simply so much better for taking notes, creating to-dos and much more that it become one of the most successful Emacs extension. Especially when it comes to literate programming which is what I mostly trying to do on this blog and more generally reproducible research which is movement I’m pretty big fan of. I’m also actively looking for interesting ideas and tools since I’ve discovered Jubyter notebooks about a year ago.

To be honest since I’m mostly working on documents maintain by group of people (mostly colleagues) I’m not really an expert on org-mode. Anyway I was working on new blog post recently where I would really appreciate some of Org’s features. This is why I’ve recently added org support to this site willing to test Pandoc support. I’ve also decided to keep this document public on this site as a kind of reference which might be helpful to some folks.

Actually this is the end of post itself. Everything below is just to test how Pandoc handles org files.

This is H1

There is paragraph under h1



Some basic test

This is bold, italic, code, verbatim and strike text.

  • However bold and italic doesn’t play well when used together like in markdown.
  • However bold and italic doesn’t play well when used together like in markdown.


  • Bullet
  • Another bullet
    • child
      • deep

Other style

  • Bullet
  • Another bullet
    • child
      • deep

Other style

  1. Bullet
  2. Another bullet
    1. child
      1. deep

Style * isn’t supported.

Check List [1/3] [33%]

  • [ ] Item
  • [ ] Item
  • [X] Checked item

Heading and has special class however <ul> and <li> are plain.

Task List

TODO some to-do

DONE done to-do

Items are added with special class.


number description
1 looooong long name
5 name

<tr> has even and odd classes.

Source Code

Emacs Lisp:

(defun negate (x)
    "Negate the value of x."
    (- x))
    (negate 10))

There are interesting classes like sourceCode and example. Also there html5 attributes prefixed with rundoc-.


factorial :: Int -> Int
factorial 0 = 1
factorial n = n * factorial (n - 1)


  • Characters: α β → ↑ ∨ ∧ ⟹ π ∞
  • Inline Math: f(x) = x2
  • More complex: $\frac{x^2}{2}$

LaTeX characters are wrapped in <em> and Math inside <span class="math inline">.


NOTE: There is standard LaTeX embeded above which is skipped during compilation to HTML.

This is using

$$\sum_{i=0}^n i^2 = \frac{(n^2+n)(2n+1)}{6}$$


Tagged tag

Tags are not visible in render

Block Quote

Org mode is amazing. So is Hakyll & Pandoc.


Images has to have extension like:

then it can be loaded even from other origin..

Description List

The hobbit ringbearer
The human ranger, true kind of Gondor
The Grey Wizard

creddits to


This has some1 foot note.

  1. The link is:↩︎

Since I'm not a fan of disqus or any other commenting system there is no disscusion under this post.
However I do like reddit as a platform so feel free to shout here: