reStructuredText在线编辑器 http://rst.ninjs.org/

ReST是Docutils的标记语法,Docutils是Python世界的文档工具集。也因为这样ReST在Python界中被广泛应用,比如Sphinx–这个基于Docutils的文档工具–事实上作为Python中的标准文档工具被广泛使用了。比如Python官方文档。因为Sphinx可以生成多种格式,

设计思路对比
—————

先来看一下 Markdown ,

官方的说法直截了当, Markdown 就是个 text-to-HTML 的工具。

所以说,从一开始,Markdown 就确立了它与 HTML 的亲缘性。这是 Markdown 的设计立足点。

Markdown 包含两个部分,

1. 文本结构化格式,也就是标记语言

2. 另外与之配套的生成 HTML 的 perl 程序。

作为标记语言, Markdown 的目标很明确,就是为了更简单的写 html 。

相比与 Markdown , reST 显然是经过精心设计的。

reST 的目标是,建立一套标准文本结构化格式用以将文档转化为有用的数据格式。

不得不说的是这句话一点都不 Pythonic ,和政治书上的句子似的。

所以 Pythoner 给出了更具体的阐述:

按重要程度依次罗列:

1. Readable,是可阅读的,reST的原文本必须可以很容易的直接阅读而不需要了解reST的标记语法。

2. Unobtrusive,不突兀的,reST 所使用的标记应该是尽量简单并且不突兀的。越是常用的标记越应该简单和不碍眼的。不太常用的标记,或者是表达特殊意义的标记应该鲜明。

3. Unambiguous,没有歧义的,标记规则是确定的,不能再重载定义,对于给定的一个输入,只有一个可能的输出,包括输出错误。

4. Unsurprising,不出乎预期的,非“魔法”的,标记语言可以不输出不想输出的内容。所以,需要一个方式(标记)作为标记不期望输出标记之用。比如,当你想要向别人展示reST源代码时,你要标记这块reST源码不需要被结构化。

5. Intuitive, 直观的,标签应该尽可能的容易被记住。人们可以在文档中直接使用。

6. Easy,简单,

通过一段时间的使用,我觉得 Markdown 和 reST 都可以说达到了他们的既定目标。

进过一段时间的使用,我觉得 reST 基本达到了预定的目标。

权衡的艺术
~~~~~~~~~~~

通过以上的比较,我们发现, reST 承载的目标要比 Markdown 多很多。最重要的不同就在于 Markdown 只是为了输出 HTML ,而 reST 的目标之一就是可以转化为其他格式。

当然,说权衡是艺术,还不如说其实就是瞎子摸象弄出一些聊以自慰的藉口罢了。

不过从已经获取到的相关信息,我们可以初步做一个判断,用 Markdown 作为中心书写工具(一般是配合 Pandoc )相对于使用 reST 做中心书写工具是不佳的。何况,又引入了新的工具( Pandoc )和语言( Haskell ),这都是非必要的正熵,背离了 KISS 原则。

说了这么多其实就一句话:

我们选择标记语言实际上是在表意与简便之间做权衡,我们的理想目标是即表意丰富又使用简便。

但是,这个世界上鱼和熊掌得兼的事情不多,往往我们只能根据自己的需要去寻找一个最优平衡点来决策。

转自:http://ieqi.net/2012/04/13/markdown-%E8%BF%98%E6%98%AF-restructuredtext/

两者对比:

https://github.com/windfire-cd/note/blob/master/rst_mkd/rst_mkd.rst

ReSt文档标题:

========
文档标题
======== ----------
文档副标题
----------
文档标题和副标题通常用在封面页

章节

Section Header
==============
Subsection Header
----------------- three sub 三级标题
``````````````
这些是文档各节(section)的标题,文档的目录根据这些标题生成。

标题
可以使用字母数字以外的可打印ACSII字符,官方推荐的是以下字符:

Recommended choices are
"``= - ` : ' " ~ ^ _ * + # < >``"
标题前后的符号数目必须大于等于标题的长度

段落
段落的格式:

段落不需要特殊标记,用空行来分割,
段落内的换行是被忽略的,因此源文件
可以很好地控制一行的长度。

