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

时间:2012-05-09 17:56:53

标签: python documentation python-sphinx

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


编辑澄清:

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

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

然后,此代码将变为标记,就像Python标准库文档中the documentation of argparse中所示的标记一样,将>>>后面的代码显示为突出显示的代码段。虽然很明显人们可以简单地用其他提示字符排版未突出显示的块,但我想知道如何将>>>以外的提示与the argparse example中显示的交互式提示样式相结合。

1 个答案:

答案 0 :(得分:4)

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

>>>被识别为交互式Python提示符。但使用其他提示将无效。 The documentation说:“普通的Python代码只有在可解析时才会突出显示”,类似

$ import sys 

>> import sys 

不能解析为Python。

可以使用扩展来使Sphinx接受其他Python提示。 ipython directive就是一个例子(我未经过测试)。


这些例子对我很有用:

.. 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以外的目标)。狮身人面像会自动识别>>>

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

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

.. code-block:: python

   import sys
   print "X"