As I have used Markdown I constantly run into use cases where I need it to do something beyond the original scope of the Markdown concept. I think this is a common theme that has driven much of the fragmentation of the markdown idea.
I believe it would be very helpful to define something in the markdown spec that allows for the extension of markdown in a consistent way without limiting what that extension would be.
My thought is that this would be a token definition that would specifically not be rendered by a Markdown processor. These tokens would follow a simple basic syntax and could be rendered by extension to a markdown processor.
This is the core concept using {{{ and }}} to define the extension token;
{{{extension directive1 directive2}}}
Markdown would not render this into output text in any way, but a Markdown renderer with an extension specific to that extension name would detect and process it. Anything within the token area could be used as directives for the extension. The extension would be responsible for interpreting and rendering the output.
example for a hypothetical LatexMD extension token;
{{{LatexMD “$\alpha + b =\Gamma \div D$”}}}
In any normal Markdown rendering engine, this block would get ignored and not be included in the output.
If the rendering engine had an extension that interpreted the LatexMD token it would process the token along with the information/directives and render an output for that location as part of the rendering process.
The important feature of this would be that the token would specifically NOT be rendered unless there was an extension that could provide a legitimate output for the rendering process. At this point, I can’t see anything in the spec that would provide optional functionality like this, but I would be happy to learn it was there.
Aside from the goal of providing an extension point for markdown, I see this as a way to limit the future fragmentation of markdown in an unstructured way. Unique rendering functions could be created that would not cause breaking changes to propagate out to the markdown community.
Notes:
I am indifferent to the way it is implemented. I just feel the core concept is vital. If implemented well this could be the extension point for a wide variety of the requests I am seeing here that seem to fall outside the core concept of markdown but are arguably useful.