sphinx(3)RST语法

Sphinx(3)RST语法

Author:Once Day Date:2025年11月21日

漫漫长路,才刚刚开始...

全系列文章请查看专栏: CS小白之路_Once-Day的博客-CSDN博客

参考文档:

文章目录

      • Sphinx(3)RST语法
        • [1. 介绍](#1. 介绍)
        • [2. 语法](#2. 语法)
          • [2.1 标题与章节标记](#2.1 标题与章节标记)
          • [2.2 段落](#2.2 段落)
          • [2.3 无序列表](#2.3 无序列表)
          • [2.4 有序列表](#2.4 有序列表)
          • [2.5 定义列表](#2.5 定义列表)
          • [2.6 字段列表](#2.6 字段列表)
          • [2.7 参数(选项)列表](#2.7 参数(选项)列表)
          • [2.8 文字块(Literal Blocks)](#2.8 文字块(Literal Blocks))
          • [2.9 行块 Line Blocks](#2.9 行块 Line Blocks)
          • [2.10 块引用 Block Quotes](#2.10 块引用 Block Quotes)
          • [2.11 文档测试块](#2.11 文档测试块)
          • [2.12 网格表格](#2.12 网格表格)
          • [2.13 简单表格](#2.13 简单表格)
          • [2.14 分隔符](#2.14 分隔符)
          • [2.15 脚注 Footnotes](#2.15 脚注 Footnotes)
          • [2.16 引用 Citations](#2.16 引用 Citations)
          • [2.17 超链接 Hyperlink Targets](#2.17 超链接 Hyperlink Targets)
          • [2.18 内联标记 Inline Markup](#2.18 内联标记 Inline Markup)
          • [2.19 反斜杠转义 Escaping with Backslashes](#2.19 反斜杠转义 Escaping with Backslashes)
        • [3. 扩展指令 Directives](#3. 扩展指令 Directives)
          • [3.1 警告信息Admonitions](#3.1 警告信息Admonitions)
          • [3.2 图片Images](#3.2 图片Images)
1. 介绍

reStructuredText(简称RST)是一种轻量级标记语言,专为技术文档设计。它于2002年由David Goodger创建,作为Python文档系统的一部分,后来成为Docutils项目的基础。

RST的出现源于技术文档领域对简单且可读性强的标记语言的需求。在RST出现之前,HTML过于复杂,而纯文本又缺乏足够的表现力。Goodger设计RST时,特别注重了"所见即所得"的理念------即使在原始文本状态下,RST文档也应该清晰易读。

Python社区对RST的采纳使其迅速流行。它成为Python官方文档系统Sphinx的默认格式,这大大促进了RST的传播。随后,许多其他项目也采用了RST作为文档格式,包括多个开源项目和企业文档系统。

RST的设计理念强调简洁性、可读性和扩展性。它提供了基本的格式化功能,如标题、列表、表格和引用,同时也支持更高级的功能,如交叉引用、图像嵌入和代码块。虽然与Markdown相比可能学习曲线稍陡,但RST在复杂文档结构和技术文档方面提供了更强的表现力。

2. 语法
2.1 标题与章节标记

RST使用下划线和可选的上划线来标记标题。任意可打印的7位ASCII字符都可以作为章节标识符,包括:

rst 复制代码
! " # $ % & ' ( ) * + , - . / : ; < = > ? @ [ \ ] ^ _ ` { | } ~

不过推荐使用以下字符:

rst 复制代码
= - ` : . ' " ~ ^ _ * + #

RST中未明确规定各个章节标识符的层级顺序,它按照标识符在文档中首次出现的顺序来确定层级。可以选择在标题上下各使用一行标识符,或只在标题下使用一行标识符,效果相同。标识符的数量必须至少与标题文本等长。

建议的标题层级定义(从高到低):

rst 复制代码
一级标题
==========

二级标题
----------

三级标题
,,,,,,,,,

四级标题
............

五级标题
*************
2.2 段落

在 RST 文档中,段落是文档的基本构建块:

  • 段落是左对齐的文本块,没有特殊的标记或格式
  • 段落之间必须用空行分隔,这是 RST 识别不同段落的方式
  • 如果一个段落相对于周围内容缩进(如缩进4个空格),RST 会将其解析为"引用段落"(quote paragraph),这种段落在显示时会有特殊的样式

引用段落通常用于引用他人的话或想要强调的内容,在最终渲染的文档中会有不同的视觉效果,比如可能会有缩进或不同的背景色。

2.3 无序列表

reStructuredText 的无序列表语法与 Markdown 相似,主要使用 +, -, * 作为列表标识符,通过缩进表示嵌套关系。

无序列表的语法规则:

  1. 列表的起始和结束前后需要空行。
  2. 同级列表项之间空行可加可不加。
  3. 不同层级的列表项之间必须加空行。
  4. 列表项中如有多段内容,后续段落不需要重复列表标识符,只需保持相同缩进。
  5. 可以混用不同的标识符,但建议同级使用相同符号,推荐层级顺序为 +, -, *
rst 复制代码
+ 一级列表第一项
+ 一级列表第二项

  - 二级列表,换层级加空行

    二级列表的第二段内容,加空行,缩进对齐

  + 依然是二级列表,指示标识符可以混用,但不推荐

    * 第三级

渲染效果:

  • 一级列表第一项

  • 一级列表第二项

    • 二级列表,换层级加空行

      二级列表的第二段内容,加空行,缩进对齐

    • 依然是二级列表,指示标识符可以混用,但不推荐

      • 第三级
2.4 有序列表

有序列表,也称为枚举列表或顺序列表(ordered-list),允许使用不同类型的序号来标记列表项。

RST 支持以下几种枚举指示符:

  • 阿拉伯数字: 1, 2, 3, ... (无上限)。
  • 大写字母: A, B, C, ... Z。
  • 小写字母: a, b, c, ... z。
  • 大写罗马数字: I, II, III, IV, ... MMMMCMXCIX (4999)。
  • 小写罗马数字: i, ii, iii, iv, ... mmmmcmxcix (4999)。

每种枚举类型可以使用不同的前缀和后缀:

  • 点号后缀: "1.", "A.", "a.", "I.", "i."。
  • 圆括号包围: "(1)", "(A)", "(a)", "(I)", "(i)"。
  • 右括号后缀: "1)", "A)", "a)", "I)", "i)"。

可以使用 # 符号实现自动编号,系统会自动递增序号。

当普通文本以可能被识别为列表的形式开头时,可以采取以下措施避免被解析为列表:

  1. 将一行内容拆分为多行(会被识别为段落而非列表)。
  2. 使用反斜杠 \ 在段首进行转义。

避免列表识别的例子

css 复制代码
A. Einstein was a really
smart dude. (跨行避免)

A. Einstein was a really smart dude.(未避免)

\A. Einstein was a really smart dude.(使用\转义)

效果

  • "A. Einstein was a really smart dude." (正常文本)
  • " A. Einstein was a really smart dude." (被识别为列表,A 成为了列表编号)
  • "A. Einstein was a really smart dude." (使用转义后正常显示)

有序列表也支持嵌套,规则与无序列表一致:

apache 复制代码
1. Item 1 initial text.

   a) Item 1a.
   b) Item 1b.

#. a) Item 2a.使用#号自增
   b) Item 2b.

效果

  1. Item 1 initial text.
    a) Item 1a.
    b) Item 1b.
  2. a) Item 2a.使用#号自增
    b) Item 2b.

注意:不同级别之间需要空行,同级别列表项之间空行可加可不加。后续段落需保持与列表标识符相同的缩进级别。

2.5 定义列表

定义列表可以理解为解释列表或名词解释,用于提供术语及其定义。在 reStructuredText 中,这种列表有特定的格式和结构。

每个定义列表项由三个部分组成:

  1. 条目名称 (term) - 要定义的名词或短语。
  2. 条目属性 (classifier) - 可选,对条目的分类说明。
  3. 条目定义 (definition) - 对条目的解释或定义。

格式规则:

  • 条目名称单独占一行。
  • 条目属性与条目名称在同一行,通过空格、冒号、空格 " : " 连接。
  • 一个条目可以有多个属性,各属性之间也用 " : " 连接。
  • 条目定义必须另起一行,并有缩进。
  • 定义可以包含多个段落,保持相同缩进即可。
  • 多层定义可以通过不同级别的缩进实现。

示例代码:

rst 复制代码
term 1
  Definition 1.

term 2
    Definition 2, paragraph 1.

    Definition 2, paragraph 2.

term 3 : classifier
    Definition 3.

term 4 : classifier one : classifier two
    Definition 4.

渲染效果:

term 1

Definition 1.

term 2

​ Definition 2, paragraph 1.

​ Definition 2, paragraph 2.

term 3 : classifier

​ Definition 3.

term 4 : classifier one : classifier two

​ Definition 4.

定义列表特别适合用于:

  • 术语表和词汇解释
  • 参数说明文档
  • API 文档中的参数详解
  • 任何需要名词解释的场景

定义列表的灵活性使其成为技术文档中非常有用的一种结构,尤其是在需要详细解释概念的情况下。

2.6 字段列表

字段列表在 reStructuredText 中是一种特殊的列表格式,主要用于指令解释或数据库字段(记录)解释的场景。它的呈现形式类似于两列表格,使其特别适合于展示属性和值的对应关系。

字段列表的特点:

  • 格式像两列表格,左侧为字段名,右侧为字段值。
  • 字段名以冒号开始和结束 :fieldname:
  • 字段体(field body)具有与表格单元格相似的功能。
  • 支持嵌套和跨行等复杂结构。

格式规则:

  1. 字段名必须以冒号开始和结束。
  2. 字段名可以是短语(phrase),即可以包含空格,但不能包含冒号 :
  3. 字段体可以在同一行,也可以缩进到下一行。
  4. 如果字段体跨多行,第一行后的所有行必须保持相同缩进。
  5. 字段体的第二行不必与第一行左对齐,但后续行必须与第二行对齐。

示例代码:

rst 复制代码
:Date: 2020-02-02
:Version: 1
:Authors: - fire
          - firewang
          - firewang
:Indentation: Since the field marker may be quite long, the second
   and subsequent lines of the field body do not have to line up with first line.
   解释可能很长,第二行不用和第一行对齐,但是后续行必须和第二行对齐。
:Parameter i: field name可以是phrase,即可以带空格,但是不能带":"

效果如下:

2.7 参数(选项)列表

参数列表是 reStructuredText 中一种特殊的双栏列表格式,专门用于展示命令行参数及其说明。这种格式在技术文档、命令行工具的帮助文档中特别常见。

参数列表的特点:

  • 左列为参数名称,右列为参数说明
  • 没有表头,直接展示参数和说明
  • 专为命令行参数设计的格式化结构
  • 支持多种常见的命令行参数格式

参数列表支持三种主要的参数书写形式:

  1. POSIX 短格式 :由一个短横线连接,如 -a
  2. POSIX 长格式 :由两个短横线连接,如 --long
  3. DOS/VMS 格式 :由斜杠开始的格式,如 /V

格式规则:

  • 参数和说明间用空白分隔
  • 参数可以包含参数值,如 -b file--input=file
  • 说明文本可以跨多行,需要保持缩进对齐
  • 每个参数项独占一行

示例代码:

rst 复制代码
-a            command-line option "a"
-b file       options can have arguments
              and long descriptions
--long        options can be long also
--input=file  long options can also have
              arguments
/V            DOS/VMS-style options too

效果如下:

2.8 文字块(Literal Blocks)

文字块是 reStructuredText 中用于呈现预格式化文本的方式,常用于代码片段、命令输出等需要保持原始格式的内容。文字块中的文本会按原样显示,保留空格、换行等格式。

文字块的特点:

  • 使用连续两个冒号 :: 作为指示符。
  • 文字块中的文本会按原样显示,保留所有空格和换行。
  • 适合展示代码、配置文件等预格式化内容。
  • 支持嵌套结构。

文字块的三种语法形式:

(1)完整形式:

起始行为双冒号,后接空行,块内容需要缩进:

rst 复制代码
::

  缩进后填写块内容

(2)部分简化形式:

前文带一个冒号,加一个空格后,双冒号接在前文后面:

rst 复制代码
这里是前面内容,下面引用: ::

  缩进后填写块内容

(3)完全简化形式:

双冒号直接接在前文后面,显示时转换为单冒号:

rst 复制代码
这里是前面内容,下面引用::

> 在(部分/完全)简化形势下支持单行引用形式的嵌套
> 再来一个单行引用

效果如下:

2.9 行块 Line Blocks

行块是 reStructuredText 中一种特殊的文本格式,专门用于保留文本的行结构,同时仍然允许使用RST的文本格式化特性。这与文字块不同,文字块完全按原样显示,而行块在保留行结构的同时允许文本格式化。

行块的特点:

  • 使用竖线符号 | 作为每行的开始标记。
  • 保留文本的行结构和换行。
  • 允许在行内使用RST的文本格式化(如粗体、斜体等)。
  • 行内的空格也会被保留。

行块的语法:

每个行块的行都以竖线符号 | 开始,后面跟一个空格,然后是行内容:

rst 复制代码
| 行块使用 | 指示符,
| 一般用于描述地址,歌
  词,诗歌,简单列表等。

格式规则:

  • 每行以竖线符号 | 开始。
  • 通常在竖线后跟一个空格(不是必须的,但建议使用)。
  • 行的延续可以通过在下一行开始处缩进来实现(如示例中的第三行)。
  • 行内空格会被保留。
  • 空行用单独的 | 表示。

效果如下:

yacas 复制代码
行块使用 | 指示符,
一般用于描述地址,歌
词,诗歌,简单列表等。
2.10 块引用 Block Quotes

块引用是 reStructuredText 中通过缩进来实现的文本格式,用于引用他人的话语或其他来源的内容。它与普通段落不同,通过缩进来视觉上区分引用内容。

块引用的特点:

  • 通过缩进来实现,无需特殊标记符。
  • 可以添加出处(attribution)。
  • 可以包含多个段落。
  • 多个块引用可以通过空注释分隔。

格式规则:

  1. 块引用通过缩进实现,引用内容相对于前面的段落要有缩进。
  2. 引用出处在引用内容之后,以两个或三个连续短横线("--"或"---")开始。
  3. 引用内容和出处之间需要添加空行。
  4. 多个块引用之间可以用空注释 .. 分隔。
  5. 在新的块和出处前都要添加一个空行。

当需要连续使用多个块引用时,可以使用空注释 .. 来分隔它们,确保它们被识别为独立的块引用。

基本结构是在普通段落的基础上增加缩进(通常是4个空格):

rst 复制代码
"真的猛士,敢于直面惨淡的人生,敢于正视淋漓的鲜血。"

    --- 鲁迅

..

    "人生的意志和劳动将创造奇迹般的奇迹。"

    -- 涅克拉索

实际效果:

2.11 文档测试块

文档测试块是交互式的Python会话,以 >>> 开始,一个空行结束,是一种特殊的文字块,内容不需要缩进

可直接复制到python的 docstrings中,用于为doctest模块提供测试环境。

当文字块语法和文档测试块语法同时出现时,文字块语法优先级更高。

rst 复制代码
>>> print('this is a Doctest block')
this is a Doctest block
2.12 网格表格

格式规则:

  • "-" 分隔行(短破折号,减号)
  • "=" 分隔表头和表体行
  • "|" 分隔列
  • "+" 表示行和列相交的节点

网格表格注意点

  • 网格表格编辑复杂,可以使用Emacs来编辑生成。
  • 行和列都支持并格。
  • 如果文本内包含"|" ,并且恰好与表格内分隔对齐了,那么会产生错误。方法一是加空格避免对齐,方法二是为该行增加一行。
  • 可以不包含表头。
  • 列需要和"="左对齐,不然可能会导致出错。
  • 如果碰到第一列为空,需要使用 "" 来转义, 不然会被视为是上一行的延续。

示例:

rst 复制代码
+------------------------+------------+----------+----------+
| 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.    |
+------------------------+------------+---------------------+

实际效果:

2.13 简单表格

简单表格使用 =_ 来进行绘制,其中=放置于表格的最外两行(首行和末行),如果有表头,则表头也用该符号进行分隔,_用于跨列合并(column span)。

简单表格需要各列首字母与该列指示的=对齐(表头可不对齐,为了保持统一,尽量保持左对齐),每列的=需要覆盖该列字符的长度

包含表头的简单表格:

rst 复制代码
=====  =====  =======
A      B      A and B
=====  =====  =======
False  False  False
True   False  False
False  True   False
True   True   True
=====  =====  =======

效果如下:

A B A and B
False False False
True False False
False True False
True True True

无表头的简单表格:

rst 复制代码
=====  =====  =======
False  False  False
True   False  False
False  True   False
True   True   True
=====  =====  =======

效果如下:

False False False
True False False
False True False
True True True

跨列合并:_用于跨列合并,仅支持在表头使用_长度需要从起始列的第一个指示符=到终止列的最后一个指示符=

rst 复制代码
=====  =====  ======
合并两列      单独列
------------  ------
  A      B    A or B
=====  =====  ======
False  False  False
True   False  True
False  True   True
True   True   True
=====  =====  ======

效果如下:

单个表格中可以多行:

  • 简单表格的单个格子中可以包含多行的内容(比如列表),但是不支持行合并;
  • 增加空行可以进行换行,否则会自动将文本连接在一起。
  • 首列不能为空,为空时使用 \ 进行占位。
rst 复制代码
=====  ===================================
col 1  col 2
=====  ===================================
1      Second column of row 1.
2      Second column of row 2.
       Second line of paragraph.
3      - Second column of row 3.

       - Second item in bullet
         list (row 3, column 2).
\      Row 4; column 1 will be empty.
=====  ===================================

效果如下:

2.14 分隔符

转换分隔用于段与段之间的分隔,相当于html中的hr,就是跨屏的一个横线。

使用4个及以上的标点符号(推荐使用短横 "-")就可以生成,同样需要前后空行,另外,不能连续出现 ,不能在文档结尾使用。

rst 复制代码
前后需要空行

,,,,,,,,

使用标点符号

.............

不能连续出现

---------------

不能在结尾使用

效果如下:

2.15 脚注 Footnotes

脚注有三种形式, 手工序号(标记序号123之类)、自动序号(填入 # 号会自动填充序号)、自动符号(填入 * 会自动生成符号)

手工序号可以和 # 结合使用,会自动延续手工的序号。

#表示的方法可以在后面加上一个名称,这个名称就会生成一个链接。

(1)手工标序(标记序号123之类):

rst 复制代码
Footnote references, like [5]_.
Note that footnotes may get [3]_
rearranged, e.g., to the bottom of
the "page".

.. [5] A numerical footnote. Note
   there's no colon after the ].
.. [3] 脚注3

效果如下:

(2)自动序号(填入 # 号会自动填充序号):

rst 复制代码
自动排序脚注, like using [#]_ and [#]_.
.. [#] This is the first one.
.. [#] This is the second one.

效果如下:

可以添加别名,即可同时实现自动排序,又带有自定义名称,这个功能相当于实现了文献引用功能

rst 复制代码
They may be assigned 'autonumber
labels' - for instance,
[#fourth]_ and [#third]_.

.. [#third] a.k.a. third_

.. [#fourth] a.k.a. fourth_

效果如下:

(3)自动符号(填入 * 会自动生成符号):

自动填符号功能上和自动填序号是一样的,只是换了一种辨识符号。

rst 复制代码
自动脚注符号, like this: [*]_ ,[*]_ , [*]_ and [*]_.

.. [*] This is the first one.
.. [*] This is the second one.
.. [*] This is the third one.
.. [*] This is the fourth one.

效果如下:

2.16 引用 Citations

引用和脚注是一样的,只不过引用只能用文本而不能用数字。

rst 复制代码
引用参考的内容通常放在页面结尾处,比如 [One]_,Two_

.. [One] 参考引用一
.. [Two] 参考引用二

效果如下:

超链接 Hyperlink 有三种:

  • 带别名的超链接 ,语法为 .. _hyperlink-name: link-address ;由 ..,空格,短下划线_,别名,冒号,空格和链接地址构成。 在原文引用处书写语法为 hyperlink-name_ (特别注意原文中_在别名后,而在指示链接出,_在别名前)。
  • 匿名anonymous的超链接,即不带别名的超链接,语法为 .. __: link-address ; 由 ..,空格,两个短下划线__,冒号,空格和链接地址构成。
  • 匿名的超链接,另一种语法形式,语法为 __ link-address

外部链接 External Hyperlink Targets有两种方式,需要引用的话,使用上述带别名的超链接的语法形式,即:

yacas 复制代码
这是我的 reStructureText_ 实践笔记。

.. _reStructureText: https://sphinx-practise.readthedocs.io/zh_CN/latest/index.html

另一种是直接在名称后附加地址, 语法为 ``别名 <链接>_

rst 复制代码
这是我的 `reStructureText <https://sphinx-practise.readthedocs.io/zh_CN/latest/index.html>`_ 实践笔记。

锚点链接 Internal Hyperlink Targets,内部超链接,即锚点。锚点的语法即外部超链接中带别名的超链接去除外部链接,其他语法一致。

间接链接 Indirect Hyperlink Targets,间接超链接是基于匿名链接的基础上的,就是将匿名链接地址换成了外部引用名。

yacas 复制代码
Python_ is `my favourite
programming language`__.

.. _Python: http://www.python.org/

__ Python_

其中 python_ 就是一个正常的外部链接,而后面那句话是一个匿名链接, 对这个匿名链接使用间接链接方式链接到 Python这个外部链接的链接地址上去。

效果如下:

隐式超链接 Implicit Hyperlink Targets,小节标题、脚注和引用参考会自动生成超链接地址,使用小节标题、脚注或引用参考名称作为超链接名称就可以生成隐式链接。本质上它们的写法都是和 外部链接 External Hyperlink Targets 相一致的, 只是做了一些微小改动,以做出区别。

例如链接到超链接Hyperlink Targets这个章节目录去

yacas 复制代码
`超链接Hyperlink Targets`_
2.18 内联标记 Inline Markup
2.19 反斜杠转义 Escaping with Backslashes

使用反斜杠来转义任意rst语法符号为符号本身,包括反斜杠自己

  • 转义内联标记: \*去除斜体*
  • 转义反斜杠(用两个反斜杠): \\
3. 扩展指令 Directives

指令(Directives)是reStructureText的扩展机制。 可以在不增加新语法的情况下,增加新的结构性支持(a way of adding support for new constructs)。

指令由三部分组成:

yacas 复制代码
.. directive-type:: directive-block

其中指令类型(directive-type)指明指令的类型,指令内容体又由三部分组成:

  • 指令作用对象Directive arguments:指明该指令针对哪个对象作用。
  • 指令选项参数Directive options:该指令的可选参数(可选),是一个参数列表。
  • 指令内容说明Directive content:说明文档(可选)。

比如插入一个图片:

yacas 复制代码
.. figure:: 图片名.png  # 这里是指令作用对象
   :scale: 50     # 这里是指令参数
   :width: 100

   这是一个图片   # 这里是说明
3.1 警告信息Admonitions

特定的警告信息,格式为:

rst 复制代码
.. admonition:: admonition-title(可空)
   :class: class-name(可选)
       :name: name(可选)
   admonition-content说明信息

admonition-title和admonition-content显示效果是一体的, 但是admonition-title(可空)会在html中单独存在一个title标签中。

支持如下特定警告信息:attention,caution,danger,error,hint,important,note,tip,warning。

示例如下:

rst 复制代码
.. attention:: This is a attention admonition.
   second attention paragraph.

.. caution:: This is a caution admonition.
   second caution paragraph.

.. danger:: This is a danger admonition.
   second danger paragraph.

.. error:: This is a error admonition.
   second error paragraph.

.. hint:: This is a hint admonition.
   second hint paragraph.

.. important:: This is a important admonition.
   second important paragraph.

.. note:: This is a note admonition.
   This is the second line of the first paragraph.

   - The note contains all indented body elements
     following.
   - It includes this bullet list.

.. tip:: This is a tip admonition.
   second tip paragraph.

.. warning:: This is a warning admonition.
   second warning paragraph.

通用警告信息Generic Admonition:通用警告信息即不指定为特定的警告类别,使用admonition指代警告。 与特定警告不同的是,特定警告的admonition-title在通用警告中为admonition-name, 这是我们自定义的警告名,用于和特定警告(danger,hint,important等)提供同等标识。

rst 复制代码
.. admonition:: And, by the way...

   You can make up your own admonition too.
3.2 图片Images

使用image:

rst 复制代码
.. image:: picture.jpeg
   :class: class-name
       :name: name
   :height: 100 px(长度)
   :width: 200 px (长度或者百分比)
   :scale: 50 % (百分比,百分号可省略)
   :alt: alternate text
   :align: right
       :target: https://www.baidu.com
  • align可选top,middle,bottom,left,center,right。

  • target使得图片可点击跳转。

  • scale表示等比例伸缩(放大或者缩小)。

  • scale需要和width或者height(或者2者)一起使用。

使用figure:

rst 复制代码
.. figure:: picture.png
   :figwidth: 200 px (长度或者百分比)
   :scale: 50 %
       :align: center
       :figclass: figure-class
   :alt: map to buried treasure

    +---------------------------+
    |        figure             |
    |                           |
    |<------ figwidth --------->|
    |                           |
    |  +---------------------+  |
    |  |     image           |  |
    |  |                     |  |
    |  |<--- width --------->|  |
    |  +---------------------+  |
    |                           |
    |The figure's caption should|
    |wrap at this width.        |
    +---------------------------+

figure相当于一个画布(类似于html中的一个div或者一个canvas), 它对处于其内的内容进行样式统一管理。相比image可以包含除图片外的更多内容。

figure支持image的所有指令选项参数,除了align在figure中指示整个画布的对齐方式。 且它只能选择为left,center,right。

和image一致,要使得scale(这里是对整个画布作用)起作用需要和figwidth一起使用。

相关推荐
闲人编程8 天前
【指南】为你的开源Python项目编写完善的文档(Sphinx)
python·开源·文档·sphinx·算法改进·codecapsule
张小鸟菜菜1 个月前
Java核心技术掌握多线程编程的最佳实践与性能优化
sphinx
起个破名想半天了2 个月前
解决 PocketSphinx 中文模型缺失导致的无法实现语音识别
语音识别·sphinx
夏天是冰红茶5 个月前
Sphinx和ReadtheDocs构建一个文档网站
搜索引擎·全文检索·sphinx
船长@Quant7 个月前
文档构建:Sphinx全面使用指南 — 实战篇
python·markdown·sphinx·文档构建
船长@Quant7 个月前
文档构建:Sphinx全面使用指南 — 基础篇
python·markdown·sphinx·文档构建
船长@Quant7 个月前
文档构建:Sphinx全面使用指南 — 进阶篇
python·markdown·sphinx·文档构建
轻口味1 年前
使用sphinx自动提取python中的注释成为接口文档
开发语言·python·sphinx
林戈的IT生涯1 年前
php连接sphinx的长连接事宜以及sphinx的排除查询以及关于sphinx里使用SetSelect进行复杂的条件过滤或复杂查询
php·sphinx·长连接事宜·sphinx排除查询·sphinx条件过滤·sphinx复杂查询