如何将一个指令嵌套在另一个指令中,例如.. code-block ::

时间:2018-10-17 19:57:54

标签: python python-sphinx

所以我正在尝试使用sphinx来构建一些python文档。我有一个扩展名(https://github.com/lunaryorn/sphinxcontrib-programoutput),我正在使用该扩展名来调用源python文件之一来显示用法文本,例如.. command-output:: python ../src/something.py --help可以正常工作,问题是我想对代码进行颜色编码输出。

我尝试在其顶部放一个.. code-block:: sh,但我不知道是否真的有办法像这样嵌套两者。

这有可能吗?

编辑:更多信息

所以这是我的第一个源文件的一部分:

..command-output:: python ../project/module.py --help

最终将创建html,如下所示:

<div class="highlight-text notranslate">
    <div class="highlight">
        <pre>
            <span></span>
            $ python ../project/module.py --help
            usage: module.py [-h][-d | -q]

            This is a project

            optional arguments:
              -h, --help            show this help message and exit

            logging arguments:
              Control what log level the log outputs (default: logger.INFO)

              -d, --debug           Set log level to DEBUG for more verbose output
              -q, --quiet           Suppress all logs except ERROR and CRITICAL
        </pre>
    </div>
</div>

这里的问题是用法输出只是黑色和白色,但是我希望将其突出显示为语法,就好像它是Shell代码或任何其他语言一样(因为此命令输出的东西可能会用于其他语言)各种输出)。

如下所述,https://stackoverflow.com/users/2214933/steve-piercy指出.. code-block::不能在其下嵌套另一个指令,这是我尝试开始使用的。因此,我要寻找的是能够以某种方式为command-output的输出着色,就像它是由.. code-block::指令修改的一样。

1 个答案:

答案 0 :(得分:1)

首先,不再支持sphinxcontrib-programoutput。我建议使用sphinxcontrib-autoprogram

两个扩展都生成类似的用法块(示例https://docs.pylonsproject.org/projects/pyramid/en/latest/pscripts/pcreate.html),因此当前无法在输出的该部分中设置位的样式。您可以设置后续选项的样式。

您可以file an issue作为功能请求,也可以自己修改源并提交PR。