Markdown

Markdown is a lightweight markup language designed to create formatted text from plain text, created by John Gruber in collaboration with Aaron Swartz in 2004. It is intended to be as easy-to-read and easy-to-write as is feasible:

Readability, however, is emphasized above all else. A Markdown-formatted document should be publishable as-is, as plain text, without looking like it’s been marked up with tags or formatting instructions. While Markdown’s syntax has been influenced by several existing text-to-HTML filters — including Setext, atx, Textile, reStructuredText, Grutatext, and EtText — the single biggest source of inspiration for Markdown’s syntax is the format of plain text email.

To this end, Markdown’s syntax is comprised entirely of punctuation characters, which punctuation characters have been carefully chosen so as to look like what they mean. E.g., asterisks around a word actually look like emphasis. Markdown lists look like, well, lists. Even blockquotes look like quoted passages of text, assuming you’ve ever used email.

— John Gruber on Markdown: Syntax

The original reference implementation of Markdown (written in Perl) and the initial description of the format contained a number of ambiguities and undefined behaviors.

This, coupled with custom extensions to allow more advanced features, led to various other Markdown implementations to diverge from the specification and each other.

Notable implementations and specifications include: