Markdown 的标准化之路

  • Abel Avram
  • 王振峰

2014 年 9 月 9 日

话题:开源语言 & 开发

一群来自 Stack Exchange、GitHub、Reddit 以及其他组织的代表发起了对 Markdown 进行标准化和功能增强的项目,名字为 Standard Markdown。但是他们的努力遭到了 Markdown 语法创建者 John Gruber 的反对,John Gruber 不希望 Markdown 用在其他项目中,所以标准化项目最后改名为 CommonMark。

Markdown于 2004 年发布,包含一套纯文本格式化语法以及由其创建者 John Gruber 发布的 Perl 工具,该工具用于将符合 Markdown 语法的纯文本文档转化为对应的 HTML。多年来,Markdown 语法被逐步采纳,现在使用它的有 GitHub、Reddit、Stack Exchange、SourceForge、Atlassian Confluence 等,所以我们可以认为 Markdown 已经被整个软件社区所采用。Markdown 的成功与其简洁性紧密相关,Gruber 当初的设计决定了 Markdown 今天的成功,

Markkdown 格式文档应该以纯文本发布,并且看起来不会像是由许多标签或是格式指令所构成。

不是所有人会为 Markdown 的发展感到高兴,但更多的人不想看到它止步不前 。Markdown 语法从 V1.0.1(2004)就再没有更新,所以很多人创建了转换工具,可以生成带有略微差异的 HTML 文档,在Babelmark 工具中有所展示。另外有热心者为 Markdown 增加了各种功能,如表格、定义列表,脚注等等。

在希望改善 Markdown 的众人中就有 Jeff Atwood,他是Stack Exchange包括Stack Overflow的联合创始人。根据 Atwood 的博文,由若干“来自 GitHub、Reddit、Stack Exchange 以及开源社区的重要代表”组成了一个“小型非公开工作组”,打算将 Markdown 标准化,并为了进一步的改进开放该标准。工作组于近日发布了Standard Markdown,随之有专门的网站 standardmarkdown.com,但发布几天后应 Gruber 的要求被迫关闭了。

在一则发给 Atwood 的私信中,Gruber 说标准使用了 Markdown“令人愤怒”,要求标准化工作组重新命名项目,关闭 standardmarkdown.com 并且道歉。对于名字,Gruber 建议工作组可以使用比如 Strict Markdown 或 Pedantic Makrdown 类似的名字。Atwood 希望有其他的名称,在等待 Gruber 的反馈一天无果后,将其重命名为 Common Markdown。但 Gruber 最终补充说“只要带有‘Markdown’一词的任何形式,他都无法接受 ”,所以 Atwood 和工作组将其改名为CommonMark

社区对标准化的成绩以及 Markdown 一词的使用反响异常激烈,也催生了数以百计的评论(标准促进 Markdown 发展Standard Markdown 变为 Common MarkdownRedditTwitter)。其中有部分是维护 Gruber 立场的观点,拒绝任何标准化的事情,还有另一部分希望使其标准化并改善之。希望深入了解标准化的读者可以移步相关站点,CommonMark网站包含了该标准,GitHub 仓库中包含基于 C 和 JavaScript 的标准实现,以及大约 400 个一致性测试,还有论坛,里面已经有不少相关的主题。

作为补充,Markdown 起初以BSD 风格的开源协议发布,该协议中规定“在没有事先书面许可的情况下,不可以将’Markdown’或其贡献者的名字用于宣传或推广该软件所衍生的产品”。

查看英文原文:Standard Markdown Becomes Common Markdown then CommonMark


感谢曹知渊对本文的审校。

给 InfoQ 中文站投稿或者参与内容翻译工作,请邮件至editors@cn.infoq.com。也欢迎大家通过新浪微博(@InfoQ)或者腾讯微博(@InfoQ)关注我们,并与我们的编辑和其他读者朋友交流。

开源语言 & 开发