Markdown

Published:

Markdown is a lightweight markup language with plain text formatting syntax designed so that it can be converted to HTML and many other formats using a tool by the same name. Markdown is often used to format readme files, for writing messages in online discussion forums, and to create rich text using a plain text editor.

John Gruber created the Markdown language in 2004, with significant collaboration from Aaron Swartz on the syntax, with the goal of enabling people “to write using an easy-to-read, easy-to-write plain text format, and optionally convert it to structurally valid XHTML (or HTML)”. Markdown has since been re-implemented by others as a Perl module available on CPAN (Text::Markdown), and in a variety of other programming languages. It is distributed under a BSD-style license and is included with, or available as a plugin for, several content-management systems.

Sites such as GitHub, reddit, Diaspora, Stack Exchange, OpenStreetMap, and SourceForge use variants of Markdown to facilitate discussion between users. A Markdown dialect is also used by the instant messaging system Slack.

Due it is consider abandonware there is a huge fragmentation and each site or program uses a variant dialect of Markdown. Some extensions also appear in order to adding features (such as tables, footnotes, definition lists, and Markdown inside HTML blocks) not available in plain Markdown syntax. Among these are Markdown Extra, MultiMarkdown, and the Pandoc Markdown extension. In some cases, this is to enable conversion into more formats than just HTML, e.g., LaTeX, RTF, and DocBook. The original Markdown implementation interprets constructs like my_long_variable as a request to emphasize “long”. Many users found this confusing, so many later implementations such as PHP Markdown and Python Markdown do not implement middle word emphasis with underscores.

See also

reStructuredText

Material