返回列表 发布新帖

[分享] Markdown 为什么会流行?【知乎】

79 1
发表于 2026-4-7 17:08:03 | 查看全部 阅读模式

马上登陆,轻松畅玩DC.

您需要 登录 才可以下载或查看,没有账号?立即注册

×
来源】Markdown 为什么会流行?【知乎】
【链接】https://www.zhihu.com/question/30311240/answer/2024468792634275187
【站点】知乎回答
【作者】朱元璋


Markdown能流行到今天这个地步,跟它本身好不好用关系真不大,本质上是因为在“写点带格式的文字”这件事情上,其他所有方案都烂出了各自的花样,Markdown只不过是那个“没那么烂”的选项。

用Word写东西最大的问题不是它功能不行,恰恰相反,是它功能太行了。你只是想写个技术文档,它给你准备了页眉页脚、修订模式、邮件合并、宏脚本,一个.docx文件本质上是个压缩包,里面塞着一堆XML,描述“加粗两个字”这种事能嵌套三四层标签,你在自己电脑上排得漂漂亮亮的文档,发给同事一打开,字体变了,行距跳了,图片飘了。


v2-7ac2ea7e00ec5a10a7cb5f310a55a526_720w.jpg



还有一个.docx是二进制格式,没法用Git做版本管理,没法对两个版本做diff,没法写脚本批量处理,对程序员来说,自己的文档连版本都追踪不了,这东西就没法用。

HTML理论上当然可以直接写,Markdown 最后也得转成 HTML 才能在网页上显示。但真的用 HTML 写过两千字长文的人都知道那种痛苦,每个段落包一对 p /p,插个链接写一长串 a href="https://...",加个标题还得纠结用 h2 还是 h3,漏掉一个闭合标签整个页面就乱套。HTML 是设计给浏览器解析的,不是给人读的,更不是给人写的。

John Gruber发明 Markdown 的动机就在这里,他2002年开始写博客 Daring Fireball,主要聊苹果和技术,天天产出长文,他是会写 HTML 的人,技术上完全没障碍,但他后来说过一句大意是,写久了真的烦,满屏幕尖括号让我没法专心校对自己写的东西,总觉得是在给自己制造额外的工作量,于是2004年他拉上 Aaron Swartz,两个人搞出了 Markdown,用#表示标题,**表示加粗,-表示列表,就这么几条规则,五分钟学完。

顺便插一句 Aaron Swartz这个人。互联网早期最天才的那批年轻人之一,14岁参与制定RSS规范,后来深度参与 Creative Commons的技术架构,再后来因为从JSTOR批量下载学术论文被联邦检察官起诉,2013年自杀,年仅26岁。Markdown能设计得这么干净利落,跟他的审美和参与分不开。这段历史很多人可能不知道,但值得被记住。


v2-3aa1b07c3ed61926930eecd3795020b0_720w.jpg


言归正传,很多人觉得富文本编辑器才是正确答案,就是知乎现在的编辑页面,加粗点个B,插图点个图标,所见即所得。但这东西在前端开发圈有个专属称号叫“天坑”,浏览器提供的底层能力叫contentEditable,这东西的实现在不同浏览器之间是分裂的,同样是在一个空的可编辑区域按一下回车,Chrome给你生成一个 div,Firefox生成一个

,老版IE生成一个 p。同一段文字,肉眼看着一模一样,底下的DOM结构可能完全不同,在这个浏览器里选中文字按删除能删掉,换个浏览器同样的操作就没反应。


v2-5fab3e3cad955c94af5b6900152ea06c_720w.jpg


有时候在知乎写东西的时候,不知道你们有没有这样的经历,两个字之间有时候死活插不进光标,选中一段文字按删除键偶尔毫无反应,粘贴进来的内容格式乱成一团。这不是知乎的工程师水平差,是这条技术路线本身就有结构性缺陷。字节的飞书、腾讯文档、Notion,全世界做富文本编辑器的团队都在填同一个无底洞,Medium的编辑器开发者专门写过一篇文章叫《Why ContentEditable is Terrible》,标题已经说明一切。

Wikipedia用的MediaWiki标记语言功能确实强大,但光是插一个表格就得记住一套竖线加花括号的特殊写法,普通人看一眼就放弃了。Python社区的reStructuredText支持脚注、交叉引用,学术论文级别的表达能力,但语法复杂度也是学术论文级别的,光标题就有好几种写法,至今没走出Python文档那个圈子。LaTeX的排版效果确实是天花板,但学习曲线陡到让人怀疑人生,中文支持到2026年了还在折腾各种宏包,拿来写篇博客简直是大炮打蚊子。

把这些选项摆一排就很清楚了,Word太封闭太臃肿,HTML太啰嗦,富文本编辑器底层不稳定,wiki语法太复杂,reStructuredText太学术,LaTeX门槛太高。Markdown所谓的“优势”说白了就是它的下限特别高。你写错了Markdown语法,最差的结果就是格式没渲染出来,退化成纯文本显示,不会像Word那样排版崩溃,不会像HTML那样标签嵌套报错白屏,不会像富文本编辑器那样光标乱跳内容丢失。


v2-3bd67d17e1e40fb10d418781d7b52b8d_720w.jpg


当然Markdown自身也一堆毛病,Gruber在2004年发布初版规范之后基本就撒手不管了,规范本身写得模糊不清,大量边界情况没有定义。列表项里面能不能嵌套另一个列表,星号和下划线混用的时候谁优先级高,不同解析器给出了不同的答案。结果就是GitHub搞了自己的GFM加了表格和任务列表,Reddit搞了自己的变体,Stack Overflow又搞了自己的一套。2014年Jeff Atwood实在看不下去了,牵头做了一个叫CommonMark的标准化规范,结果Gruber本人跑出来公开反对,连“Markdown”这个名字都不让用,到今天CommonMark也没能发布正式的1.0版本。

一个创始人自己不维护也不让别人标准化的个人项目,规范模糊,实现碎片化,各平台各搞一套互不兼容,但它就是赢了,赢得很荒诞。

2023年之后ChatGPT、Claude、Gemini,包括国内的豆包、Kimi,输出内容默认全是Markdown格式,这些模型训练时吃进去的语料,GitHub的README、技术博客、Stack Overflow的问答,绝大部分就是Markdown写的,模型自然而然学会了用Markdown来组织信息,这等于给Markdown又续了一波命,现在哪怕你从来不主动写Markdown,每天看到的AI输出内容也全是Markdown排的版。

所以Markdown流行这件事,总结起来就两句话。

第一,它不是因为做对了什么而赢的,是因为别人做错了太多而赢的。在“给文字加点格式”这个赛道上,它是最不容易让人踩坑的选项。

第二,“不会搞砸”这四个字,在软件世界里比“特别优秀”值钱得多。TCP/IP协议是这样赢的,Linux是这样赢的,Markdown也是这样赢的。不是最好的设计,但是最能活下来的设计。
回复

使用道具 举报

评论1

九三郎Lv.9 发表于 2026-4-7 17:21:42 | 查看全部
话说这玩意儿确实真的难用。
回复
0

使用道具 举报

回复

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

关灯 在本版发帖
扫一扫添加微信客服
返回顶部
快速回复 返回顶部 返回列表