这是一段。

这是第二段。

段落可以缩进,通常用来表达引用的文字。

行内标记
用来实现斜体、粗体、引用、脚注、引用等等:

*斜体*, **粗体**, hyperlink_, 脚注 [3]_

.. [3] 脚注的正文
.. _hyperlink: http://jerrypeng.me
还有更多其他标记,请参考文档

. 数字和点开始有序列表。

   . 注意子列表的缩进位置。

      . 三级列表。
. 编号会自动更正。 . 二级列表,编号自动更正为2。 . 返回一级列表。

列表中,相同的层级使用相同的缩进。

列表中同一层级不需要空行分隔。不同层级起始处必须有空行

独立链接 ,自动将网址转换为链接。

例如 http://www.ubuntu.org.cn/

http://www.ubuntu.org.cn/
 

命名链接 ,为链接命名,有助记忆和减少空间占用。

在正文中使用 <链接名>_ ,注释中使用 _<链接名>: [链接目标]

例如 Ubuntu

Ubuntu_

.. _Ubuntu:  http://www.ubuntu.org.cn/

表格
表格的格式:

+------------+------------+-----------+
| Header | Header | Header |
+============+============+===========+
| body row | column | column |
+------------+------------+-----------+
| body row | Cells may span columns.|
+------------+------------+-----------+
| body row | Cells may | - Cells |
+------------+ span rows. | - contain |
| body row | | - blocks. |
+------------+------------+-----------+

简单表格的格式:

=====  =====  ======
Inputs Output
------------ ------
A B A or B
===== ===== ======
False False False
True False True
False True True
True True True
===== ===== ======

指令(Directives)
指令是基本的标记之外的扩展机制

有一组标准的指令
目录
图片,内嵌代码
公式
标准指令大全 [4]
不同的工具可以实现自己独特的指令以实现高级功能

[4] http://docutils.sourceforge.net/docs/ref/rst/directives.html

  • 指令的格式如下:

    .. directive_type:: directive
    block

嵌入图片:

.. image:: funny.gif
:height: 100px
:width: 100px
:alt: funny cat picture
:align: center

嵌入代码:

.. code:: python

    def say_hello():
print 'Hello, ReST' if __name__ == '__main__':
say_hello()

docutils-0.9才开始支持,无法演示了……

sphinx和rst2pdf支持code-block这个指令
用法和上面的一致,把code改成code-block即可。

sphinx对嵌入程序代码的支持很好(本来就是为了编写python文档而开发的工具)。

在段落的结尾添加符号 :: ,则表明下面的段落为代码段落。代码段落相对之前的段落要缩进一次。

普通文本段落,下一段是代码段落::

    缩进结束前
代码段落不会被处理 普通文本段落

文本

只要没有空行,不管换多少次行,都会处理为一行。 建议您将每行的内容控制在50个汉字或者100个字母之内, 尽量在标点符号处手动换行,以增加源文件的可读性。

上面的例子转自可爱的rst:
http://wiki.jerrypeng.me/rest-tjlug/ http://www.worldhello.net/gotgithub/appendix/markups.html
http://jwch.sdut.edu.cn/book/tool/UseSphinx.html

