没有标记语言就没有Web和丰富多彩的互联网,但创造了Web的HTML语言并非尽善尽美,存在诸如难读、难写、难以向其他格式转换的问题。究其根源是因为HTML语言是一种“重”标记语言,对机器友好而并非对人友好。
下面这段HTML源码,非技术控阅读起来会遇到困难。
<html>
<head>
  <meta content='application/xhtml+xml;charset=utf-8' http-equiv='Content-type' />
  <title>轻量级标记语言</title>
</head>
<body>
  <h1 id='id1'>轻量级标记语言</h1>
  <p><strong>轻量级标记语言</strong> 是一种 <em>语法简单</em> 的标记语言。
  它使用易于理解的格式标记,没有古怪的 <code><标签></code> 。</p>
  <ul>
  <li>可以使用最简单的文本编辑器编辑。</li>
  <li>所见即所得,非技术控亦可直接阅读源码。</li>
  <li>可版本控制。</li>
  <li>实现单一源文件出版。</li>
  </ul>
<body>
</html>
同样的信息如果换用轻量级标记语言来表达,就非常直观了。如下所示:
轻量级标记语言
==============
**轻量级标记语言** 是一种 *语法简单* 的标记语言。
它使用易于理解的格式标记,没有古怪的 `<标签>` 。
- 可以使用最简单的文本编辑器编辑。
- 所见即所得,非技术控亦可直接阅读源码。
- 可版本控制。
- 实现单一源文件出版。
GitHub令人着迷的一个因素就在于GitHub为用户提供更为便捷地创建UGC(用户生成内容)的方法,其奥秘就在于使用了轻量级标记语言。无论是代码提交说明、提交评注、问题描述、项目的README文件、维基页面、用户主页和项目主页都可以使用Markdown[8]等轻量级标记语言来撰写。轻量级标记语言如Markdown是对人友好的标记语言,一些语法参照了我们写电子邮件时的习惯,即使第一次接触用轻量级标记语言撰写的文件,也可以毫无障碍地理解其中的内容。
虽然GitHub更倾向于使用Markdown标记语言[9],但很多地方也提供对其他轻量级标记语言的支持。包括为Python程序员所熟悉的reStructedText[10],为Ruby程序员所熟悉的Textile[11]、RDoc[12],为Perl程序员所熟悉的POD[13],为Emacs用户所熟悉的Org-mode[14],为维基用户所熟悉的MediaWiki[15]和Creole[16],以及可作为DocBook[17]前端的颇有前途的AsciiDoc[18]标记语言。
下面通过一张表格对几种常用的轻量级标记语言加以对照,供有不同标记语言偏好的用户参考,便于在GitHub某些不能随意更换标记语言而只能使用GFM(GitHub风格的Markdown)的场合可以自如地转换。
在“表7-1:常用轻量级标记语言对照”中,为使表格更加紧凑使用代号表示各种标记语言。例如:md为Markdown,gfm是GitHub风格的Markdown,rst为reStructedText,ttl为Textile,asc为AsciiDoc,org为Org-mode。
| 类别 | 标记语言 | 代码示例 | 输出示例 | ||||||||||||||||
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
| MD | RST | TTL | ASC | ORG | |||||||||||||||
| 标题 | md | # 一级标题
## 二级标题
### 三级标题
#### 四级标题
##### 五级标题
###### 六级标题 ######
 | 输出略。 注解 
 | ||||||||||||||||
| rst | 一级标题
========
二级标题
--------
三级标题
~~~~~~~~
四级标题
^^^^^^^^
五级标题
++++++++
六级标题
````````
 | 输出略。 注解 
 | |||||||||||||||||
| ttl | h1. 一级标题
h2. 二级标题
h3. 三级标题
h4. 四级标题
h5. 五级标题
h6. 六级标题
 | 输出略。 | |||||||||||||||||
| asc | AsciiDoc 提供两种风格的标题。 
 | 输出略。 注解 除了两种不同风格的标题外,还支持以点开始的块标题,块标题不生成目录。如: .BlockTitle
 | |||||||||||||||||
| org | * 一级标题
** 二级标题
*** 三级标题
 | 输出略。 注解 为支持更多标题级别需要设置 #+OPTIONS: H:6。 | |||||||||||||||||
| 段落 | 空行分段 | md | rst | ttl | asc | org | 第一段内容。
第二段和第一段间有一空行。
 | 第一段内容。 第二段和第一段间有一空行。 | |||||||||||
