sphinx / direction/code.pyでsphinxのLiteralIncludeディレクティブにパッチを適用できます
- そこで、コードを含めるときに、このスニペットで強調する開始/終了行を指定できるようにする必要があります。
- 2番目のステップでは、物事を異なる方法で強調する方法をいくつか作成する必要があります。最も単純なアプローチは、強調されていない部分は強調表示されず、強調されている部分が強調表示されることです。これにより、スタイルやハイライトのより複雑なハッキングを回避できます。
これにより、たとえば、literalincludeディレクティブに次のように使用できる新しい行強調オプションが提供されます。
.. literalinclude:: ../sphinx/directives/code.py
:pyobject: Highlight
:lines-emphasis: 6,13
ここで、line-emphasisは開始行、含まれているコードを基準にした終了行、最初の行は1です。
pypi.python.org/pypi/Sphinx/0.6.5のsphinx0.6.5をベースとして使用すると、パッチが適用された迅速なcode.pyがあります:http://paste.pocoo.org/show/194456/
以下は同等であることに注意してください。
標準のスフィンクスを使用する(S.Lottが提案したものとほぼ同じ):
.. literalinclude:: ../sphinx/directives/code.py
:language: none
:lines: 0-36
.. literalinclude:: ../sphinx/directives/code.py
:lines: 36-46
.. literalinclude:: ../sphinx/directives/code.py
:language: none
:lines: 37-
...そしてパッチを当てたスフィンクスを使用する:
.. literalinclude:: ../sphinx/directives/code.py
:lines-emphasis: 37,47
したがって、それはあなたが探しているものと正確に一致しないかもしれません。パッチは、コードの強調表示されたセクションまたは強調表示されていないセクションごとに新しいノードを作成します。これらはそれぞれ、Sphinxによって個別の<div>セクションと<pre>セクションとしてレンダリングされます。これを超えるには、強調して線をより適切に抜粋するスタイルシートを作成することをお勧めします。さらにハックするには、SphinxとPygmentsの内臓を深く掘り下げて、シームレスで強調されたスタイルを直接生成する必要があります。些細なことではありません。
/ HTH