6

Pygments で強調表示された Sphinx コード スニペットの HTML 出力でタブ幅を設定するにはどうすればよいですか? デフォルトでは迷惑な 8 ですが、私は 4 が必要です。Sphinx の conf.py で、この設定に関する言葉が見つかりませんでした。

4

3 に答える 3

3

次のようなものを conf.py に追加します。

import re

def process_docstring(app, what, name, obj, options, lines):
    spaces_pat = re.compile(r"( {8})")
    ll = []
    for l in lines:
        ll.append(spaces_pat.sub("    ",l))
    lines[:] = ll

def setup(app):
    app.connect('autodoc-process-docstring', process_docstring)

Sphinx Docstring の前処理に関するドキュメントも参照してください。

于 2012-10-02T23:02:08.577 に答える
0

sphinx-dev グループで同じ質問をしたところ、Sphinx で使用されている Docutils に問題があることがわかりました。Docutils はすべてのタブを 8 つのスペースに置き換えます。現在、Sphinx からその値を変更する方法はありません。

http://groups.google.com/group/sphinx-dev/browse_thread/thread/35b8071ffe9a8feb

唯一の実行可能な解決策は、S.Lott と John Paulett からの私の質問に対するコメントのアドバイスに従うことです。タブの代わりにスペースを使用してください。

于 2009-11-30T09:51:16.580 に答える
0

Sphinx 拡張機能を作成する必要があります。カスタム Lexer を追加し、 VisibleWhitespaceFilterで適用します。

于 2009-11-08T15:49:49.090 に答える