Extension distributions


I’d like to see the extension system work is similar to Linux. In Linux you have the core (Kernel) and bunch of small programs that run on top of the core. These small programs typically don’t conflict (or at least you don’t want them to conflict) with one another. For example, you wouldn’t normally have two programs called ls; typing ls into the terminal should provide a predictable result. Similarly, I hope we design CommonMark extensions in way that they don’t conflict with one another.

Proposal: Content Management Systems and other tools that read and write Markdown could support CommonMark “distributions”. These distributions would be sets of extensions designed around a particular goal/use case. Apps could be cross compatible by supporting a particular distribution, rather than all CommonMark extensions.

For example: print apps are unlikely to need to support video. Supporting these extensions would be detrimental to a print document app, so the distribution for creating CommonMark print documents would intentionally not include the video extension. For users moving their documents between apps it would be useful to talk about a particular distribution/set of extensions that both apps support. This would avoid surprises such as video appearing in one app and not the other, leading to data loss.

Extension terminology and rules