Maruku: a better Markdown interpreter for Ruby.

Andrea Censi andrea at
Thu Dec 28 17:46:47 EST 2006

> Maruku looks very nice overall, but I have one comment and one

> question.



> Question:

> Have you benchmarked Maruku against BlueCloth? If so, how does it

> compare?

Just did it.

This is the benchmark I used:

The input data is

These are the results on my Powerbook G4 (ruby 1.8.5, gcc 3.3):

BlueCloth (to_html): parsing 0.00 sec + rendering 2.16 sec = 2.17 sec
Maruku (to_html): parsing 1.83 sec + rendering 0.36 sec = 2.20 sec
Maruku (to_latex): parsing 1.87 sec + rendering 0.34 sec = 2.21 sec

These are the results on a Pentium 3 1.8ghz (ruby 1.8.5, gcc 3.4.3):

BlueCloth (to_html): parsing 0.00 sec + rendering 1.38 sec = 1.38 sec
Maruku (to_html): parsing 1.05 sec + rendering 0.25 sec = 1.29 sec
Maruku (to_latex): parsing 1.08 sec + rendering 0.20 sec = 1.28 sec

Considering that
1) for parsing, I am doing something very elegant to write but not the
more efficient thing.
2) for latex rendering, there are things very very inefficient.
3) I'm a novice ruby programmer so there are probably things done very stupidly
I guess that Maruku can be a 20-30% faster than Bluecloth if one
invests time in doing so. But at the moment, that's not my priority.

I was surprised to see it's already comparable in speed. :-D
Probably the magic is in the line-oriented parser: I'm using regexp
only for span-level elements.

> Comment:


> If you're going to support syntax extensions like PHP Markdown

> Extra's and MultiMarkdown's, you shouldn't call Maruku a Markdown

> interpreter. By default, "Markdown" should mean Markdown.


> The way Michel Fortin has handled this with PHP Markdown is ideal.

This deserves time to answer properly -- and in Italy it's time to bed.

Andrea Censi
"Life is too important to be taken seriously" (Oscar Wilde)

More information about the Markdown-Discuss mailing list