1

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


编辑澄清:

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

>>> # python code here
>>> print "foo"
foo

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

4

1 回答 1

4

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

>>>被识别为交互式 Python 提示符。但是使用另一个提示是行不通的。文档说:“正常的 Python 代码只有在可解析时才会突出显示”,诸如此类

$ import sys 

或者

>> import sys 

不能像 Python 一样解析。

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


这些例子对我很有效:

.. code-block:: bash

   $ pwd
   /home
   $ echo TEST
   TEST

.. code-block:: python

   >>> import sys
   >>> print "X"
   X

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

.. highlight:: bash

::

   $ pwd
   /home
   $ echo TEST
   TEST

.. highlight:: python

::

   >>> import sys
   >>> print "X"
   X

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

>>> import sys
>>> print "X"
X

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

.. code-block:: python

   import sys
   print "X"
于 2012-05-10T19:26:07.887 回答