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. [...]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.
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.
Two relevant technologies: