考虑具有以下骨架的RestructedText文档:
Main Title
==========
text text text text text
Subsection
----------
text text text text text
.. my-import-from:: file1
.. my-import-from:: file2
my-import-from
指令是由特定于文档的Sphinx扩展提供的,它应该读取作为参数提供的文件,解析嵌入其中的reST,并将结果作为一个节插入当前输入文件中。(与autodoc类似,但文件格式不同。)我现在的代码如下:
这是有效的,除了新节作为当前节的子而不是兄弟注入。换言之,上面的示例文档生成如下目录树:
- Main Title
- Subsection
- File1
- File2
而不是你想要的
- Main Title
- Subsection
- File1
- File2
我怎么解决这个问题?Docutils文档是。。。不充分,尤其是在断面深度控制方面。我尝试过的一个明显的方法是返回doc_section.children
,而不是{File1
和{
我认为不可能通过返回指令中的部分来实现这一点(不按照Florian的建议做一些事情),因为它将被附加到“当前”部分。但是,您可以通过
self.state.section
添加节,就像我在下面所做的那样(为了简洁起见,处理删除的选项)我不知道如何直接在你的自定义指令中执行。但是,可以使用自定义转换在解析后提升树中的}节点。例如,请参见^{} 模块中的转换。在
File1
和{在Sphinx扩展中,使用^{} 方法注册自定义转换。在
更新:您还可以通过在节点列表中返回
docutils.nodes.pending
类的一个或多个实例,直接在指令中注册转换。在这种情况下,一定要调用文档的note_pending
方法(在您的指令中,您可以通过self.state_machine.document
获取文档)。在相关问题 更多 >
编程相关推荐