sphinx.ext.graphviz – 添加 Graphviz 图

0.6 版本新增。

此扩展允许您在文档中嵌入 Graphviz 图。

它添加了这些指令

.. graphviz::

嵌入 graphviz 代码的指令。 dot 的输入代码作为内容给出。例如

.. graphviz::

   digraph foo {
      "bar" -> "baz";
   }

在 HTML 输出中,代码将渲染为 PNG 或 SVG 图像(参见 graphviz_output_format)。在 LaTeX 输出中,代码将渲染为可嵌入的 PDF 文件。

您还可以通过将文件名作为参数传递给 graphviz,并且不带额外内容来嵌入外部 dot 文件

.. graphviz:: external.dot

与 Sphinx 中的所有文件引用一样,如果文件名是绝对路径,则将其视为相对于源目录。

1.1 版中已更改: 增加了对外部文件的支持。

选项

:alt: 替代 文本 (文本)

图的替代文本。默认情况下,图代码用作替代文本。

版本 1.0 新增。

:align: 图的对齐方式 (左、中或右)

图的水平对齐方式。

版本 1.5 新增。

:caption: 图的标题 (文本)

图的标题。

版本 1.1 新增。

:layout: 图的布局类型 (文本)

图的布局(例如 dotneato 等)。也允许使用 graphviz 命令的路径。默认情况下,使用 graphviz_dot

版本 1.4 中新增。

2.2 版中已更改: graphviz_dot 重命名。

:name: 标签 (文本)

图的标签。

版本 1.6 中新增。

:class: 类名 (以空格分隔的类名列表)

图的类名。

2.4 版本新增。

.. graph::

嵌入单个无向图的指令。名称作为指令参数给出,图的内容是指令内容。这是一个方便的指令,用于生成 graph <name> { <content> }

例如

.. graph:: foo

   "bar" -- "baz";

注意

图名称会原样传递给 Graphviz。如果它包含非字母数字字符(例如破折号),则必须用双引号引起来。

选项

graphviz 相同。

:alt: 替代 文本 (文本)

版本 1.0 新增。

:align: 图的对齐方式 (左、中或右)

版本 1.5 新增。

:caption: 图的标题 (文本)

版本 1.1 新增。

:layout: 图的布局类型 (文本)

版本 1.4 中新增。

2.2 版中已更改: graphviz_dot 重命名。

:name: 标签 (文本)

版本 1.6 中新增。

:class: 类名 (以空格分隔的类名列表)

图的类名。

2.4 版本新增。

.. digraph::

嵌入单个有向图的指令。名称作为指令参数给出,图的内容是指令内容。这是一个方便的指令,用于生成 digraph <name> { <content> }

例如

.. digraph:: foo

   "bar" -> "baz" -> "quux";

选项

graphviz 相同。

:alt: 替代 文本 (文本)

版本 1.0 新增。

:align: 图的对齐方式 (左、中或右)

版本 1.5 新增。

:caption: 图的标题 (文本)

版本 1.1 新增。

:layout: 图的布局类型 (文本)

版本 1.4 中新增。

2.2 版中已更改: graphviz_dot 重命名。

:name: 标签 (文本)

版本 1.6 中新增。

:class: 类名 (以空格分隔的类名列表)

图的类名。

2.4 版本新增。

还有这些配置值

graphviz_dot
类型:
str
默认:
'dot'

调用 dot 的命令名称。如果 dot 不在可执行文件搜索路径中,您可能需要将其设置为完整路径。

由于此设置不可从一个系统移植到另一个系统,因此通常不适合在 conf.py 中设置;相反,通过 -D 选项在 sphinx-build 命令行上提供它应该更好,如下所示

sphinx-build -M html -D graphviz_dot=C:\graphviz\bin\dot.exe . _build
graphviz_dot_args
类型:
序列[str]
默认:
()

要传递给 dot 的额外命令行参数,作为一个列表。这是通过 dot 的 -G-N-E 选项设置全局图、节点或边属性的正确位置。

graphviz_output_format
类型:
'png' | 'svg'
默认:
'png'

构建 HTML 文件时 Graphviz 的输出格式。这必须是 'png''svg'。如果使用 'svg',为了使 URL 链接正常工作,必须设置适当的 target 属性,例如 "_top""_blank"。例如,以下图中的链接应该在 svg 输出中有效

.. graphviz::

     digraph example {
         a [label="sphinx", href="https://sphinx-doc.cn/", target="_top"];
         b [label="other"];
         a -> b;
     }

1.0 版中新增: 此前,输出始终为 PNG。