Free email newsletter: “ News


The future of Markdown

The basic idea of Markdown is simple: To create a document, one writes plain text (bullet lists are lines that start with dashes, styles are written **bold** and *italics*, etc.). To display a document, the plain text is converted to HTML. That gives you the best of both worlds: the plain text is to write (much easier than HTML), store and transfer; the rendered HTML is nice to look at. It is amazing how popular Markdown has become: GitHub supports it for files such as readmes and gists; Stack Overflow uses it for comments; Lean Publishing supports no other format for submitting books; many blog engines let you write posts in it; etc.

However, Markdown is poorly specified and there are many slightly incompatible dialects. The blog post “The Future of Markdown” (by Jeff Atwood for Coding Horror) mentions a proposal by David Greenspan:

I think you and I share some concern (horror?) about Markdown's lack of spec and tests. The code is ugly to boot. Extending or customizing Markdown is tricky (we already have some hacks and they are terrible), and I worry about "bit rot" of content if the format doesn't have a spec. I'm evaluating the possibility of starting over with a new implementation coupled with a real spec and test suite, and I've been thinking a lot about how to parse a language like Markdown in a principled way. [...]

I want this new language – working name "Rockdown" – to be seen as Markdown with a spec, and therefore only deviate from Markdown's behavior in unobtrusive ways. It should basically be a replacement that paves over the problems and ambiguities in Markdown.

The post then calls on all parties working with Markdown to participate in the standardization process. Apart from reading the post, you should also take a look at the comments, which contain much interesting material.

Two relevant technologies:

  • AsciiDoc is similar to Markdown, but better suited for books. It is internally based on DocBook. O’Reilly uses it for many of its books.
  • MultiMarkdown improves on Markdown in two major ways:
    • More output formats (not just HTML): PDF (via LaTeX), OPML, OpenDocument (which can be converted to RTF and Microsoft Word).
    • More syntax features: tables, footnotes, citations and more.

No comments: