AI人工智能应用使用的Markdown文件格式是怎么来的?

0 阅读7分钟

如果你经常使用AI编程工具,一定会注意到一个现象:无论是Claude Code的Skills、Cursor的规则文件,还是ChatGPT的提示词,几乎都用Markdown格式。

为什么是Markdown?不是Word、不是PDF、也不是JSON?

答案很简单:Markdown是大模型最熟悉的“母语”之一。  它的训练数据里,GitHub的README、技术博客、Stack Overflow的问答,到处是Markdown的身影。你用Markdown和AI对话,就像在用它的母语交流,它理解最准、执行最稳。

那么,这个无处不在的Markdown格式,到底是怎么来的?谁发明的?为什么没有“官方标准”?AI应用用的又是哪个“版本”?

这篇文章,我们就来追溯一下Markdown的前世今生。

Markdown 是由约翰·格鲁伯(John Gruber)于2002年开始构思,2004年发布的,在语法上有很大一部分是与亚伦·斯沃茨(Aaron Swartz) 共同合作的。


🧠 创造者是谁?

人物身份贡献
约翰·格鲁伯(John Gruber)科技博主、Daring Fireball 博主Markdown 的创始人和主要设计者,2004年发布了初代 Markdown
亚伦·斯沃茨(Aaron Swartz)程序员、Reddit 联合创始人、RSS 开发者参与了 Markdown 语法的设计,贡献了大量想法

亚伦·斯沃茨本身是个传奇人物——他参与开发了 RSS 和知识共享组织(Creative Commons),联合创办了Reddit,后来因卷入网络犯罪案于 2013 年自杀,年仅26岁。


🎯 为什么会有 Markdown?

格鲁伯创造 Markdown 的初衷非常朴素:让写网页像写邮件一样简单。

2002年左右,格鲁伯决定专注写 Apple 相关的博客。但当时写博客需要手写 HTML——即便是加粗文字、插入链接这种基本操作,也要写一堆  这样的标签,不仅麻烦,还容易因为一个小错误破坏整个页面结构。

他的想法是:既然人们在邮件里用 星号 表示强调、用空行分段已经成了习惯,为什么不把这些“约定俗成”的写法变成一套正式语法,然后自动转换成 HTML 呢?

于是,Markdown 诞生了。


📜 最初的实现

2004年3月,格鲁伯发布了第一个版本的 Markdown,是用 Perl 脚本写的。这个脚本的作用很简单:把你写的 .md 文件转换成规范的 HTML。

后来,这个 Perl 脚本被移植到各种编程语言,出现了 Python、JavaScript、Ruby、PHP 等几十种不同语言的 Markdown 解析库。


🤝 没有“官方标准”的尴尬

有意思的是,Markdown 从来就没有一个“官方标准”。

格鲁伯最初只发布了一个“非正式规范”(就是一篇描述语法的文章)和一个参考实现(那个 Perl 脚本)。他一直没有把 Markdown 变成正式的标准化文档。

这导致了一个问题:不同平台、不同解析器对 Markdown 的理解不一样。比如:

  • 标准 Markdown 要求标题的 # 后面有空格,有些实现不要求
  • 标准 Markdown 要求换行时行末加两个空格,GitHub Flavored Markdown 取消了这一限制
  • 表格、删除线、任务列表等功能,标准 Markdown 根本不支持

📏 后来的标准化尝试

2012 年,Stack Overflow 联合创始人 Jeff Atwood牵头,联合GitHub、Reddit、Meteor 等公司,发起了一个标准化项目,试图制定统一的Markdown 规范。

2014 年,他们发布了Standard Markdown项目。但格鲁伯反对使用 “Markdown” 这个名字,于是项目改名为CommonMark。

CommonMark 发布了一份完整的规范、600+测试用例、以及C语言和JavaScript的参考实现。它只规范核心语法,不添加任何新功能。

2016 年,IETF(互联网工程任务组)发布了RFC 7763和RFC 7764,正式定义了Markdown 的 MIME 类型 text/markdown,并注册了 CommonMark、GFM、MultiMarkdown 等变体。

🌟 几个重要的“变体”

