Markdown和Org-mode的比较

文章目录
  1. 1. 背景
  2. 2. Org-mode
    1. 2.1. 优点
    2. 2.2. 缺点
  3. 3. Markdown的优点
    1. 3.1. 优点
    2. 3.2. 缺点
  4. 4. Org-mode在实现具体需求中存在的问题
    1. 4.1. 输入化合物名
    2. 4.2. 换行
    3. 4.3. 插入代码
    4. 4.4. 发布
  5. 5. 总结

背景

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里面的换行规则是这样的,用一个空行表示换行,多于一个空行按一个空行处理。当然这样设计初衷是为了org文件与生成出文档的质量,但这种强制的规则与Python的强制缩减一样让我感觉不好。

插入代码

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

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

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

发布

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

总结

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