Announcing babelmark3


Hi there!

I’m pleased to announce the release of babelmark3 which is an improved version over babelmark2 and provides the following features:

  • the project babelmark3 is now hosted on github, accepting PR
  • the front-end (this site) is hosted on github-pages, the repository is using a plain jekyll website.
    • Modern look&feel
    • Add languages and link to original projects
    • Support for ctrl-enter
    • Usage of async ajax queries instead of post form
  • the back-end babelmark-proxy is hosted on Azure and is a .NET application.
    • Improved performances, multithread queries to markdown convert servers
    • Perform normalization on the server with NUglify
  • the babelmark registry contains the list of markdown convert servers. This is where you can PR to add a new markdown implementation to the list.


Did you collaborate with @jgm on this at all?


Somewhat, we were in discussion. In fact, it all started when I asked for adding markdig to babelmark2, when I tried the service, markdig was always timing out (because it was at the end of the list), so I contacted John and we tried to investigate the problem. When I realized that It would require a change on the server, I started to dig into the idea of building a new service, open source, more efficient and modern with some features I was missing. I contacted him back yesterday when It was finished to show him the results and asked him if he would like to be part of the new service. But I think John preferred to keep his service (for the design he prefers for example). Some people might not like the babelmark3 look&feel and may prefer babelmark2, I understand. Fortunately, John told me that he may use the babelmark3-proxy for babelmark2, so it might solve finally the problem of timeout there too :slight_smile:


Looks good at first sight. I hope we can get options, modules and plugins to work for some implementations.

I see many implementations listed twice in the results currently, though.


The problem is that standardizing things here would be difficult… the current option is to provide another custom URL for each service (for example cebe/extra cebe/gfm…etc.)

Yeah, I have been fighting a lot with HTTP chunked response for streaming results and correctly
handling them in browsers… with no real luck… but I just made a fix for this that might solve it. Let me know if you still have the problem.


I have added an icon “CommonMark compliant” to easily spot them into the crowd, useful when they generate different results (for edge cases not handled by the spec)


Nice work - looks good. You have an XSS issue though:

I suggest sandboxing the rendered markup in iframes.


Indeed, didn’t bother at first… but you are right, that’s not good, so I pushed a fix that should hopefully provide a safer experience (note that the browser may cache the previous page)


Tested and working well. Very quick fix :slight_smile:


I like that you’ve listed the language next to each parser. The number of parsers displayed in the results is less than in Babelmark 2. Intentional? I don’t see either of the CommonMark reference implementations in the results.


oops, it was not intentional, probably missed it when prototyping it, will check this with @jgm