反对从Markdown转向HTML:文字即思想,思想即神圣


Anthropic 塔里克·希希帕尔(Thariq)发表一篇引人深思的文章,他认为对于大多数人工智能用例,我们应该从 Markdown 转向 HTML

为什么我坚持用Markdown写AI文档而不是HTML ,这其实是一种思想优先的工作流。反对将AI文档主格式从Markdown换成HTML。

作者认为Markdown像“思想的手写体”,容易编辑和思考;HTML虽然好看但难改。建议保留纯文本文件做主版本,用工具自动生成展示用HTML,两全其美。

别把思想外包给格式:Markdown比HTML更适合当AI文档老大

Thariq建议AI写文档直接用HTML,因为排版漂亮、好分享。但我觉得这走歪了。Markdown虽然长得丑,但它离人的思考最近。你打字就是在整理脑子里的想法。

HTML像精装修的样板间,看着爽但改一堵墙得请施工队。

正确做法是:用Markdown存原始思路,让AI自动生成一份HTML用于展示。既保留思想的“可编辑性”,又不牺牲分享时的“好看”。

我到底在反对什么

最近有篇文章挺火,说AI生成的内容应该直接用HTML格式,别再用Markdown了。理由是Markdown纯文本读起来费劲,没有排版没有图,分享给别人像扔过去一堆草稿纸。HTML多好啊,有标题有颜色有图片,还能做成幻灯片那样一页一页翻。

我听懂了,也觉得他说得有道理。展示效果上,HTML确实完胜。纯文本文件往群里一丢,别人点开就是白底黑字,连个加粗都没有,确实像上世纪的东西。

但问题在于,这家伙的解决方案是把主格式从Markdown换成HTML。也就是以后AI写东西,直接生成HTML代码,Markdown变成备胎或者直接淘汰。

我觉得这个方案有问题,大问题。

先说我同意的部分:人类理解复杂事情确实需要视觉辅助。一张流程图顶五百个字。一个红色警告框比十个感叹号都好使。我完全承认,纯文本在“让别人秒懂”这件事上很弱。

那分歧在哪呢。分歧在于,文档的“主版本”应该是什么格式?他说应该用HTML,我说应该继续用Markdown。

打个比方你就懂了:写文档像盖房子,Markdown是脚手架加毛坯房。你可以在里面随便敲墙、拉电线、改格局,工具就是一把锤子和几根钢管。HTML是精装修交付的房子,中央空调、大理石地板、智能灯光都给你弄好了。但你想在墙上新开一个插座,就得请专业电工来凿墙,还要重新补腻子。

问题来了。我们写AI相关文档的时候,脑子里那个想法一直在变。今天觉得这个架构对,明天发现有个漏洞要补。如果用HTML做主版本,改一次要面对一堆div、span、class名。正常人不想碰那玩意。

为什么纯文本离思想更近

我特别迷信一个事:文本就是思想,思想是神圣的。你没法偷懒。

你试试把脑子里一团乱麻的想法写成干净、通顺、有条理的文字。这事本身就是在逼你思考。写不清楚就是没想清楚。没有例外。

Paul Graham的文章为什么厉害。不是因为他用了什么酷炫排版,而是他把很复杂的想法压缩成了很干净的句子。你读的时候感觉不到“文字”的存在,直接看到的是那个想法本身。

Markdown就干这个事。它几乎没有格式。你写东西的时候根本不用分心去想排版。标题就是几个井号。列表就是几个减号。代码块就是三个反引号。你全程关注的都是文字本身,也就是关注那个想法。

HTML就不一样了。你写着写着就得想:这个用h2还是h3?要不要加个container?这两个div怎么叠?你从“想事情”变成了“搞布局”。这就像健身的时候,本来要举杠铃,你偏要把杠铃换成一只活羊。不是不能练,但大部分力气都花在抓羊上了。

