A specification for Markdown
October 29, 2012  

In The Future of Markdown, Jeff Atwood proposes that people work together to create a Markdown specification.

This is crazy for two reasons.

First, Atwood asks Gruber, the creator of Markdown, to bless the effort. Not only does Gruber not care about standardization, but nothing ever happened on the Internet by asking permission. Just fork it and call it something else.

Second, the technical challenges to such a project are basically unsolved. Markdown does not come from the programming language tradition based (mostly) on context-free grammars. That approach won’t work at all for Markdown because Markdown is not even a language in the same sense. For example, you can have a syntax error in a programming language, but every string of text is valid Markdown—Markdown is a function that transforms any input text into “htmlified” text. A specification for Markdown is not concerned with what is valid Markdown input, it is concerned with what the output is for an input. Just as with HTML5, “.*” is a context-free grammar for Markdown.

The current state-of-the-art for specifying such a thing is an implementation, and that’s what we have right now.