Sphinx或RST中有一个`replace`指令,其工作方式类似于`include`?

时间:2019-07-04 12:05:14

标签: python-sphinx restructuredtext

我正在使用Sphinx和Jinja和JSON扩展来创建用户文档,以具有灵活的模板。

解决方案运行良好,但是一些命令需要一些额外的说明,为此,我找到了一种方法,可以将这些额外的文本放在另一个文件中,并使用include指令将其附加到命令文档中,如下所示:

我的第一个带有模板的文件。

{% for cmd in commands %}
Here the command {{ cmd.description }}
{% if cmd.extra is defined %}
{% for line in cmd.extra %}
{{line}}
{% endfor %}
{% endif %}
{% endfor %}

该解决方案的JSON文件

{
    commands: [
        {
            "description": "Short description here"
            "extra": [".. include:: command_extra.rst"]
        }
    ]
}

该解决方案的缺点是,对于每个具有此额外信息的命令,我必须在树中拥有一个额外的rst文件,Witch会生成许多警告,并使源代码更难以管理。 / p>

我希望找到的解决方案是这样的:

所需的RST文件:

{% for cmd in commands %}
Here the command {{ cmd.description }}
{% if cmd.extra is defined %}
{% for line in cmd.extra %}
{{line}}
{% endfor %}
{% endif %}
{% endfor %}

.. |command1_extra| replace::

     Multi line text here

.. |command2_extra| replace::

     Multi line text here

所需的JSON文件:

{
    commands: [
        {
            "description": "Short description here"
            "extra": ["|command1_extra|"]
        }
    ]
}

是否有任何sphinx / rst指令或扩展名可以使所需的解决方案成为可能?

0 个答案:

没有答案