sundown

John MacFarlane jgm at berkeley.edu
Sat Aug 13 23:47:06 EDT 2011


+++ Waylan Limberg [Aug 13 11 22:14 ]:

> In summary, I think the best thing we did with Python-Markdown was

> make the extension API public and documented [1] it. Then, whoever

> uses our library for whatever unforeseen (by us) purpose can build on

> the markdown syntax to fill whatever needs they have. I find it

> interesting that Github has recently taken the same route. They built

> a new C lib [2] (more recently renamed to sundown) with an extension

> API. They then built their own extensions [3] on the API which meet

> their needs. Use the basic lib, and you get basic markdown. Use

> whatever extensions you want and you get whatever you need.

>

> PS: Sundown's docs list bindings for ten different languages. At least

> the python bindings claim [4] to be significantly faster than any

> other python implementation, including those wrapping C code. You

> might want to take a look, especially considering that the developers

> have had no association with or communication with the community on

> this list AFAICT.

>

> [1]: https://github.com/waylan/Python-Markdown/blob/master/docs/writing_extensions.txt

> [2]: https://github.com/tanoku/sundown

> [3]: https://github.com/tanoku/redcarpet

> [4]: https://github.com/FSX/misaka/blob/master/docs/documentation.md


Interesting. Impressively fast and robust, but not as accurate as they claim.
Just a few examples:

'<hr at company.com>' gets rendered as '<hr at company.com>', not an
email link.

<div>
<div>
<div>
foo
</div>
</div>
</div>

(from the Markdown 1.0.3 test suite) gets rendered as

<div>
<div>
<div>
foo
</div>

<pre><code>&lt;/div&gt;
</code></pre>

<p></div></p>

(which isn't even valid HTML -- looks like the HTML parser isn't
keeping track of balanced tags).

'\[test](not a link)' gets rendered as a link.

Middle-of-word em*pha*sis does not work, even with '*'.

Nesting is not what I'd expect: '[the `]` character](/bracket)'
is not rendered as a link, for example.

Parentheses in URLs (common in Wikipedia links, for example)
don't get parsed right.

Nothing that's not fixable, I'm sure. But they shouldn't claim to
be "standards compliant," when (a) there aren't really any standards,
as we've been bemoaning, and (b) their code doesn't even pass the Markdown
1.0.3 test suite. They should also try running the PHP markdown tests.

John

(cc'ing the maintainer, and encouraging him to join the list
if he's not already here!)



More information about the Markdown-Discuss mailing list