| 自动续行 | md | rst | asc | org | 一个回车不分段,
本行续上行。
 | 一个回车不分段,°本行续上行。 | |||||||||||||
| 不留白续行 | rst | 行尾转义字符让\
续行之间不留白。
 | 行尾转义字符让续行之间不留白。 | ||||||||||||||||
| 插入换行 | md | 行尾两空格°°
保持换行。
 | 行尾两空格 保持换行。 | ||||||||||||||||
| gfm | ttl | GFM、Textile等
保持段落内换行符。
 | GFM、Textile等 保持段落内换行符。 | ||||||||||||||||
| rst | | 保持换行符,
| 本行不续行。
 | 保持换行符, 本行不续行。 | |||||||||||||||||
| rst | .. role:: raw-html(raw)
   :format: html
用新定义的role插入换行,
:raw-html:`<br />`
本行不再续行。
 | 用新定义的role插入换行, 本行不再续行。 | |||||||||||||||||
| asc | 行尾的空格和加号 +
保持换行。
 | 行尾的空格和加号 保持换行。 | |||||||||||||||||
| org* | 行尾两个反斜线\\
保持段落内换行符。
 | 行尾两个反斜线 保持段落内换行符。 | |||||||||||||||||
| 段落缩进 | md | rst | 邮件体段落缩进:
> 第一级段落缩进。
>
> > 第二级段落缩进。
>
> 返回一级段落缩进。
 | 邮件体段落缩进: 
 | |||||||||||||||
| rst | Python式段落缩进:
  第一级段落缩进。
    第二级段落缩进。
  返回一级段落缩进。
 | Python式段落缩进: 
 | |||||||||||||||||
| ttl | Textile式段落缩进:
bq. 本段缩进。
正常段落。
bq.. 注意缩进关键字后有两个点。
后续段落持续缩进,
直至遇到 p. 定义的段落。
p. 正常段落不再缩进。
 | Textile式段落缩进: 
 正常段落。 
 正常段落不再缩进。 | |||||||||||||||||
| asc | 四个或以上的下划线括起的区域为引言缩进。
[quote, author, source]
______________________________
引言...
______________________________
 | 四个或以上的下划线括起的区域为引言缩进。 
 | |||||||||||||||||
| org | Org-mode式段落缩进:
#+BEGIN_QUOTE
 段落缩进。
#+END_QUOTE
 | Org-mode式段落缩进: 
 | |||||||||||||||||
| 代码块 | md | 四个空格缩进是代码块:
    $ printf "Hello, world.\n"
 | 四个空格缩进是代码块: $ printf "Hello, world.\n"
 | ||||||||||||||||
| gfm | 三个连续的`或~等符号界定代码块。
```ruby
require 'redcarpet'
md = Redcarpet.new("Hello, world.")
puts md.to_html
```
 | 三个连续的`或~等符号界定代码块。 require 'redcarpet'
md = Redcarpet.new("Hello, world.")
puts md.to_html
 | |||||||||||||||||
| rst | 双冒号后缩进为代码块。
::
  $ printf "Hello, world.\n"
还可声明语言类型实现语法加亮。
.. code-block:: sh
   $ printf "Hello, world.\n"
 | 双冒号后缩进为代码块。 $ printf "Hello, world.\n"
还可声明语言类型实现语法加亮。 $ printf "Hello, world.\n"
 | |||||||||||||||||
| ttl | 以bc.或bc..指令开头的是代码块。
bc.. $ git init
$ git commit --allow-empty
p. 本段不再是代码块。
 | 以bc.或bc..指令开头的是代码块。 $ git init
$ git commit --allow-empty
本段不再是代码块。 | |||||||||||||||||
| ttl | 原样格式输出,相当于<PRE>标签。
pre..
           更上一层楼
欲穷千里目
p. 恢复正常段落。
 | 原样格式输出,相当于<PRE>标签。            更上一层楼
欲穷千里目
恢复正常段落。 | |||||||||||||||||
| asc | 四个或更多减号括起代码块,
还可声明语言种类。
[source, c]
-----------------------------
#include <stdio.h>
int main() {
   printf("Hello World!\n");
   exit(0);
}
-----------------------------
 | 四个或更多减号括起代码块, 还可声明语言种类。 #include <stdio.h>
int main() {
   printf("Hello World!\n");
   exit(0);
}
 | |||||||||||||||||
| asc | 正常段落。
  缩进段落相当于添加<pre>标签,
  等宽字体,原样输出。
缩进会和其他语法如列表相混淆,
可用 `[literal]` 显示声明。
[literal]
原样输出,
显示为等宽字体。
或用四个以上点组成的定界符标记。
..............................
原样输出,
显示为等宽字体。
..............................
 | 正常段落。 缩进段落相当于添加<pre>标签,
等宽字体,原样输出。
缩进会和其他语法如列表相混淆, 可用 [literal] 显示声明。 原样输出,
显示为等宽字体。
或用四个以上点组成的定界符标记。 原样输出,
显示为等宽字体。
 | |||||||||||||||||
| org | 下面是代码块。
#+BEGIN_SRC ruby
  require 'redcarpet'
  md = Redcarpet.new("Hello, world.")
  puts md.to_html
#+END_SRC
 | 下面是代码块。 require 'redcarpet'
md = Redcarpet.new("Hello, world.")
puts md.to_html
 | |||||||||||||||||
| 列表 | 无序列表 | md | rst | * 星号、减号、加号开始列表。
  - 列表层级和缩进有关。
    + 和具体符号无关。
* 返回一级列表。
 | 
 | ||||||||||||||
| ttl | * 星号开始无序列表。
** 更多星号代表不同层级。
*** 三级列表。
* 返回一级列表。
 | 
 | |||||||||||||||||
| asc | - 1个减号开始列表。
* 或1到5个星号开始列表。
** 三级列表。
- 返回一级列表。
 | 
 | |||||||||||||||||
| org | 列表语法和Markdown、reST类似。
星号和列表语法冲突需缩进,不建议使用。
  - 减号、加号开始列表。
    + 列表层级和缩进有关。
      - 和具体符号无关。
  - 返回一级列表。
 | 列表语法和Markdown、reST类似。 星号和列表语法冲突需缩进,不建议使用。 
 | |||||||||||||||||
| 有序列表 | md | 1. 数字和点开始有序列表。
   1. 注意子列表的缩进位置。
      1. 三级列表。
      1. 编号会自动更正。
   1. 二级列表,编号自动更正为2。
2. 返回一级列表。
 | 
 | ||||||||||||||||
| rst | 1. 数字和点是一种编号方式。
   A. 大写字母编号。
      a. 小写字母编号。
2. 继续一级列表。
   (I) 大写罗马编号。
       i) 小写罗马编号。
 | 
 | |||||||||||||||||
| ttl | # 井号开始有序列表。
# 有序列表自动编号。
## 更多井号代表不同层级。
### 三级列表。
# 返回一级列表。
 | 
 | |||||||||||||||||
| asc | 1. 和reST一样支持多种编号方式。
a. 层级靠列表风格决定,而非缩进。
A. 三级列表。
b. 返回二级列表。
i) 罗马数字列表。
IX)  大写罗马。编号自动纠正。
2. 返回一级列表。
注解 还可以用1到5个点开始有序列表, 自动按数字、字母方式编号。如: . 数字一级列表。
.. 字母二级列表。
... 罗马数字三级列表。
.... 大写字母四级列表。
..... 大写罗马五级列表。
 | 
 | |||||||||||||||||
| org | 1. 数字和点或右括号开始有序列表。
   1) 缩进即为子列表。
      1. 三级列表。
      1. 编号会自动更正。
   2) 二级列表。
2. 返回一级列表。
 | 
 | |||||||||||||||||
| 列表续行、段落和代码块 | md | 1. 列表项可以折行,
   对齐则自动续行。
2. 列表项可包含多个段落。
    空行开始的新段落必须缩进四个空格,
    段落才属于列表项。
3. 列表中的代码块要缩进8个空格。
        $ printf "Hello, world.\n"
 | 
 | ||||||||||||||||
| rst | 1. 列表项可以折行,
   对齐则自动续行。
2. 列表项可包含多个段落。
   空行开始的新段落,
   新段落要和列表项内容对齐。
3. 列表下的代码段注意对齐即可。
   ::
     $ printf "Hello, world.\n"
 | 
 | |||||||||||||||||
| asc | 1. 列表项可以折行,
   对齐则自动续行。
2. 列表项可包含多个段落。
+
加号代表本段落属于列表。
+
--
两个减号包裹的块作为一整体
属于列表。
其中分段无需再使用加号。
--
3. 注意列表项内代码段前空行用加号替换。
+
--------
$ printf "Hello, world.\n"
--------
 | 
 | |||||||||||||||||
| org | 1. 列表项可以折行,
   对齐则自动续行。
2. 列表项可包含多个段落。
   空行开始的新段落,
   新段落和列表项内容对齐即可。
3. 列表下的代码段注意缩进。
   #+BEGIN_SRC bash
     $ printf "Hello, world.\n"
   #+END_SRC
 | 
 | |||||||||||||||||
| 定义 | rst | git
  Simple and beautiful.
hg
  Another DVCS.
subversion
  VCS with many constrains.
  Why not Git?
 | 
 | ||||||||||||||||
| ttl | - git := Simple and beautiful.
- hg := Another DVCS.
- subversion :=
VCS with many constrains.
Why not Git? =:
 | 
 | |||||||||||||||||
| asc | git ::
    Simple and beautiful.
hg :: Another DVCS.
subversion :: VCS with many constrains.
              +
              Why not Git?
 | 
 | |||||||||||||||||
| org | - git :: Simple and beautiful.
- hg :: Another DVCS.
- subversion :: VCS with many constrains.
                Why not Git?
 | 
 | |||||||||||||||||
| 分隔线 | md | ttl | 三条或更多短线(或星号、下划线)\
显示为分隔线。
---
 | 输出略。 | |||||||||||||||
| rst | 四条短线或以上显示为分隔线。
----
 | 输出略。 | |||||||||||||||||