我担心的是,如果主格式变成HTML,我们就会慢慢失去那种“裸奔的思考”。AI帮你生成一份完美排版的HTML,你看着很好看,但你根本不知道那个想法是怎么来的。你也没法轻松地改它。你甚至不想读它,因为HTML源码打开全是标签,肉眼看瞎。

然后你就开始依赖AI给你总结。你问它,这段讲了啥,用四点告诉我。你看,你已经被格式隔开了。想法本身变得不透明了。你摸不着它了。

真正的解法是双文件方案

好消息是,我们不用二选一。小孩才做选择,成年人全都要。

具体做法特别简单。你手头的主版本永远是一个点md文件。纯文本,好编辑,能diff,能grep,能放进Git里看每一行是谁改的。你写的时候就用VSCode或者任何文本编辑器,没有任何心理负担。

然后你加一个自动化动作。每次你保存或者提交这个Markdown文件,系统自动调用AI或者一个转换脚本,生成一份漂漂亮亮的HTML。那份HTML专门用来给别人看,或者放到网页上,或者发到群里装逼。

就这么简单。Markdown管“想清楚”,HTML管“讲清楚”。两者各司其职。

我甚至觉得这个方案比单一HTML文件更合理。因为Markdown文件很小,纯文本,随便用什么工具都能打开。手机便签都能编辑。你把HTML给别人,他要改只能找专业工具或者直接改源码,那画面太美我不敢看。

而且Markdown天生对AI友好。AI读Markdown不会累,因为结构清晰又没有噪音。你让AI去读一堆HTML标签,它当然也能读,但那个信噪比太低了。你占用了大量的token去描述排版,而不是描述思想。

我举个例子你就明白了:你让AI总结一份Markdown文档,它直接看正文就行。你让AI总结一份HTML文档,它先得把div和span过滤掉,再把class名扔掉,然后才能看到正文。多了一道工序,就多了一次出错的机会。不是不能用,是不优雅。

我实际会怎么干

说干就干。我现在的个人工作流就准备这么改。

仓库里只存点md或者点mdx文件。每个文件就是一个想法或者一篇文章。文件头写点元数据,标题、日期、标签啥的。

然后在Git的钩子里面加一个脚本。每次提交之后,自动跑一个命令。这个命令调用一个AI或者一个模板引擎,把Markdown转成HTML。转的时候可以加上好看的CSS,可以嵌入图片,可以生成目录,甚至可以做成那种翻页的幻灯片效果。

最终生成的HTML文件可以单独放在一个目录,比如docs或者public。这样你既可以看原始文本,也可以打开浏览器看精美版。

如果不想用Git钩子,用GitHub Actions也行。每次推送代码,自动构建HTML。或者本地用watch命令监控文件变化,一保存就生成。方法多得很。

重点是什么呢?重点是权威版本永远是点md。HTML随时可以删了重新生成。你不心疼。你改Markdown的一行字,重新生成一下,HTML也跟着变了。你不用去手改HTML。

这就保留了“人-文本-思想”这条链子。你还是在写纯文本,你还是在跟想法死磕。但同时你也没有牺牲分享时的美观。两全其美。

尾声

我知道有人会说,你这就是矫情。现在AI那么强,写HTML跟写Markdown一样快,你说这些是老年人的固执。

我承认我有点矫情。但我还是觉得,思考这件事不能外包。你可以让AI帮你润色文字,可以让AI帮你生成HTML展示版,但不能让AI替你搞清楚你到底想说什么。那个过程是你的,你得亲自过一遍。

如果有一天,我们所有的文档都是AI直接生成的高颜值HTML,我们只是在上面点个赞或者改两句话,那我真的觉得我们把自己骗了。我们以为自己在创作,其实只是在给AI的成品做QA。

不如就这样。主文件用Markdown,保持思想的裸露和可编辑。再用自动化生成一份HTML,保持展示的体面。这事比争论哪个格式更好有意义多了。

感谢提出这个问题的朋友。倒逼我想清楚了自己为什么死守Markdown。
现在我可以理直气壮地说:我不是守旧,我是把思想的清晰度排在了格式的美观度前面。