我目前正在使用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中显示的交互式提示样式相结合。
答案 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"