如何更改 Sphinx 在记录交互式会话时显示的提示?

Chr*_*ade 1 python documentation python-sphinx

我目前正在使用Sphinx来记录一个混合语言项目,该文档不仅包含 Python 中的交互式会话示例,还包含 bash 和 Windows 命令行以及 MATLAB 和其他解释器中的交互式会话示例。虽然 Pygments 很好地突出显示了所有内容,但到目前为止我在文档中包含的所有交互式会话都显示在 HTML 输出中,前面带有 Python 提示符>>>. $例如,在记录 bash 会话时,如何将该提示更改为?


编辑澄清:

如 Sphinx 手册中的“显示代码示例”下所述,Sphinx 文档的 ReST 源可以包含如下代码:

>>> # python code here
>>> print "foo"
foo
Run Code Online (Sandbox Code Playgroud)

然后,此代码将转换为标记,如Python 标准库文档中的argparse 文档中演示的那样,将 后面的代码显示>>>为突出显示的代码片段。虽然很明显,可以简单地将未突出显示的块与其他提示字符一起排版,但我想知道如何将提示与argparse 示例>>>中显示的交互式提示样式结合起来。

mzj*_*zjn 5

例如,您可以使用它$作为 bash 片段的提示符,但如果您希望很好地突出显示输出,则它不能用于 Python。

>>>被识别为交互式 Python 提示符。但使用其他提示将不起作用。文档说:“普通的 Python 代码仅在可解析时才会突出显示”,以及类似的内容

$ import sys 
Run Code Online (Sandbox Code Playgroud)

或者

>> import sys 
Run Code Online (Sandbox Code Playgroud)

不能像 Python 一样解析。

可以使用扩展使 Sphinx 接受其他 Python 提示。ipython 指令是一个示例(未经我测试)。


这些例子对我来说很有效:

.. code-block:: bash

   $ pwd
   /home
   $ echo TEST
   TEST

.. code-block:: python

   >>> import sys
   >>> print "X"
   X
Run Code Online (Sandbox Code Playgroud)

以下产生相同的格式和突出显示:

.. highlight:: bash

::

   $ pwd
   /home
   $ echo TEST
   TEST

.. highlight:: python

::

   >>> import sys
   >>> print "X"
   X
Run Code Online (Sandbox Code Playgroud)

对于 Python 交互式会话,实际上不需要额外的标记(除非最近的.. highlight::指令具有除 之外的目标python)。Sphinx>>>自动识别:

>>> import sys
>>> print "X"
X
Run Code Online (Sandbox Code Playgroud)

如果没有任何提示,代码必须位于代码块(或文字块)中才能正确格式化:

.. code-block:: python

   import sys
   print "X"
Run Code Online (Sandbox Code Playgroud)