| asc | 三个或更多的单引号作为分割线。
'''
 | 输出略。 | |||||||||||||||||
| org | 五条短线或以上显示为分隔线。
-----
 | 输出略。 | |||||||||||||||||
| 字体 | 粗体和斜体 | md | 这些都是 **粗体** 或 __粗体__ ,
这写都是 *斜体* 或 _斜体_ 。
 | 这些都是 粗体 或 粗体 , 这些都是 斜体 或 斜体 。 | |||||||||||||||
| rst | 这是 **粗体** ,这是 *斜体* 。
不留白的\ **粗体**\ 和\ *斜体*\ 效果。
 | 这是 粗体 ,这是 斜体 。 不留白的粗体和斜体效果。 | |||||||||||||||||
| ttl | 这些都是 *粗体* 或 **粗体** ,
这些都是 _斜体_ 或 __斜体__ 。
不留白的[*粗体*]和[_斜体_]效果。
 | 这些都是 粗体 或 粗体 , 这些都是 斜体 或 斜体 。 不留白的粗体和斜体效果。 | |||||||||||||||||
| asc | 这是 *粗体* ,
这是 _斜体_ 或 '斜体' 。
不留白的**粗体**和__斜体__效果。
 | 这是 粗体 , 这是 斜体 或 斜体 。 不留白的粗体和斜体效果。 | |||||||||||||||||
| org | 这是 *粗体* ,这是 /斜体/ 。
 | 这是 粗体 ,这是 斜体 。 | |||||||||||||||||
| 删除线 | gfm | ~~删除线~~ 效果
 | 删除线 效果 | ||||||||||||||||
| rst | .. role:: strike
   :class: strike
:strike:`删除线` 效果
不留白的\ :strike:`删除线`\ 效果
 | 删除线 效果 不留白的删除线效果 | |||||||||||||||||
| ttl | -删除线- 效果
不留白的[-删除线-]效果
 | 删除线 效果 不留白的删除线效果 | |||||||||||||||||
| asc | [line-through]#删除线# 效果
不留白的[line-through]##删除线##效果
 | 删除线 效果 不留白的删除线效果 | |||||||||||||||||
| org | +删除线+ 效果
 | 删除线 效果 | |||||||||||||||||
| 下划线 | md | <u>下划线</u> 效果
 | 下划线 效果 | ||||||||||||||||
| rst | .. role:: ul
   :class: underline
:ul:`下划线` 效果
不留白的\ :ul:`下划线`\ 效果
 | 下划线 效果 不留白的下划线效果 | |||||||||||||||||
| ttl | +下划线+ 效果
不留白的[+下划线+]效果
 | 下划线 效果 不留白的下划线效果 | |||||||||||||||||
| asc | [underline]#下划线# 效果
不留白的[underline]##下划线##效果
 | 下划线 效果 不留白的下划线效果 | |||||||||||||||||
| org | _下划线_ 效果
 | 下划线 效果 | |||||||||||||||||
| 上标、下标 | md | - Water: H<sub>2</sub>O
- E = mc<sup>2</sup>
 | 
 注解 通过直接嵌入HTML代码实现。 | ||||||||||||||||
| rst | - Water: H\ :sub:`2`\ O
- E = mc\ :sup:`2`
 | 
 | |||||||||||||||||
| ttl | - Water: H[~2~]O
- E = mc[^2^]
 | 
 | |||||||||||||||||
| asc | - Water: H~2~O
- E = mc^2^
 | 
 | |||||||||||||||||
| org | - Water: H_2 O
- E = mc^2
 | 
 | |||||||||||||||||
| 等宽字体 | md | asc | 行内反引号嵌入代码,如: `git status` 。
 | 行内反引号嵌入代码,如: git status 。 | |||||||||||||||
| rst | 两个连续反引号嵌入代码,如: ``git status`` 。
 | 两个连续反引号嵌入代码,如: git status 。 注解 相当于 :literal:`git status` 。 只用一个反引号则相当于 :title-reference:`引言` 。 | |||||||||||||||||
| ttl | 行内用字符@嵌入代码,如: @git status@ 。
 | 行内用字符@嵌入代码,如: git status 。 | |||||||||||||||||
| asc | 行内用加号或反引号标识等宽字体,如:
- 命令: +git clone+ 。
- 命令: `git init` 。
 | 行内用加号或反引号标识等宽字体,如: 
 | |||||||||||||||||
| org | 行内用字符=或~嵌入代码,如:
=git status= 和 ~git st~ 。
 | 行内用字符=或~嵌入代码,如: git status 和 git st 。 | |||||||||||||||||
| 引言 | rst | `Got GitHub` by Jiang Xin.
 | Got GitHub by Jiang Xin. | ||||||||||||||||
| ttl | ??Got GitHub?? by Jiang Xin.
 | Got GitHub by Jiang Xin. | |||||||||||||||||
| 清除标记空白 | rst | 标记符号前后空白\
用\ **反斜线**\ 消除
 | 标记符号前后空白用反斜线消除 | ||||||||||||||||
| 链接 | URL自动链接 | gfm | rst | asc | org | - 网址 http://github.com/
- 邮件 me@foo.bar
 | 
 | ||||||||||||
| 文字链接 | md | - 访问 [Google](http://google.com "Search")
- 访问 [GitHub][1]
- 访问 [WorldHello][]
 [1]: http://github.com "Git host"
 [worldhello]: http://www.worldhello.net
 | 
 | ||||||||||||||||
| rst | - 访问 `Google <http://google.com/>`_ 。
- 上面已定义,直接引用 google_ 链接。
- 链接地址在后面定义,如: GitHub_ 。
- 反引号括起多个单词的链接。如 `my blog`_ 。
.. _GitHub: http://github.com
.. _my blog: http://www.worldhello.net
 | ||||||||||||||||||
| ttl | - 访问 "Google (Search)":https://google.com
- 访问 "GitHub (Git host)":github
- 访问 "WorldHello":wh
[github]http://github.com
[wh]http://www.worldhello.net
 | 
 | |||||||||||||||||
| asc | - 访问 http://google.com[Google]
- 访问 link:/index.html[首页]
 | ||||||||||||||||||
| org | - 访问 [[http://google.com][Google]]
 | 
 | |||||||||||||||||
| 内部跳转 | md | <a name="md-anchor" id="md-anchor"></a>
跳转至 [文内链接](#md-anchor) 。
 | 跳转至 文内链接 。 | ||||||||||||||||
| rst | .. _fig1:
.. figure:: /images/github.png
   内部跳转图例
上面定义的位置,可以:
- 通过 fig1_ 跳转。
- 或者 `点击这里 <#fig1>`__ 跳转。
- 或者参见 :ref:`fig1`\ 。
 |   内部跳转图例 上面定义的位置,可以: | |||||||||||||||||
| ttl | <a name="ttl-anchor" id="ttl-anchor"></a>
跳转至 "文内链接":#ttl-anchor 。
 | 跳转至 文内链接 。 | |||||||||||||||||
| asc | 两种方式在这儿定义内部链接。
[[alink1,链接标题1]]
anchor:alink2[链接标题2]
指向位置:
- 跳转至 <<alink1,内部链接1>>
- 跳转至 xref:alink2[]
 | 两种方式在这儿定义内部链接。 指向位置: | |||||||||||||||||
| org | # <<org-anchor>>
跳转至 [[#org-anchor][文内链接]]
 | 跳转至 文内链接 。 | |||||||||||||||||
| GitHub提交和问题链接 | gfm | 指向同一提交的链接:
- 提交ID(SHA): cea00609ca8...
- 用户@提交ID: mojombo@cea00609ca8...
- 用户名/项目名@提交ID:
  mojombo/god@cea00609ca8...
指向同一Issue的链接:
- Issue编号: #1
- 用户名及Issue编号: mojombo#1
- 用户名/项目名及Issue编号:
  mojombo/god#1
 | 指向同一提交的链接[19]: 
 指向同一Issue的链接[20]: 
 | ||||||||||||||||
| 脚注 | rst | reST脚注的多种表示法:
- 脚注即可以手动分配数字 [1]_ ,
  也可以使用井号自动分配 [#]_ 。
- 自动分配脚注 [#label]_ 也可以用
  添加标签形式 [#label]_ 多次引用。
- 还支持用星号嵌入符号式脚注,
  如这个 [*]_ 和 这个 [*]_ 。
- 使用单词做标识亦可 [CIT2012]_ 。
.. [1] 数字编号脚注。
.. [#] 井号自动编号。
.. [#label] 井号添加标签以便多次引用。
.. [*] 星号自动用符号做脚注标记。
.. [*] 星号自动用符号做脚注标记。
.. [CIT2012] 单词或其他规定格式。
 | reST脚注的多种表示法: 
 
 
 
 
 
 
 | ||||||||||||||||
| ttl | Textile是Redmine [4] 内置的标记语言。
fn4. http://goo.gl/rGyvs
 | Textile是Redmine [4] 内置的标记语言。 
 | |||||||||||||||||
| asc | - 内联方式 footnote:[此处定义] 定义的脚注。
- 定义脚注时可用一个ID标记
  footnoteref:[note6, 可多次引用] 。
- 引用已定义的脚注 footnoteref:[note6] 。
 | 
 
 | |||||||||||||||||
| org | Twitter widget in Org homepage[fn:org]
cannot be accessed in Mainland China, which
caused the homepage load very slowly. >:[
[fn:org] The link is: http://orgmode.org
 | Twitter widget in Org homepage [7] cannot be accessed in Mainland China, which caused the homepage load very slowly. >:[ 
 | |||||||||||||||||
| 图片 | md | 
GitHub Logo: ![GitHub][logo]
[logo]: /images/github.png "Logo"
 |   GitHub Logo:  | ||||||||||||||||
| rst | .. figure:: /images/github.png
   :width: 32
   图:GitHub Octocat
- GitHub Logo: |octocat|
- 带链接的图片:
  |imglink|_
- 下图向右浮动。
   .. image:: /images/github.png
      :align: right
.. |octocat| image:: /images/github.png
.. |imglink| image:: /images/github.png
.. _imglink: https://github.com/
 |   图:GitHub Octocat | |||||||||||||||||
| ttl | - GitHub Logo: !/images/github.png(Logo)!
- 带链接的图片:
  !/images/github.png!:https://github.com/
- 下图向右浮动。
  !>/images/github.png!
 | ||||||||||||||||||
| asc | .GitHub Octocat
image::/images/github.png["Logo",width=32]
- GitHub Logo:
  image:/images/github.png["Logo"]
 |   图:GitHub Octocat 
 | |||||||||||||||||
| org | - GitHub Logo: [[file:/images/github.png]]
- 带链接的图片:
  [[https://github.com/][file:/images/...]]
 | ||||||||||||||||||
| 表格 | gfm | head1 | head2  | head2
------|:------:|------:
left  | center | right
left  | center | right
 | 
 | ||||||||||||||||
| rst | .. table:: 示例表格
   :class: classic
   +---------+--------+--------+
   | head1   | head2  | head3  |
   +=========+========+========+
   |         | cell   | cell   |
   | rowspan +--------+--------+
   |         | * colspan       |
   |         | * another line  |
   +---------+-----------------+
 | 
 | |||||||||||||||||
| ttl | |_. head1 |_. head2 |_. head3 |
|/3. rowspan | cell  | cell |
|\2. colspan |
| cell | cell |
 | 
 | |||||||||||||||||
| asc | [width="50%"]
|============================
|1 |2 |3 |4
|5 2.2+|6 .3+|7
|8
|9 2+|10
|============================
 | 
 | |||||||||||||||||
| org | #+CAPTION: 示例表格
#+LABEL: tblref
   | head1 | head2 | head3 |
   |-------+-------+-------|
   | cell  | cell  | cell  |
   | cell  | cell  | cell  |
 | 
 | |||||||||||||||||
| 其他 | 混用HTML | md | <div style="background:#bbb;">
  HTML块中不能混用 **标记语法**
</div>
 | 输出略。 | |||||||||||||||
| ttl | <div style="background:#bbb;">
  HTML块中可以混用 **标记语法**
</div>
 | 输出略。 | |||||||||||||||||
| 转义 | rst | asc | 反斜线作为转义字符,\
禁止对后面 \*字符* 做语法解析。
 | 反斜线作为转义字符,禁止对后面 *字符* 做语法解析。 | |||||||||||||||
| ttl | 用 notextile 标记的段落不进行语法解析。
notextile. 不进行 *语法解析* 。
 | 用 notextile 标记的段落不进行语法解析。 不进行 *语法解析* 。 | |||||||||||||||||
| 注释 | rst | .. 注释
..
   缩进内容也是注释
 | 无输出。 | ||||||||||||||||
| asc | /////////////////
四个或更多的斜线包围起来的
文字块是注释,被忽略。
/////////////////
 | 无输出。 | |||||||||||||||||
| org | # 行首井号是注释。
  #+ 缩进行首用 ``#+`` 标记为注释。
  #+BEGIN_COMMENT
   块注释
   ...
  #+END_COMMENT
 | 无输出。 | |||||||||||||||||
注解
| [8] | Markdown是在Ruby应用中广泛使用的标记语言,语法简洁并可混用HTML。标准的Markdown语法缺乏如表格等关键特性的支持,虽然不同的解析器都对其语法进行了扩展,但实现各有不同,造成一定的混乱。网址:http://daringfireball.net/projects/markdown/。 | 
| [9] | GitHub使用Redcarpet作为Markdown的解析工具,并添加了额外的语法扩展。网址:http://github.github.com/github-flavored-markdown/。 | 
| [10] | reStructuredText可简写为reST或RST,是在Python中广泛使用的标记语言。reST的语法简洁严谨,本书就是使用Sphinx扩展的reST语法和工具撰写的。网址:http://docutils.sourceforge.net/rst.html。 | 
| [11] | Textile是在Ruby应用中广泛使用的标记语言,例如Redmine就将Textile作为内置的标记语言。网址:http://redcloth.org/textile。 | 
| [12] | RDoc是内嵌于Ruby代码中用于维护软件文档的标记语言。网址:http://rdoc.sourceforge.net/doc/。 | 
| [13] | POD是内嵌于Perl代码中用于维护软件文档的标记语言。网址:http://perldoc.perl.org/perlpod.html。 | 
| [14] | Org-mode是Emacs的一种编辑模式,除文档外还被广泛应用于维护TODO列表、项目计划等。网址:http://orgmode.org/org.html。 | 
| [15] | MediaWiki是著名的维基百科(WikiPedia)所使用的维基语言。网址:http://www.mediawiki.org/wiki/Help:Formatting。 | 
| [16] | 维基的实现有上百种,语法各不相同。Creole试图建立统一的维基语法标准。网址:http://www.wikicreole.org/。 | 
| [17] | DocBook是著名的用于文档撰写的标记语言,采用XML文件格式及大量的面向出版的格式标签,能够实现单一源文件出版(Single-Source Publishing),即一次撰写多种格式输出(Write once, publish many)。但复杂的XML标签给写作过程带来不小的负担。网址:http://www.docbook.org/。 | 
| [18] | AsciiDoc的轻量级标签和DocBook的XML标签语法有着清晰的对应关系,既解决了DocBook语言标签复杂、难读难写的问题,又可利用DocBook丰富的工具链实现单一源文件向多种格式的输出转换。网址:http://www.methods.co.nz/asciidoc。 | 
| [19] | https://github.com/mojombo/god/commit/cea00609ca8441c82bc9760ae5eea7d7509d85b3 | 
| [20] | https://github.com/mojombo/god/issues/1 |