1. 一个 2004 年的纯文本格式,为什么今天还在运转一切
除非你刻意回避软件,否则今天中午之前 Markdown 就已经从你桌上经过了一轮:装依赖前扫过一眼的 README、编码 Agent 干完两小时活后打印出的带编号计划、笔记应用里以井号标题开头的那条客户纪要。大多数天天用 Markdown 的人从没专门学过它——这个格式赢得太彻底,以至于变得不可见,就像邮件传输协议或 zip 压缩包那样不可见。而正因为不可见,它才值得专门写一篇定义:你说不出名字的基础设施,就是你没法调试、没法迁移、也没法主动选择的基础设施。
这个格式诞生于一个写作上的烦心事,而不是什么研究议程。2004 年,在网上发布内容意味着手写 HTML——开标签、闭标签、转义与符号——工程师尚可忍受,对写作者是折磨。Daring Fireball 的博主 John Gruber 想用大家写纯文本邮件时已经在用的惯例来写作:星号表强调、缩进表引用,然后不经手一个尖括号就能发布。在 Aaron Swartz 的语法设计反馈之下,他在那年发布了 Markdown——一个把这种随手的纯文本转换成干净 HTML 的 Perl 脚本,见 John Gruber 的 Markdown 原始项目页。项目页上写明的设计目标至今仍是这个格式的宪法:一份标记后的文档应当能原样作为纯文本发布,而不显得「被标签标记过」。
二十二年后,这个格式运行着 README、API 文档、完整的文档站、静态网站、发布说明,以及——本文写于 2026 年的原因——AI Agent 产给人类看的大部分结构化文本。如果你经营一门一个人的生意,Markdown 就是你各工具之间的结缔组织:Agent 写的简报、你存它的笔记、最终交给客户的文档。搞清它是什么、方言在哪里分叉、边界在哪里,是一次几小时的投资,每个工作日都在回本。
2. Markdown 的定义
2.1 核心定义
Markdown 是一套面向纯文本的轻量标记语法:一组字符层面的约定,为文件加入文档结构——标题、强调、列表、链接、引用、代码——而文件本身始终是一份正常、人类可直接阅读的文本文档。井号前缀标记标题(# 季度报告),成对星号标记加粗(**草稿**),横线开行标记列表项,方括号把文字变成链接。Markdown 处理器读取这些线索、输出结构化结果(最初是 HTML),而源文件自始至终保持可读。在实践中,「Markdown」一词同时指三样东西:Gruber 2004 年的原版语法、由它衍生的方言家族、以及建立在两者之上的 .md 文件与编辑器转换器生态。
2.2 让它立住的四个特性
2004 年轻量标记语言并非只有 Markdown 一家:Textile、reStructuredText、AsciiDoc 和各种 wiki 语法都在竞争同一份工作,其中几样在技术上还更丰富。Markdown 的胜出与功能清单关系不大——而下面这几个特性,恰好解释了本文后面的一切,从 Git 采用到 AI 输出。
- 源文件即成品。 排版后的文档和源文档是同一份东西,你不用渲染就能校对,有键盘的地方就能写。
- 按行组织、可 diff。 结构与行对齐,版本控制系统因此能显示有意义的变更——Git 平台把 README 和 PR 描述的原生格式定为 Markdown,原因就在这里。
- 工具无关。
.md文件不属于任何厂商:任何编辑器都能打开,任何转换器都能处理,换工具是复制文件,不是迁移工程。 - 耐用。 1984 年的纯文本今天照样能打开,2004 年的纯文本没有任何在 2044 年失效的机制。以文本存字的格式,活得过所有发二进制容器的公司。
这些特性单拎出来都不稀罕,稀罕的是组合:没有任何竞品能同时做到源文件人类可读、下游机器可解析、且不属于任何人——所以 2004 年的对手们退回了各自的生态位(reStructuredText 守 Python 文档,AsciiDoc 守企业出版),没能走向主流。
2.3 Markdown 不是什么
理解一个格式最快的办法是画它的边界。Markdown 不是 HTML:HTML 是编译目标,是浏览器消费的发布时格式、Web 的标准标记语言(见 MDN 的 HTML 文档),而 Markdown 是为手写优化的源格式。它也不是富文本:.docx 或 Google 文档按排版引擎的方式存储格式、只宜在所属工具内编辑,Markdown 则按写作者敲键的方式存储格式。它更不是单一标准——这个麻烦足够大,值得单独开一节。
它也不是排版语言,装作是的话只会浪费下午。Markdown 没有分栏、精确间距、字体或打印分页的概念;当交付物是一份设计过的手册、一套幻灯片或一份像素级还原的报告时,Markdown 是错误的起草面,设计工具或手写 HTML 页面才是对的。Markdown 覆盖的是工作文档的结构性内核——标题、强调、列表、链接、代码、引用——而这恰好是复制到别的工具时唯一守得住的部分。
3. Markdown 如何工作:从 .md 文件到渲染页面
机制是一条三步管线,小到可以整个装进脑子。你写一个纯文本文件,习惯上用 .md 扩展名命名。一个 Markdown 处理器——最初是 Gruber 的 Perl 脚本,如今包括 CommonMark 参考实现和 markdown-it 之类的库——把字符线索解析成文档结构:这一段是强调、这一块是列表、这一行是标题。处理器随后输出结构化结果,最常见的是 HTML,再由浏览器或应用加上源文件从未提及的字体与间距。
下面是一个完整的工作示例,就是独立顾问在客户电话之前会写的那种笔记:
# 客户简报 — Northwind 改版
**负责人:** Kostja — **状态:** 草稿
- 范围:落地页与定价区
- 硬截止:10 月 3 日
> 需客户拍板:证言区的位置。
把这段贴进任何 Markdown 渲染器:井号行变成一级标题,星号对变成加粗,横线行变成无序列表,尖括号行变成引用块。仅此而已——没有隐藏元数据,没有文档数据库,没有排版引擎。所有格式信息住在几个标点字符里,源文件里看得见,任何读这个格式的工具都带得走。
两个机械细节能解释现实里的大多数意外。其一,多数引擎会把内联 HTML 原样放行到输出,所以一个没转义的 < 比较符号可能悄悄吞掉一整段——而放行多少原生 HTML 各引擎口径不一,聊天与笔记类应用出于安全会整段剥掉。其二,因为语法就是标点,本身有含义的字符(*、_、#)偶尔需要反斜杠转义。这些摩擦很小,但它们正是下一节方言分化的那条缝。
4. 方言问题:一个名字,多种语言
原版 Markdown 是一套出色的语法,外加一个 2004 年的 Perl 脚本,然后它就冻结在那里:1.0.1 版发布于 2004 年 12 月,是 Gruber 官方实现的最后一次修订,语法本身也从未在文档之外得到正式规约。而真实文档立刻就超出了它的容量:人们需要表格,想用反引号围栏代码块而不是缩进,后来还需要 issue 里的勾选框。社区的回应方式和开源世界面对冻结上游的方式一模一样:分叉。
标准化晚到了十年。2014 年启动的 CommonMark 给出了一份精确规约加一套一致性测试套件,让合规引擎输出完全一致——试图用真正的标准取代「原脚本碰巧怎么做」,见 CommonMark 项目站。GitHub Flavored Markdown——大多数人今天实际在写却叫不出名字的方言——由 GitHub 的 GFM 规范定义为 CommonMark 的严格超集,补上了表格、任务清单勾选框、删除线和链接自动识别。如果你在 GitHub issue 里勾过 - [x]、用竖线画过表格,你写的是 GFM 而不是 Gruber 的 Markdown——这个区别在文件离开 GitHub 的那一刻开始变得要紧。
实际后果是:渲染不一致是常态,不是例外。截至 2026 年 9 月,GitHub、Obsidian、Notion 对同一份文件各有各的处理:Obsidian 把双方括号 wiki 链接([[另一篇笔记]])当作一等公民导航,还叠了一层自己的 callout 语法;Notion 把 Markdown 吸收进专有块模型,再导出时结构已被重塑;聊天平台跑的是私有变体——Slack 的格式把单个星号当加粗,而标准 Markdown 会把它读成斜体。于是一份完全合法的 Markdown 文件,可以在你一下午用的三个应用里呈现出三种不同面目。
我的工作规则是:凡是要活得比当前工具久的文档,写到各方言的交集上。标题、强调、列表、围栏代码块、链接加上 GFM 表格,覆盖了几乎所有工作文档,并且在上面的每个引擎里都能存活。把 wiki 链接和应用专属插件当作「活死都在一个应用里」的本地便利,不要算进文档的永久结构。
5. 2026 年,Markdown 为什么更重要:它成了 AI 的接口格式
2026 年学 Markdown 最硬的理由不是它写着舒服,而是它已经成了人机文本交换的默认语言——通过三个互相放大的机制。
第一,Agent 会不由分说地产出它。让编码 Agent 规划一次重构、让助手总结一份合同,答案自带井号标题、加粗数字和带序号的下一步。这不是谁做过的产品决策:训练语料——GitHub README、Stack Overflow 回答、文档站——浸透了 Markdown,所以模型吐出来的就是 Markdown。对单干的人,这意味着 Agent 的产出天然预结构化,直接可存、可 diff、可转发,而且你的其他工具全都认识。
第二,所有主流聊天界面都渲染它。上面那份计划出现在 ChatGPT、Claude 或 Gemini 里时不是一排字面星号,而是排好版的文本,因为聊天界面在输入侧就完成了解析。论坛和消息平台更早就押了同一注——Reddit、Discord、Stack Overflow 都采用了 Markdown 风格的排版(见 维基百科的 Markdown 词条),这恰好让后来成为 AI 重度用户的那些人群提前习惯了这套语法。
第三,管线会解析它。检索增强生成(RAG)——大多数「和你的文档聊天」产品背后的架构——普遍沿 Markdown 的标题层级切分文档,因为标题是免费的、可靠的分块边界。写得有纪律的知识库一份两用:人类靠它视觉导航,检索系统靠它语义寻址。以我自己的工作流为例,标题层级严格的笔记喂回给 Agent 时,段落召回明显好于平铺文本——这是内部观察而非基准测试,但它与分块机制的工作方式完全吻合。
这些都不意味着 Markdown 是 AI 输出的终局,2026 年最有意思的格式论战恰恰来自反方向。2026 年 5 月,Anthropic Claude Code 团队的工程师 Thariq Shihipar 主张:面向人的 Agent 产物——实施计划、代码审查、设计参考——用自包含 HTML 页面优于 Markdown 文件,因为浏览器能渲染出纯文本装不下的层级、颜色和可折叠区块。我们跟踪过「HTML 就是新的 Markdown」这场争论的来龙去脉,公允的总结是双方各对一半:HTML 赢在给人一次审阅的精修交付物,Markdown 赢在一切需要 diff、版本化、分块或在工具间传递的东西。如果你要给自己的 Agent 工作流定格式策略,我们的 HTML vs Markdown 决策框架按受众和产物类型拆解了这个选择。
6. 笔记与知识管理:纯文本作为知识库底座
Markdown 悄悄吞下的第二块领土是个人知识管理,旗舰案例是 Obsidian。Obsidian Vault 里的每条笔记都是本地普通文件夹里的一个 Markdown 文件,这是该格式承诺最纯粹的表达:你的知识库不是厂商云数据库里的一行记录,而是一目录你随便打开、搜索、同步、备份的文本文件。Bear、Logseq、Typora 以不同包装押着同一注「本地纯文本」;连块模型骨子里专有的 Notion 也仍然接受 Markdown 导入、提供 Markdown 导出——因为用户要一扇出得去的门。
对一门一个人的生意,这个底座有个具体红利:Agent 可以直接作业。一个有普通文件权限的桌面 Agent 能读你的会议纪要、追加一条跟进、更新一页项目文档,全程不需要任何 API 集成——因为一个装 Markdown 文件的文件夹就是通用接口。笔记封在应用私有数据库里则做不到这一点,那里的自动化上限是厂商愿意暴露多少。
这个生态也顺便回答了采集问题:网页研究如何变成耐久知识。值得留存的页面是 HTML,笔记住的是 Markdown,于是现实的桥是在采集时把 HTML 转成 Markdown,把页面剥成二十年后仍能渲染的结构与正文。对真正打算重读的东西,「采集一次进纯文本」胜过「存一文件夹网页快照」。
7. 上手路径:一个下午学会语法
实用层面的好消息是:日常 Markdown 很小。大约十个构造——标题、加粗、斜体、列表、链接、行内代码、围栏代码块、引用、表格、任务清单——就覆盖了几乎所有工作文档,而每个构造不过一两个字符的语法。编辑器旁边常备一份 Markdown 速查表,教程阶段可以直接跳过:抄模式、换词、重复。写一周真实的东西,肌肉记忆自然到位——所以最快的上手路径是迁移一件在用的真东西——项目 README、会议模板、客户简报——而不是抽象地做练习。
工作流的另一半是输出,因为 Markdown 草稿迟早要变成客户不装任何东西就能打开的东西。精修交付物的默认路径是把 Markdown 转成 PDF,把排版冻结进唯一一个人人能打开的格式;当读者需要导航或视觉层级时,更丰富的选项是第五节讲的单文件 HTML 路线。经验法则是按受众定格式:住在 Git 或笔记应用里的协作者给纯 .md,对外交付给 PDF,文档值得像个小型网页时就上 HTML。
在投入一个下午之前,你也不需要安装任何东西来试验这个格式。把一段粗糙的文字贴进 Floatboat 的 Markdown 工具箱,看着转换双向跑一遍——纯文本进结构、结构回纯文本——语法通常就在这一刻通了这个概念,成本大约九十秒。
8. 结语
对 Markdown 最好的理解不是「程序员的排版小技巧」,而是结构化纯文本的通用语:一种人类在任何编辑器里读得懂、任何版本控制系统 diff 得动、任何管线解析得了、而且如今由替世界起草大部分工作文档的 Agent 原生产出的源格式。由这个定义推出的策略很短:写在 CommonMark 加 GFM 的交集上,让文件在引擎间保持可移植;把耐久知识放在本地纯文件里,而不是厂商数据库里;学会覆盖日常的十个构造;按读者匹配输出格式——工具用户给原始 .md,客户给 PDF,配得上的产物给 HTML。二十二年后,这个乏味的选择依然是对的;而在 2026 年,它也是你的 AI Agent 们已经替你做掉的选择。
https://floatboat.ai/zh/blog/what-is-markdown
