1

私は現在、Sphinxを使用して混合言語プロジェクトを文書化しています。その文書には、Pythonだけでなく、bashやWindowsコマンドライン、MATLABやその他のインタープリターでの対話型セッションの例も含まれています。Pygmentsはすべてをうまく強調表示しますが、これまでドキュメントに含めたすべてのインタラクティブセッションは、Pythonプロンプトの前にHTML出力で表示されます>>>$たとえば、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 に答える