Sphinx(文档工具):设置输出中的制表符宽度

7 投票
6 回答
2640 浏览
提问于 2025-04-15 15:43

在使用Sphinx生成的HTML中,如何设置Pygments高亮代码片段的制表符宽度?默认情况下,制表符宽度是8个空格,这让人很烦,但我想要4个空格。没有在Sphinx的配置文件conf.py中找到关于这个设置的任何信息。

6 个回答

1

在2023年,使用Sphinx v6.1.3的时候,我通过在源文件夹里放一个叫做 docutils.conf 的文件来解决了这个问题,这个文件里只有以下内容:

[restructuredtext parser]
tab_width: 4

结果成功了!

我是在 这里 找到这个小窍门的。

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的文档字符串预处理相关说明。

0

你需要写一个Sphinx扩展。首先,添加你自己的Lexer,然后用VisibleWhitespaceFilter来应用它。

撰写回答