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 扩展。添加您的自定义 Lexer,并使用VisibleWhitespaceFilter应用它。

于 2009-11-08T15:49:49.090 回答
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 回答