Markdown和reStructuredText语法比较的更多相关文章

  1. MarkDown的常用语法

    个人比较喜欢Markdown的语法,常用来做一些笔记,下面就简单介绍一下它的语法. 概览 宗旨 Markdown 的目标是实现「易读易写」. 可读性,无论如何,都是最重要的.一份使用 Markdown ...

  2. Cmd Markdown编辑器简明语法手册

    标签: Cmd-Markdown 1. 斜体和粗体 使用 * 和 ** 表示斜体和粗体. 示例: 这是 斜体,这是 粗体. 2. 分级标题 使用 === 表示一级标题,使用 --- 表示二级标题. 示 ...

  3. Cmd Markdown 高阶语法手册

    『Cmd 技术渲染的沙箱页面,点击此处编写自己的文档』 Cmd Markdown 高阶语法手册 1. 内容目录 在段落中填写 [TOC] 以显示全文内容的目录结构. [TOC] 2. 标签分类 在编辑 ...

  4. 初识markdown以及markdown的常用语法

      一直都听说markdown可以写作变得更加方便,但是总没有去了解一下,今天下载了一个markdown编辑器,感受了一下markdown的魅力,发现对于程序员写博客之类的,markdown带来了很大 ...

  5. markdown的使用语法的补充

    markdown的使用语法的补充 markdown的语法在网络上有很多,例如简书的教程这个是参考简书上的教程 但是有几个语法需要记住. 添加图片,如果要添加图片,他的语法格式是首先一个感叹号!然后[] ...

  6. Markdown github 风格语法

    某些效果cnblog无法支持,见 https://github.com/tanghammer/note/blob/master/Markdown%20github%E9%A3%8E%E6%A0%BC% ...

  7. Linux系统里让vim支持markdown格式的语法高亮

    Markdown是深受程序员喜爱的一个文件格式. 然而Linux里默认的vim设置,并不支持markdown格式的语法高亮显示. 下面就来介绍如何设置使得markdown格式的文件在vim里也能享有语 ...

  8. markdown插入表格语法

    markdown插入表格语法 举例 如表格标题为,姓名,班级,成绩 标题内的内容为,yang,a班,100 我们要在markdow文件中插入表格 如 姓名|班级|成绩 -|-|- yang|a班|10 ...

  9. [Markdown] 03 进阶语法 第一弹

    目录 1. YMAL 题头 2. 缩写 3. 强调 4. 自定义 <div> 标签 5. <cite> 标签 5. <code> 与 <br> 标签 6 ...

随机推荐

  1. mysql 更新有外键约束的字段

    给一个表的字段更新,发现 这个字段是外键,刚开始用了笨 的方法,取消外键,修改后,在添加, 网上百度了. 这样设置 先 关闭外键约束 SET FOREIGN_KEY_CHECKS=0; 执行完了 打开 ...

  2. ZOJ 1301 The New Villa (BFS + 状态压缩)

    题意:黑先生新买了一栋别墅,可是里面的电灯线路的连接是很混乱的(每个房间的开关可能控制其他房间,房间数<=10),有一天晚上他回家时发现所有的灯(除了他出发的房间)都是关闭的,而他想回卧室去休息 ...

  3. 开发Mhealth(即:Mobile Health 移动医疗)应用必知的10个掘金点

    近 日,著名移动技术咨询公司Research2Guidance发布了最新版的<移动医疗应用开发者经济>报告.在过去的两年半里,iOS和Android 两大主流移动平台上的移动医疗应用(以下 ...

  4. 专业DBA 遇到的问题集

    http://blog.csdn.net/mchdba/article/category/1596355/3

  5. Linux后台开发面试问题汇总

    个人从事安全后台开发,当然是linux环境下的了.举几个常见的问题.1. 数据结构基础.比如实现一个最简单的哈希表.2. 操作系统基础.linux进程模型,堆/栈的区别,大概的位置,各往哪个方向生长, ...

  6. yii 载入css or js

    Yii::app()->clientScript->registerScriptFile(Yii::app()->baseUrl . "/js/TableView.js&q ...

  7. lvs+heartbeat搭建负载均衡高可用集群

    [172.25.48.1]vm1.example.com [172.25.48.4]vm4.example.com 集群依赖软件:

  8. Ouath协议

    OAuth是一个开放协议,允许用户让第三方应用以安全且标准的方式获取该用户在某一网站.移动或桌面应用上存储的私密的资源(如用户个人信息.照片.视频.联系人列表),而无需将用户名和密码提供给第三方应用. ...

  9. RESTful Web Services简单介绍

    近几年,RESTful Web Services渐渐开始流行,大量用于解决异构系统间的通信问题.很多网站和应用提供的API,都是基于RESTful风格的Web Services,比较著名的包括Twit ...

  10. c - 字符串的反转

    1,递归实现 // 递归实现字符串反转(可通过栈的调用来加深理解). char * reverse(char *c) { if(!c) return NULL; int len = strlen(c) ...