本节内容
一级标题
========
二级标题
--------
三级标题
~~~~~~~~
四级标题
^^^^^^^^
注解
中文占两个字符宽度。标题和标记并不强制要求对齐。
也可以用以下的形式:
====
标题
====
段落不需要特殊标记,有缩进的段落生成的结果也会有缩进。
段落用一个空行隔开,换行只会产生一个空格。
源码:
第一段
换行
第二段
缩进第一段
缩进第二段
结果:
第一段 换行
第二段
缩进第一段
缩进第二段
源码 | 结果 |
---|---|
支持对\ *文字*\ 的\ **强调** | 支持对文字的强调 |
*emphasis* and **strong emphasis** | emphasis and strong emphasis |
注解
中文问题
reStructuredText的特殊标记一般需要两侧是空格或者行首末,英文用空格隔开单词,所以不需要作特殊处理。
而中文则很可能需要两侧添加\空格。
源码 | 结果 |
---|---|
.. image:: images/ball1.gif | |
.. image:: http://www.w3schools.com/images/pulpit.jpg |
注解
路径相对于conf.py所在目录。生成的PDF不支持外链图片。
源码 | 结果 |
---|---|
http://example.com
|
http://example.com |
This is a `link <http://example.com>`_
|
This is a link |
这是一个\ `链接 <http://example.com>`_
|
这是一个链接 |
这也是一个\ `链接`_,\ `另一个链接`_
.. _`链接`: http://example.com
.. _`另一个链接`: http://example2.com
|
这也是一个链接,另一个链接 |
注解
当一段文字里有大量超链接时,推荐使用上面表格里最后一种方式。
.. code-block:: ruby
#!/usr/bin/ruby
...
#!/usr/bin/ruby
class Person
attr_reader :name, :age
def initialize(name, age)
@name, @age = name, age
end
def <=>(person) # Comparison operator for sorting
age <=> person.age
end
def to_s
"#{name} (#{age})"
end
end
# 中文注释
group = [
Person.new("Bob", 33),
Person.new("Chris", 16),
Person.new("Ash", 23)
]
puts group.sort.reverse
.. code-block:: java
// Hello.java
...
// Hello.java
import java.io.*;
import javax.servlet.*;
public class Hello extends GenericServlet {
public void service(final ServletRequest request, final ServletResponse response)
throws ServletException, IOException {
response.setContentType("text/html");
final PrintWriter pw = response.getWriter();
try {
pw.println("Hello, world!");
} finally {
pw.close();
}
}
}
注解
有缩进的都会被认为是代码段,可以用..显式标明代码结束位置:
.. code-block:: java
// Hello.java
...
..
+------------------------+------------+----------+----------+
| Header row, column 1 | Header 2 | Header 3 | Header 4 |
| (header rows optional) | | | |
+========================+============+==========+==========+
| body row 1, column 1 | column 2 | column 3 | column 4 |
+------------------------+------------+----------+----------+
| body row 2 | Cells may span columns. |
+------------------------+------------+---------------------+
| body row 3 | Cells may | - Table cells |
+------------------------+ span rows. | - contain |
| body row 4 | | - body elements. |
+------------------------+------------+---------------------+
Header row, column 1 (header rows optional) | Header 2 | Header 3 | Header 4 |
---|---|---|---|
body row 1, column 1 | column 2 | column 3 | column 4 |
body row 2 | Cells may span columns. | ||
body row 3 | Cells may span rows. |
|
|
body row 4 |
注解
Vim 的rst-tables插件可以辅组表格生成和维护。
默认主题的表格看起来不大对,是因为下面的CSS样式导致的:
table.docutils td, table.docutils th {
border-style: none none solid;
border-width: 0 0 1px;
}
.. list-table:: Frozen Delights!
:widths: 15 10 30
:header-rows: 1
* - Treat
- Quantity
- Description
* - Albatross
- 2.99
- On a stick!
* - Crunchy Frog
- 1.49
- If we took the bones out, it wouldn't be
crunchy, now would it?
* - Gannet Ripple
- 1.99
- On a stick!
Treat | Quantity | Description |
---|---|---|
Albatross | 2.99 | On a stick! |
Crunchy Frog | 1.49 | If we took the bones out, it wouldn’t be crunchy, now would it? |
Gannet Ripple | 1.99 | On a stick! |
.. csv-table:: 表格描述
:header: 中文,表格
:file: table.csv
table.csv:
"测试,测试",测试
测试,测试
中文 | 表格 |
---|---|
测试,测试 | 测试 |
测试 | 测试 |
.. sidebar:: 标题
:subtitle: 副标题
边栏内容
正文内容
正文内容,正文内容,正文内容,正文内容,正文内容,正文内容,正文内容
正文内容
正文内容
正文内容
.. ATTENTION:: ATTENTION
.. CAUTION:: CAUTION
.. DANGER:: DANGER
.. ERROR:: ERROR
.. HINT:: HINT
.. IMPORTANT:: IMPORTANT
.. NOTE:: NOTE
.. TIP:: TIP
.. WARNING:: WARNING
.. admonition:: 自定义箴言
箴言内容
注意
ATTENTION
警告
CAUTION
危险
DANGER
错误
ERROR
提示
HINT
重要
IMPORTANT
注解
NOTE
小技巧
TIP
警告
WARNING
自定义箴言
箴言内容
在index.rst里添加类似下面的内容,生成的HTML及PDF会自动生成目录:
.. toctree::
:numbered:
:maxdepth: 2
setup
usage
demo
章节里用:
.. contents:: 本节内容
:local:
来插入本章节的目录。
标题会自动生成锚点,也可以手工创建:
.. _某章节:
正文
:ref:`引用 <某章节>`
具体查看\ `某章节`_
正文
具体查看某章节
注解
英文标题会生成合理的锚点ID,但中文标题只会生成类似#id2这样的锚点。
如果某一章节需要引用,建议手工创建锚点:
.. _custom_id:
章节标题
========