Markdown 是一种正在流行起来的「标记语言」,通常为程序员群体所用。但现在,不光是程序员,对于普通的文字编辑者而言,Markdown 的优势也越来越明显了。
从前码字时我们面临着什么困境#
以前,大部分的人使用 Word 或 Pages 码字、写作、写论文,过去的文档也大都以.doc, .docx格式或是.pages格式储存。还有人为了编辑简洁、保证文稿发给谁都能正常打开,会用.txt 格式。
.doc或.pages格式有如下问题:
文件格式难兼容:不一定谁都能打开。用 Windows 的人打不开.pages文件,用旧版 Word 的人不一定能打开你用新版 Word 写的稿子,而且在其他操作系统下(虽然这是少数)打开.doc的体验一向很糟糕。
显示效果不统一:对方看到的稿子的样子和你自己看到的可能差别很大,可能是因为不同的软件版能,可能是不同的系统平台。
功能繁复分人心:写 Word 文档的时候,我们经常浪费大量时间在 Word 本身上,特别是那80%我们用不到的功能,而且 Word 越来越臃肿的身躯,让每一次打开文件都是一种痛苦。
排版耗时又耗力:使用 Word 时,我们会花费大量力气去排版,试图让文档变得漂亮一些。是粗体还是斜体,是宋体还是黑体,对创作来说,有那么重要吗?而且有相当一部分人为了简便,甚至不能正确的设置标题级别,仅仅是使用变大字号和加粗来表明「我是一个标题」。
版本管理真着急:每一位自杀的写作者的电脑文档里面,都必然有一个 Word 文档,从V1.0到V20.0的无数版本……这样的版本管理方式是落后且低效的。
协同工作在哪里:想想你让一位合作的编辑帮你改书有多么痛苦,一个Word文档来,一个Word去,使用那极其难用的修订与审阅功能,你就理解了。
盗版卄年不心虚:Office 已经是你电脑上用得最久的盗版软件,导致心情不佳。
标记语言显神威#
既然使用 Word 来码字这么闹心,我干脆写个纯文档算了,或者直接打开记事本,写个.txt多简单!可是.txt格式的问题在于没有样式:收到文档的人甚至不知道哪里是标题,哪里需要加粗,哪里是引用,更别说在文档里插个图片了。
有人肯定灵机一动,我在旁边标注一下不就行了么:
在山的那边海的那边有一群蓝精灵(这是一个标题)
作者实在太机智,是的,看到稿子的正常人应该都会把(这是一个标题)当做备注处理,剔除于正文之外。其实,这就是「标记语言」的原型了,不过试想一下,如果一篇文章充满了
在山的那边海的那边有一群蓝精灵(这是一个标题)
他们(强调)活泼(强调结束)又聪明(这是一个子标题)
他们调皮(注:蓝精灵们喜欢恶作剧)又灵敏(这也是一个子标题)
的确挺让人抓狂的,所以为了约定俗成,天才的 John Gruber 和 Aaron Swartz[1] 共同发明了 Markdown 这门轻量级的标记语言,它使用像#、*、-这样的符号来标记标题、强调甚至列表。
到底什么是 Markdown#
在详细介绍 Markdown 之前,我不得不提一提 Markdown 的精神理念。
Markdown 的目标是「易读易写」。
为实现这一目标,Markdown 的语法几乎全部由标点符号构成,这些标点符号都是精心挑选而来,是与写作的习惯一脉相承的,每一个符号都尽量做到能望文生义。如:星号 * 括着一个单词(Markdown 中表示强调)看上去就像强调;Markdown的列表看上去就像列表;Markdown 的引文就像引文,和你使用 e-mail 时的感觉一样。
它实际上是个非常简单、非常容易学习的语法。这个语法简单到每个人都可以在5分钟以内学会,这样低廉的学习成本可以让你毫无负担地投入它的怀抱。
有了 Markdown 之后,我们编辑文字时就可以专注于文字的内容本身,而不用分心去关注文字的排版,甚至于可以说在它简单到不能再简单的语法下,你根本就没有思考排版的空间,也没必要思考。也正因为 Markdown 的语法格式足够简单,所以开发者非常容易生成漂亮的版式,一切既有的CSS都可以简单修改之后套用,比如这样:
再比如这样
所以为什么我们要使用 Markdown#
用 Markdown 有如下好处:
兼顾了 .txt 文件什么系统环境都能打开和 .doc、.pages 文件系统的排版效果。因为一方面 Markdown 本身就是纯文本,他可以保存为自己专有的 .md 格式,也可以保存为 .txt 等任何的纯文本文件格式,所以什么系统都能打开。而它简单的语法让你可以用它来标记文本丰富的样式。
由于是纯文本,Markdown 文稿也不会因为未来软件升级而产生不同版本之间的兼容问题,不会出现「此文件是由较高版本的 Microsoft Word 创建的。是否要下载兼容包以便使用此文件?」的恼人问题,也不会出现好不容易下载兼容包了之后发现打开文件全变了样的尴尬。
想要获得丰富的表现样式,你只需要使用不同的CSS来表现这些标记元素即可,对于普通用户而言,就是用不同的「工具」或者「浏览器」来打开 Markdown 文档以获得不同的表现样式。
Markdown 转换为其他格式非常的方便。HTML 是整个万维网(web)的标记语言,但更重要的是,它也是目前主流电子书格式所用的标记语言。无论是 .EPUB 、.mobi,还是 Kindle 用的专有格式 .azw,都只是把一堆 HTML 文件打包而已。另外,后面的介绍的许多工具都能轻松地把 Markdown 文档转换成精美的 PDF 文档存储,便于出版和交流传播。