文档通常有两种格式保存:纯文本富文本
纯文本,即文件的内容就是要表达的文字内容,没有格式、布局以及图片等嵌入对象,易于读取,典型代表是各种源代码文件。富文本,有复杂的格式和布局,甚至嵌入对象,一般是二进制文件,需要专用软件读取和生成,典型代表是word文档和PDF文档。

纯文本和富文本可有特点。后者功能复杂,但一般不中立,依赖于平台和软件。前者表现力较差,但在准确性、分享性和中立性上较好。
因此,直到现在,像RFC这样的标准文档,还仍以纯文本作为其规范。虽然同是提供纯文本和PDF文件两种格式,但PDF格式被标注为非规范(non-normative)

Xnip2018-09-06_22-30-40

毕竟在处理复杂文档时,纯文本看起来和编辑起来太累了,因此在纯文本和富文本之间的一些标记语言就有了市场,而轻量级的标记语言,则慢慢的流行开来,Markdown就是其中的代表。标记语言的英文是 Markup Language,而 Markdown 就是 Markup 的取反(down对应up)。

Markdown对于程序员有什么独特的优点呢?

  1. 像代码一样管理。纯文本,意味着可以当做代码一样,在版本管理工具中管理(如果git),而不需要依赖额外的工具。要知道程序员的版本管理工具,比任何一款号称有历史版本管理的文档工具都强大,在其面前,什么dropbox的历史版本、evernote的历史回退都是渣。
  2. 对源码的控制感,让你明明白白做了什么,改动了什么。相反,你在word里加一个字符,底层到底干了什么,完全不知道。
  3. 这是一种克制。简单少量的规则,实际是一种克制,让你将注意力放在内容上。相反,复杂的规则,让人无所适从。

    有限,让人看清自己真正需要什么,让人学会珍惜,才会将注意力放在最宝贵的事物上。

    从另一个角度,使用Markdown可以控制你的项目的熵,越简单越容易控制。

当然,Markdown 本身也有一些局限:

  1. 标准不统一,存在兼容性问题,一方面标准众多,另一方面不同的渲染器渲染的结果不一样。当然,从另外一个角度,文档本身就是可读的,渲染器只是帮助阅读。
  2. 复杂的操作麻烦,比如表格、流程图,比较困难。图片甚至不能调整大小。

即使如此,Markdown 还是一种不错的标记语言。

-------------------------

本文采用 知识共享署名 4.0 国际许可协议(CC-BY 4.0)进行许可。转载请注明来源:https://imshuai.com/ramble-on-markdown 欢迎指正或在下方评论。