Better ruby markdown interpreter?

Jonathan Lonowski picture Jonathan Lonowski · Dec 16, 2008 · Viewed 25.6k times · Source

I'm trying to find a markdown interpreter class/module that I can use in a rakefile.

So far I've found maruku, but I'm a bit wary of beta releases.

Has anyone had any issues with maruku? Or, do you know of a better alternative?

Answer

outcassed picture outcassed · Dec 17, 2008

I use Maruku to process 100,000 - 200,000 documents per day. Mostly forum posts but I also use it on large documents like wiki pages. Maruku is much faster than BlueCloth and it doesn't choke on large documents. It's all Ruby and although the code isn't especially easy to extend and augment, it is doable. We have a few tweaks and extras in our dialect of Markdown.

If you want something that is pure Ruby, I definitely recommend Maruku.

For the fastest option out there, you probably want RDiscount. The guts are implemented in C.

See also: "Moving Past BlueCloth" on Ryan Tomayko's blog. Ryan's post includes the following benchmark of 100 iterations of a markdown test:

BlueCloth: 13.029987s total time, 00.130300s average
   Maruku: 08.424132s total time, 00.084241s average
RDiscount: 00.082019s total time, 00.000820s average


Update August 2009

BlueCloth2 was released (http://www.deveiate.org/projects/BlueCloth) It's speed is on par with RDiscount because it is based on RDiscount - it is not pure Ruby.

(Thanks Jim)


Update November 2009

Kramdown 1.0 was just released. I haven't tried it yet, but it is a pure-Ruby Markdown parser that claims to be 5x faster than Maruku.


Update April 2011

Maruku hasn't seen a commit since June 2010. You may want to look into Kramdown instead.

A new fast option that is not pure Ruby: GitHub has released Redcarpet, which is based on libupskirt: https://github.com/blog/832-rolling-out-the-redcarpet

Update August 2013

Kramdown is still a very healthy project (based on recent commits, outstanding issues, pull requests) and a great choice for a pure Ruby Markdown engine https://github.com/gettalong/kramdown

Redcarpet is probably still the most commonly used and actively maintained option for people that don't need or want pure Ruby.