kramdown is a fast, pure Ruby Markdown superset converter, using a strict syntax definition and supporting several common extensions.

It is behind the conversion of the Markdown files for this website and many others. The popular static website generator Jekyll in version 3 also uses it as its default Markdown engine which incidentally means that Github Pages uses it, too.


kramdown was developed because the maintainer of Maruku, the best Markdown converter for Ruby in 2008, didn’t have time for Maruku anymore but there were still bugs in it. After looking at the code of Maruku it was clear that fixing the problems and adding additional functionality would probably mean a massive redesign.

Therefore I developed kramdown from scratch, taking the best ideas from Maruku, like the inline attribute lists, and other Markdown implementations like PHP Markdown Extra.

After about a year of development and once kramdown was in a usable state I released the first version 0.1.0 in November 2009. Since then major enhancements have been added and its functionality greatly extended.

Finally, in March 2013 the first stable version 1.0.0 was released. The biggest change in this release was actually a change in the license, from GPL to MIT. Although repeatedly asked to do this I was initially reluctant. However, at that time there was a proliferation of Markdown converters for Ruby and to further adoption of kramdown the license changed was probably the right thing.