名称来源特点
GFM (GitHub Flavored Markdown)GitHub基于CommonMark,增加了表格、任务列表、删除线、围栏代码块
CommonMark社区标准化项目只规范核心语法,不添加新功能
MultiMarkdownFletcher Penney增加了脚注、引用、LaTeX 数学公式等
Markdown ExtraMichel Fortin增加了表格、定义列表、脚注等

GitHub 从 2009 年左右开始使用 Markdown,并推出了 GFM。虽然Markdown没有官方标准,但GFM已经凭借GitHub的统治地位和实际技术优势,成为了AI领域的默认选择,GFM 成了事实上的“标准方言”。

📊 证据一:主流 AI 应用的选择

根据一项针对 DeepSeek、豆包、腾讯元宝、ChatGPT等主流AI应用的调研,它们在 Markdown渲染上有一个共同特征:

全部采用CommonMark标准解析器(使用Markwon库),完整支持GFM扩展语法

这意味着无论你用哪个AI产品,它在处理Markdown时,底层都在遵循同一套规范——CommonMark核心+GFM扩展。

📊 证据二:开发工具的明确选择

Gitea 的官方文档中有一段非常清晰的表述:

"Gitea 尽可能遵循 GitHub Flavored Markdown (GFM) 。GFM 是在严格规范的 CommonMark 标准之上的扩展。CommonMark 被大多数主流网络平台(如 Reddit、Stack Overflow、Discourse)和 Git 平台(GitHub、GitLab 及 Gitea 自身)使用。"

Gitea 还特别指出: "GFM 是 CommonMark 的超集,增加了表格、任务列表、删除线、URL 自动链接等实用扩展。"

📊 证据三:开发者生态的共识

  • uni-cmark插件:一个基于C语言库cmark-gfm封装的Markdown解析UTS插件,明确标注"完整支持GFM扩展语法"
  • markdown-for-agents库:专为AI智能体优化的HTML转Markdown工具,基于 GFM标准
  • MarkItDown:微软开源的文档转Markdown工具,专门针对大语言模型优化。

·        我发现稀土掘金平台编辑文章时,可能也使用了Markdown格式(待官方确认)。

🔗 CommonMark 与 GFM 的关系

名称定位说明
CommonMark核心规范2014 年由 Stack Overflow、GitHub、Reddit 等联合制定的严格规范,明确了标题、列表、加粗等核心语法,解决了 Markdown 长期存在的"方言"问题
GFM扩展规范在CommonMark基础上增加了表格、任务列表、删除线、@提及、URL自动链接等实用扩展

两者的关系: CommonMark 保证了核心语法的一致性,GFM 在此基础上增加了 GitHub 特有的实用功能。

🤖 为什么AI选择了GFM?

1. 数据训练优势

大模型的训练数据中,GitHub的代码仓库和README文件占据了极其庞大的比例。GFM是这些数据使用的格式,因此大模型对GFM的理解最准确。用GFM和AI交互,就像在用它的"母语"对话。

2. 格式测试验证

第三方测试表明,在 11 种不同格式中,Markdown-KV(键值对)的准确率最高(60.7%) ,而 Markdown-Table 也有不错的表现(51.9%)。

3. 人机两读的平衡

GFM 在保持人类可读性的同时,提供了足够的结构化表达能力(表格、任务列表、代码块语言标注等),让 AI 能精准解析语义。

✅ 总结

问题答案
AI 应用现在用什么标准?GFM(GitHub Flavored Markdown)
这个标准是谁定的?不是一家定的。CommonMark 是社区联合制定的,GFM 是 GitHub在其基础上扩展的
为什么用 GFM?大模型训练数据里GFM最多、AI理解最准、功能最实用
和 CommonMark 什么关系?GFM = CommonMark(核心)+ 扩展功能(表格、任务列表等)

本文内容基于作者的开发经验和对官方文档的理解,仅供参考。技术工具、模型参数、定价等信息可能随时间变化,请以官方最新发布为准。如有不同见解,欢迎在评论区理性交流。

本文为原创内容,首发于微信公众号[机器人与人工智能爱好者]。未经本人书面授权,禁止任何形式的摘编、复制或用于商业用途,转载须注明出处。