喜欢纯文本,就用Markdown

抛弃一切格式的羁绊,你才能自由地记录。

纯文本的好处

我虽然不是一个文字工作者,但也写过不少乱七八糟的东西,其中有一部分挂在了博客上,更多的则是写给自己看,我有一种独自叙述的欲望,至今依然保持着每天写日记的习惯。因此,许久以来,我也用过相当多的写作工具,一开始用的还是Word,可是很快就发觉了它的缺陷,除了在上一篇介绍LyX的文章中(参见这里)提到的Word的格式问题,还有一个不方便的地方就是通用性,当年云计算的概念还没有形成气候,Office系列依然固守桌面,这就导致在PC上写好的文档拿到别的平台难免会出现各种问题,譬如当年我就花了很大功夫在塞班系统里安装各种可以编辑doc文档的软件,最终使用效果也很糟糕。虽然现在Office云平台也整起来了,一个账号走天下,只要连上网,电脑里不安装Word也能对doc进行编辑,第三方工具的支持力度也越来越强,可是早年的使用经历还是给我留下了阴影,简单来说,就是对富文本格式的不放心。

所谓「富文本」,就是类似doc、rtf这样的文档格式,这种文档是高度封装的,你只能用专有工具(如Word、WPS)才能打得开,即使现在能访问它们的工具已经唾手可得,由于这种格式本身的商业属性,不能访问它们的工具还是占绝大多数;此外,由于这类文档的格式均由某个公司制定,当软件升级时,新旧版本迭代,兼容性问题便不可避免(应该有不少同学因为doc、docx的兼容问题而吃过苦头吧)。鉴于此,我将目光转向了纯文本,所谓「纯文本」,顾名思义,就是不带任何封装的文档格式,比如最为常见的txt格式,你用任何文本编辑器,比如Windows自带的记事本,就可以轻易打开这类文档进行编辑;而且最重要的是,纯文本的兼容性是最高的,你在任何操作系统上均能访问,使用任何编辑器均能改写,绝不会发生格式冲突1

于是我开始尝试用txt记东西,可是时间长了我就发现,txt的局限性还是蛮大的,如果仅仅是日记还好对付,但若想要插个链接做个列表之类的就麻烦了,那有没有既能用纯文本方式编辑又可以支持复杂格式的工具呢?有,比如LaTeX,它确实强大,简直无所不能,可是它更适合写大型文档,例如科研报告、学术论文什么的,日常记录如果用它,就显得太繁琐了,我可不想在一个文档里导言区整得比正文还长。

后来上GitHub时,注意到几乎每一个项目都有一个后缀为.md的readme文档,呈现在主页的下方,链接图片、分级标题一应俱全。我去查了一下这个.md到底是什么来头,于是第一次知道了Markdown的存在。这是一种轻量级文本标记语言,类似HTML,但要简易得多,我大概用了不到两小时就学会使用它了——这可能是世界上最简单的语言了吧。掌握了Markdown,我的纯文本写作才算步入正轨,即使在文本编辑器里写一些比较复杂的东西也不觉得难办了。后来用的熟练了,甚至在给别人发短信的时候也会不由自主地加上某个Markdown的标记语法。

Markdown入门

标记语言挺多的,能做到Markdown这样容易上手的不多见。其实Markdown的语法规定也不少(参见这里),但是基础语法就那么几条,而且非常直观,一看就懂,正如Markdown语法帮助中说的那样:

Markdown 的语法全由一些符号所组成,这些符号经过精挑细选,其作用一目了然。比如:在文字两旁加上星号,看起来就像*强调*。Markdown 的列表看起来,嗯,就是列表。Markdown 的区块引用看起来就真的像是引用一段文字,就像你曾在电子邮件中见过的那样。

下面给出具体说明:

  • 文档的标题分级通过标题前加不同数量的井号#来表示,一级标题就是一个井号,二级标题就是两个,以此类推,最多到六级标题(一般人用不到这么深吧喂);
  • 字符的斜体(正式说法叫「强调」)通过前后加单个星号*或下划线_完成,比如斜体表现;需要注意的是,无论是用星号还是下划线,前后都应保持一致;
  • 字符的粗体通过前后加两个星号*或下划线_完成,比如粗体表现
  • 如果是行内代码,可以用一对反引号(Tab上面那个键`)完成,比如code;如果是区块代码,则可以通过每行缩进四个空格或一个制表符(Tab)完成;
  • 插入链接,用这种语法:[链接名](链接地址)
  • 插入图片,用这种语法:![链接名](链接地址),仅比插入链接多了个叹号;
  • 无序列表需要在每一行前加星号*、加号+或者减号-,后面必须跟一个空格或制表符;
  • 有序列表(数字顺序)仅需在每一行前加数字和句点即可(任何数字均可,神奇吧,不过我还是建议你从1开始编号,省得把自己给绕晕了),同样后面要记得跟空格或制表符;
  • 区块引用通过在段落首行前加大于号>完成,而且支持嵌套(由>的数量控制嵌套层次);
  • 一行中有且仅有三个或三个以上的星号、减号或下划线时,这一行就是分隔线。

以上就是Markdown的基础语法,是不是已经涵盖了日常写作的一切要素了呢?

一些补充

对于编辑器的选择,其实如前文所述,只要是支持纯文本的都可,不过还是不太推荐Windows的记事本,主要是因为它不能方便保存为UTF-8编码,现在这年头各种文本编码出没,还是Unicode让人感到安心。这里推荐一个小软件——Notepad++,从名字就能看出来,是用来代替记事本的。这个免费软件非常好用,支持各种语法高亮,我平时查看Matlab代码就用它,打开大型文本文件的速度也是杠杠的。

如果想即时查看Markdown的排版效果,可以在Chrome中尝试这个应用,或者按这个教程配置一下。其实我觉得Markdown的语法已经足够清晰明了,通常用不到这些查看工具。

最后再推荐一个与Markdown无缝对接的写作平台——FarBox。我的博客目前就托管在这里。这个网站的运行机制很独特,有点类似GitHub,你只需在本地写你自己的东西,网站会通过网盘2定时更新并生成页面。你写的时候是纯文本形式,网页则根据你文档中的Markdown标记自动显示各种元素。修改也很方便,无需登录网站,仅仅在本地打开文本,改好后保存即可;数据备份就更方便了,你的所有文章就是一个个纯文本文档,都在本地保存着,你想放在哪就放在哪。其次,令人称道的是,FarBox原生支持MathJax,这样你就可以在文中直接敲LaTeX公式了(比如$E=mc^2$),而后网页呈现出来的就是矢量图形的数学公式,这种使用方式使得文本的复用性大大增强,同时又不失优雅。

这就是纯文本+Markdown的魅力,快捷、安全、省心,你值得拥有。


  1. 纯文本其实也未必不存在冲突问题,比如UNIX和Windows的换行符就不一致,只不过日常使用很难遇到这类问题。 
  2. FarBox所用的网盘是Dropbox,这就意味着,在GFW的干扰下,你除非挂上代理否则无法更新自己的文章。想想看,网站本身没被墙,内容同步服务器却在墙外……这是一件多么觳觫的事情。 
Advertisements
  1. 推荐的那个网站不错,我很喜欢。

  1. No trackbacks yet.

发表评论

Fill in your details below or click an icon to log in:

WordPress.com Logo

You are commenting using your WordPress.com account. Log Out / 更改 )

Twitter picture

You are commenting using your Twitter account. Log Out / 更改 )

Facebook photo

You are commenting using your Facebook account. Log Out / 更改 )

Google+ photo

You are commenting using your Google+ account. Log Out / 更改 )

Connecting to %s