使用 reST 嵌套 Sphinx 扩展指令

问题描述 投票:0回答:2

我想弄清楚是否有办法嵌套 Sphinx 扩展指令。我有一些运行良好的自定义节点类型,但我希望生成的 HTML 具有更大的灵活性。

这是我想要实现的目标的示例:

假设我有一个指令,可以创建一个触发一些 JavaScript 的文本框和按钮。这工作正常 - 我可以将其放入我的 reST 文件中:

.. myDirective:: name
    :opt1: val
    content

现在,我希望能够在输出中使用 jQuery 创建选项卡式界面。我有一个节点类型,可以创建发生这种情况所需的原始 HTML/JavaScript。

我希望能够做的是为选项卡节点提供 1 个或多个 myDirective(或其他指令)实例,并将每个实例放入另一个选项卡中。像这样的东西:

..tabbedInterface:: 
    .. myDirective:: name1
        :op1: val1
        content

    .. myDirective:: name2
        :op1: val1
        content

显然这是一个非常具体的情况,但这通常是我想要完成的 - 嵌套指令。

python python-sphinx restructuredtext docutils
2个回答
8
投票

配置块扩展可能会帮助您: https://github.com/fabpot/sphinx-php/blob/master/sensio/sphinx/configurationblock.py

来自:http://symfony.com/doc/2.0/contributing/documentation/format.html#configuration-blocks

.. configuration-block::

  .. code-block:: yaml

    # Configuration in YAML

  .. code-block:: xml

    <!-- Configuration in XML //-->

  .. code-block:: php

    // Configuration in PHP

0
投票

从 Sphinx 7.4 开始,有

SphinxDirective.parse_content_to_nodes()
方法来处理指令内容中的 rst 。 它避免了直接使用
self.state.nested_parse(self.content, self.content_offset, node)
,如其他答案中链接的那样。

© www.soinside.com 2019 - 2024. All rights reserved.