说起来 Markdown 这东西,现在写文档、记笔记、写博客基本离不开,但它刚出来的时候,压根不是为了做复杂排版而生的。
时间回到 2004 年,约翰・格鲁伯(John Gruber)和亚伦・斯沃茨(Aaron Swartz)一起搞出来的。当时的痛点很简单:早期网页写作太折磨人。想写篇文章,要手动敲一堆 HTML 标签,<p>、<h1>、<b> 到处堆,阅读原始文本的时候满眼都是标记,文章结构根本看不清。
他俩的核心目标很纯粹:写出来的纯文本,人肉眼直接读就很舒服;同时能简单转换成合法的 HTML。不用复杂编辑器,随便一个记事本就能写,标记符号尽量用大家打字本来就会用到的符号,#、*、>、[](),不用额外记一堆语法。这就是 Markdown 最初的服务对象 —— 普通创作者,用来快速写网页内容,规避 HTML 的繁琐。
最早版本其实很轻量,语法规则也比较松散,没有严格统一规范。也正因为没有标准,后面慢慢就分叉了。各家平台开始自己扩展语法:GitHub 加了表格、任务列表、代码块高亮,就是大家熟知的 GFM(GitHub Flavored Markdown);Reddit、简书、Notion 又各自再加自己的扩展。
很长一段时间里,Markdown 处于 “原始定义很简单,现实实现五花八门” 的状态,同一份 md 文件,在不同网站渲染出来效果不一样。直到 2014 年 CommonMark 项目出来,试图制定一套标准化规范,统一解析规则,才算补上了标准化这一环。
发展到现在,早就超出当初 “转 HTML 写网页” 的初衷了。技术文档、知识库、博客、README、笔记软件、甚至技术书籍,全都在用。本质上它抓住了一个很核心的需求:把「内容」和「样式」拆开。我们只关心标题、段落、引用、链接这些语义,排版交给渲染器。
当然它也不是完美的,原生语法能力弱,复杂排版、多列布局就很难搞定,必须内嵌 HTML。但胜在足够轻、上手成本极低,跨平台通用。从 2004 年到现在二十多年,能火到今天,根源还是当初那个简单的设计理念:纯文本可读优先。
文章评论
其实最开始markdown是为了解决一个用html标签写简单文档时存在的弊病:一旦符号没有闭合,可能保存文档后再打开,整段话就消失了(比如`<p>XXXXXXX<p>YYYYY</p>`可能前边XXXXX那一整段话能全没了)markdown很多符号本来就不需要闭合,需要闭合的即使你写错了也只是原样显示,而不会直接少一大段。