Markdown

历史

John Gruber 在 2004 年创造了Markdown 语言，在语法上有很大一部分是跟亚伦·斯沃茨（Aaron Swartz）共同合作的。这个语言的目的是希望大家使用“易于阅读、易于撰写的纯文字格式，并选择性的转换成有效的XHTML（或是HTML）”。
其中最重要的设计是可读性，也就是说这个语言应该要能直接在字面上的被阅读，而不用被一些格式化指令标记（像是RTF与HTML）。
因此，它是现行电子邮件标记格式的惯例，虽然它也借鉴了很多早期的标记语言，如：Setext、Texile、reStructuredText。Gruber也编写了的Perl脚本：Markdown.pl，用于把markdown语法编写的内容转换成有效的、结构良好的XHTML或HTML内容，并将左尖括号<和&号替换成它们各自的字符实体引用。它可以用作单独的脚本，Blosxom和Movable Type的插件又或者BBEdit的文本过滤器。Markdown也已经被其他人用Perl和别的编程语言重新实现，其中一个Perl模块放在了CPAN(Text::Markdown)上。它基于一个BSD风格的许可证分发并可以作为几个内容管理系统的插件。

标准化

Markdown已经成为典型的转换为HTML的非正式规范和参考实现。随着时间的推移，出现了许多Markdown实现。人们开发这些主要是由于在基本语法之上需要额外的功能- 例如表格，脚注，定义列表（技术上的HTML描述列表）和HTML块内的Markdown。其中一些行为偏离了最开始的参考实现。与此同时，非正式规范中的一些含糊不清引起了人们的注意。这些问题促使Markdown解析器的一些开发人员努力实现标准化。
Babelmark是一个可用于“[比较]各种实现的输出”的工具，以“促进关于如何以及是否应该阐明markdown规范的某些模糊方面的讨论。”Gruber认为不应完全标准化：“不同的网站（和人们）有不同的需求。没有一种语法可以让所有人满意。“
2016年3月发布了RFC 7763和RFC 7764。RFC 7763 从原始变体引入了MIME类型 text/markdown。RFC 7764讨论并注册了MultiMarkdown, GitHub Flavored Markdown (GFM), Pandoc, CommonMark, and Markdown 等markdown变体.

GFM

2017年，GitHub发布了基于CommonMark的GitHub Flavored Markdown（GFM）的正式规范。除了表格、删除线、自动链接和任务列表被GitHub规范作为扩展添加之外，它遵循CommonMark规范。 GitHub还相应地更改了其站点上使用的解析器，这要求更改某些文档- 例如，GFM现在要求创建标题的哈希符号由空格字符分隔。