这篇文章被我链接到Emacs China的一个帖子里,收到一些反馈。应该强调的是,这篇文章表达的是我个人对于两种标记语言的态度,于我而言,Markdown可以满足我的需求,而Org-mode在使用中有不便,于是我选择了Markdown。

背景

Org-modeMarkdown是两种轻量级的标记语言格式(lightweight markup language),前者在Emacs世界很受欢迎,而且非常强大,不仅是一种标记语言格式,也可以用来时间管理(Getting Things Done),后者在整个黑客圈都很出名,用的最多的可能就是GitHub了。

我最开始学的是Org-mode,也用它来写Blog(通过org2blog),但最近我慢慢转向了Markdown,一个原因是Hexo用的是Markdown,当然还有其他的一些原因,趁假期思考了一下,总结总结,希望能给别人提供一些帮助。

下面我分别列一下两者的优缺点然后再比较。

Org-mode

优点

  • 依托Emacs,写作与编辑非常方便。
  • 功能强大,可以在纯文本环境下做许多事,而且容易扩展。
  • 语法全面,包括了引用和表格等高级的用法。
  • 我非常喜欢的一点,具备了一些LaTeX的语法(上标和下标)。

缺点

  • 依赖Emacs,离开Emacs的支持很差。
  • 过于智能,复杂,一些需求难以实现。
  • 因为依赖Emacs,处理效率不算高。

Markdown的优点

优点

  • 应用范围广。
  • 很多方式处理,比如Hexo和Pandoc
  • 专注,仅仅是一种标记语言。

缺点

  • 缺乏标准化。
  • Emacs对它的支持还比较弱。
  • 语法过于简陋了,比如上标下标默认就没有。

Org-mode在实现具体需求中存在的问题

Org-mode能做很多事,以前我也用它写一些简单的材料(甚至是我的本科论文),写以前的Blog,但总的来说我并不十分满意,从体验上来说,有一些问题,举几个使用中遇到的Org-mode在可用性方面的问题。

输入化合物名

比如,DMF(Dimethylformamid),IUPAC名是N,N-Dimethylformamide,这个在Org-mode里是没法正确处理的,具体原因我也解释不了。要想让它能处理,要么改代码,要么插入HTML标签,都不优雅。这个本应该是很简单的一个工作,Org-mode把它搞的太复杂了,反而麻烦。Markdown的处理规则简单,* *支持对部分内容的处理,没有这个问题。

插入代码

这个功能在Org-mode里面有两个毛病:

  • 行中插入代码~ ~不是特别好用,不像Markdown里面那么明显;
  • 代码块的写法太麻烦。

其实这两个毛病都可以通过Org的可定制性与Emacs强大的功能克服,但可能是我不大会折腾,总感觉不那么好,反而是Markdown上手即用。

发布

Org-mode可以发布很多种格式,可是不支持Word,唉,这东西是事实标准,没办法。有一个神器,也就是上面提到的Pandoc,发布的难题是可以用它解决的,可是,Pandoc的强项是对Markdown语法的扩展,对Org文件的处理只是照搬了Org-mode,这是我选择Markdown的一大原因。

总结

总结一下。Org-mode的强大并依托Emacs,是优点,也是缺点,Markdown简单专注,是缺点也是优点。Org-mode的缺点是可以克服的,只是需要折腾,而经过折腾还只是达到了其他工具的平均水平,没有什么优势。比较来看,我最终选择Markdown作为我的主流标记语言。