Проблема с написанием моего собственного анализатора Markdown в Clojure заключается в том, что Markdown не является хорошо определенным языком. Здесь нет «официальной» грамматики, есть неформальное описание «Вот как это работает» и действительно ужасная справочная реализация в Perl.
http://briancarper.net/blog/415/
Здесь я вижу спецификацию Грубера и реализацию здесь .
Это реализация, которая побеждает в тесте рейтинга Google здесь
Тогда есть peg-markdown , который, кажется, решает проблему «нет грамматики», но не является канонической реализацией.
Мой вопрос - какова каноническая реализация уценки? (Тот, что все говорят, определяет стандарт).
EDIT:
Я признаю, что «канонического стандарта не существует». Я ищу следующую лучшую вещь.
Ответ, похоже, showdown.js , но с ним проблем .
(используя определение канонического, которое, как говорят все, определяет стандарт).
Здесь указывается здесь и на github здесь .
Я также добавлю pagedown (как и @deceze), потому что он, похоже, исправляет ошибки в вскрытии и немного ближе к оригиналу Грубера.