Подтвердить что ты не робот

Какова каноническая реализация уценки?

Проблема с написанием собственного анализатора Markdown в Clojure заключается в том, что Markdown не является хорошо определенным языком. Нет никакой "официальной" грамматики, просто неофициальное описание "Вот как это работает" и действительно уродливая эталонная реализация в Perl. http://briancarper.net/blog/415/

Я вижу спецификацию Gruber здесь и реализацию здесь.

Это реализация, которая выигрывает тест рейтинга google здесь

Тогда есть peg-markdown, который, как представляется, решает проблему "нет грамматики" - но это не каноническая реализация.

Мой вопрос: какова каноническая реализация уценки? (Тот, который все говорят, определяет стандарт).

EDIT:

Я признаю, что "нет канонического стандарта". Я ищу следующую лучшую вещь.

Ответ выглядит как showdown.js, но есть проблемы с ним.

(используя определение канонического - это то, которое каждый говорит, определяет стандарт).

На это ссылается здесь и на github здесь.

Я заберу pagedown (как и в случае с @deceze), поскольку он исправляет ошибки в вскрытии и быть немного ближе к оригиналу Грубера.

4b9b3361

Ответ 1

Я считаю, что Грубер является оригинальным и со-каноническим (см., например, его "Представление Markdown" ), а затем люди расширили его оттуда. Я думаю, что некоторые расширения чаще встречаются, чем другие, поэтому, вероятно, стоит посмотреть, что у некоторых хорошо используемых пакетов есть над его оригиналом.

Ответ 2

Проект Проект CommonMark пытается решить некоторые проблемы спецификации Markdown, в частности некоторые неоднозначности. Он поставляется с эталонной реализацией, но это, очевидно, просто эталонная реализация для CommonMark, а не для Markdown в целом. Он может стать стандартом де-факто в ближайшие годы, поскольку некоторые крупные пользователи участвуют в этом проекте, но он может стать еще одним диалектом среди многих, и в этом случае эталонная реализация добавит мало значения.