Announcing babelmark3


#1

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 babelmark.github.io 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.

#2

Did you collaborate with @jgm on this at all?


#3

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:


#4

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.


#5

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.


#6

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)


#7

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

I suggest sandboxing the rendered markup in iframes.


#8

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)


#9

Tested and working well. Very quick fix :slight_smile:


#10

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.


#11

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