Quelle est la mise en œuvre canonique du redressement?

Le problème avec l'écriture de mon analyseur Markdown dans Clojure est que Markdown n'est pas une langue bien définie. Il n'y a pas de grammaire "officielle", juste une description informelle "Voici comment cela fonctionne" et une implémentation de référence vraiment moche dans Perl. Http://briancarper.net/blog/415/

Je peux voir les spécifications de Gruber ici et la mise en œuvre ici .

Il s'agit d'une implémentation qui gagne le test de classement Google ici

Ensuite, il existe un repérage qui semble résoudre le problème «il n'y a pas de grammaire», mais n'est pas la mise en œuvre canonique.

Ma question est – quelle est la mise en œuvre canonique du redressement? (Celui que tout le monde dit définit la norme).

MODIFIER:

Je reconnais que «il n'y a pas de norme canonique». Je cherche la prochaine meilleure chose.

La réponse semble être showdown.js , mais il y a des problèmes .

(En utilisant la définition de canonique étant celle que tout le monde dit définit la norme).

Il est référencé ici et sur github ici .

Je lancerai également pagedown (comme l'ai dit @deceze) car il semble corriger les bogues dans la confrontation et être un peu plus proche de l'original de Gruber.

Je crois que Gruber est l'original et le type de canonique (voir, par exemple, son «introduction à Markdown» ), et les gens l'ont étendu à partir de là. Je pense que certaines extensions sont plus fréquentes que d'autres cependant, il est probable que cela vaut la peine de voir ce que certains paquets bien utilisés ont sur son original.

Le projet CommonMark tente d'aborder certains des problèmes de la spécification Markdown, en particulier des ambiguïtés. Il est livré avec une implémentation de référence , mais il ne s'agit évidemment que de la mise en œuvre de référence pour CommonMark, pas pour Markdown en général. Il peut devenir la norme de facto dans les années à venir, car certains utilisateurs importants sont impliqués dans ce projet, mais il pourrait aussi devenir un autre dialecte parmi beaucoup, auquel cas l'implémentation de référence ajouterait peu de valeur.