Sphinx(文档工具):在输出中设置选项卡宽度

时间:2009-11-06 10:52:21

标签: python python-sphinx

如何在Pygments突出显示的Sphinx代码段的HTML输出中设置标签宽度? 默认情况下这是烦人的8,但我想要4。 在Sphinx conf.py中找不到关于此设置的字词。

3 个答案:

答案 0 :(得分:2)

将这样的内容添加到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 preprocessing文档。

答案 1 :(得分:0)

您需要编写Sphinx扩展程序。 Add your custom Lexer,并将其应用于VisibleWhitespaceFilter

答案 2 :(得分:0)

我在sphinx-dev小组问了同样的问题,结果发现这是Sphinx使用的Docutils的一个问题。 Docutils用8个空格替换所有选项卡,目前无法从Sphinx更改该值。

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

唯一可行的解​​决方案似乎是遵循S.Lott和John Paulett对我的问题的评论中的建议 - 使用空格而不是制表符。