Overview of existing MD extensions (common solutions, incompatibilities, …)


#1

I asked at Stack Overflow yesterday, but here is probably the better place. I could not find an overview of extensions from different Markdown flavors. I remain wondering if someone actually has already done the work to collect all those syntactic additions and compare them? I’m particularly interested in incompatible ones and different approaches to solve the same task. This should be really helpful if one would like to write a guide for syntax extensions.

As a start, prior to my SO question, I had compiled a table based upon the Pandoc documentation which shows how that implementation handles its compatibility modes for other Markdown variants (GFM, MMD, MD Extra and classic markdown.pl), but I’m afraid I can’t post a real table here either.


Extension terminology and rules
#2

I don’t know comparisons, but separate sources are available.

https://michelf.ca/projects/php-markdown/extra/

We used pandoc, php markdown extra & github description to build something intermediate for markdown-it tables, and babelmark2 to compare.

Also someone requested table footers, implemented in kramdown


#3

A comparison of existing extension implementations would be a good fit for the CommonMark wiki. Perhaps a wiki page for each proposed extension and a contents page called “Proposed Extensions” containing a list of links to each extension page?

Also, the Extensions category on this forum acts as an informal list, with roughly one topic representing one proposed extension in most cases. Each discussion topic could be linked to from the wiki also.


#4

For what it’s worth, I just found http://www.reddit.com/r/LightWeightMarkup/wiki/commonmark/unofficialextensions by @mofosyne in one of the threads here.


#5

I’ve added an alphabetical list of proposed extensions to the wiki, with links to each forum topic:

I will aim to keep this up to date. I see that you’ve started on a list as well @Crissov. I suggest we put the details of each type of extension on a separate page so that the extensions index isn’t cluttered. For example, a page for Abbreviations, a page for Audio and Video, etc. We can document existing implementations on these pages and compare them.


#6

Yes, @chrisalley, this was my intent, but I got lost in the details for now, e.g. what to group, how to document similar but incompatible implementations. I shall add some content soon.


#7

Since we already have these forum topics to discuss if and how the extended syntax will be added to CommonMark, I think all we need is a wiki page for each extension documenting (and comparing) existing implementations.


#8

I’ve added a list of Markdown flavours to the wiki, including links to each flavour’s syntax guide:

Please add to the list if you know of any other flavours that are missing.


#9

probably if ref spec will be more flexible then most of the extensions can be implemented with current commonmark implementation. take a look into this thread https://github.com/jgm/commonmark.js/issues/41


#10

Update: I have evaluated all markdown flavors currently listed at the wiki for extensions and found less than anticipated, but still a lot. (I probably have missed a thing or two, so please contribute!) There are also surprisingly few obvious incompatibilities among extensions, many implementing amendments the same way or subsets of others. Still, several of them do not fall back nicely in other parsers. The blame for that is sometimes to be put on the other implementations, but often on the careless extension itself.

I posted the results onto a new wiki page, Deployed Extensions.

It would be really nice, by the way, if all flavors had at least one implementation included in Babelmark 2. It is not @jgm’s duty to motivate other developers to participate, of course.

PS: I have left out table syntax for now.


#11

… and finally I found Flavored Markdown which could have been what I was looking for if only it was more complete.