nitlang / nit

Nit language
http://nitlanguage.org
Apache License 2.0
242 stars 67 forks source link

lib/markdown2: introduce a new Markdown engine #2720

Closed Morriar closed 6 years ago

Morriar commented 6 years ago

This PR introduces a new Markdown engine called markdown2.

The current Markdown implementation is functional but does not follows the CommonMark specification as it passes only 273 tests of the 627 from the CommonMark test suite.

Also there is a few issues with it as stated in #791, #1394, #1525 and #2507.

This new implementation aims at resolving these issues and follow the CommonMark specification.

Features:

I didn't remove the old markdown implementation since the benchmarks are not really good for now. Since markdown2 uses a lot of regular expressions, performances can be an issue compared to markdown:

screenshot from 2018-06-20 19 21 08

In the following PR some Nit tools will be migrated to the new implementation:

Morriar commented 6 years ago

test this please

Morriar commented 6 years ago

Tests are ok, the "location marker" found by check whitespace is a Markdown setext header:

My Heading
=========