Python sphinx 如何在指令的节点中添加rst格式?

Python sphinx 如何在指令的节点中添加rst格式?,python-sphinx,restructuredtext,docutils,Python Sphinx,Restructuredtext,Docutils,如何在节点中使用rst?例如,我想输出iclude文件about.rst class Foo(指令): def运行(自): 返回[ nodes.Text(“**adad**”),#添加内容格式为rst语法的文本节点没有帮助。您需要创建rst节点对象以构建所需的rst元素树。此外,由于您试图在示例中包含另一个rst文件,您需要使用嵌套解析,因为实际内容事先未知,无法硬编码 在rst指令类的run()方法中,可以调用self.state.nested_parse()方法。其原始目的是像这样解析指令的

如何在节点中使用rst?例如,我想输出iclude文件
about.rst

class Foo(指令):
def运行(自):
返回[

nodes.Text(“**adad**”),#添加内容格式为rst语法的文本节点没有帮助。您需要创建rst节点对象以构建所需的rst元素树。此外,由于您试图在示例中包含另一个rst文件,您需要使用嵌套解析,因为实际内容事先未知,无法硬编码

在rst指令类的
run()
方法中,可以调用
self.state.nested_parse()
方法。其原始目的是像这样解析指令的内容:

# parse text content of this directive
# into anonymous node element (can't be used directly in the tree)
node = nodes.Element()
self.state.nested_parse(self.content, self.content_offset, node)
在本例中,您可以尝试打开
abour.rst
文件,对其进行解析并添加 将已解析的节点树添加到结果节点列表中,也可以尝试运行嵌套
使用include指令解析字符串常量。

您可以构造原始rst数据的
视图列表(每个条目一行),让Sphinx解析该内容,然后返回Sphinx提供给您的节点。以下内容对我有用:

从docutils导入节点
从docutils.statemachine导入视图列表
来自sphinx.util.compat导入指令
从sphinx.util.nodes导入带有标题的嵌套\u parse\u
Foo类(指令):
def运行(自):
rst=视图列表()
#一次添加一行内容。
#第二个参数是要在任何警告中报告的文件名
#或错误,第三个参数是行号。
追加(“**adad**”,“fakefile.rst”,10)
追加(“,”fakefile.rst“,11)
追加(“…include::about.rst”,“fakefile.rst”,12)
#创建一个节点。
node=nodes.section()
node.document=self.state.document
#解析rst。
嵌套的带有标题的解析(self.state、rst、node)
#并返回结果。
返回node.children
def设置(应用程序):
应用程序添加指令('foo',foo)

我必须为一个项目做一些类似的事情,以代替任何(很容易找到的)作为指导的相关文档。

您为什么在这里将行号设置为10-12?是否可以改为1-3?