如何在Pygments高亮显示的Sphinx代码片段的HTML输出中设置制表符宽度?默认情况下,它是烦人的8,但我想要4。在Sphinx conf.py中没有找到关于此设置的单词。
sg2wtvxw1#
在您的www.example.com中添加类似的内容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文档字符串预处理文档。
siotufzp2#
您需要编写一个狮身人面像扩展。添加您的自定义Lexer,并使用VisibleWhitespaceFilter应用它。
pepwfjgg3#
我在sphinx-dev组上问了同样的问题,结果发现这是Sphinx使用的Docutils的问题。Docutils用8个空格替换所有制表符,目前还没有办法从Sphinx中更改该值。http://groups.google.com/group/sphinx-dev/browse_thread/thread/35b8071ffe9a8feb唯一可行的解决方案似乎是遵循S.Lott和John Paulett在对我的问题的评论中提出的建议--使用空格而不是制表符。
ctehm74n4#
我在custom.css中修改了空格的字体大小这是一个简单的调整,效果很好。这只会修改代码块,其他什么都不会。这就是我想要的。_static/custon.css
div.highlight pre .w { font-size: 50%; }
注:文档字符串预处理的解决方案是搞乱我的python代码文档字符串,这在构建时导致错误。
dxxyhpgq5#
有个办法将以下内容添加到conf.py
conf.py
def setup(app): app.connect('autodoc-process-docstring', process_docstring) def env_before_read_docs(app, env, docnames): env.settings["tab_width"] = 4
我不确定文档在哪里(所以不能保证这个API是稳定的),但是sphinx/environment/__init__.py中有一个注解:
sphinx/environment/__init__.py
# the docutils settings for building self.settings = default_settings.copy()
这正是我们想要的。
5条答案
按热度按时间sg2wtvxw1#
在您的www.example.com中添加类似的内容conf.py:
另请参见Sphinx文档字符串预处理文档。
siotufzp2#
您需要编写一个狮身人面像扩展。添加您的自定义Lexer,并使用VisibleWhitespaceFilter应用它。
pepwfjgg3#
我在sphinx-dev组上问了同样的问题,结果发现这是Sphinx使用的Docutils的问题。Docutils用8个空格替换所有制表符,目前还没有办法从Sphinx中更改该值。
http://groups.google.com/group/sphinx-dev/browse_thread/thread/35b8071ffe9a8feb
唯一可行的解决方案似乎是遵循S.Lott和John Paulett在对我的问题的评论中提出的建议--使用空格而不是制表符。
ctehm74n4#
我在custom.css中修改了空格的字体大小这是一个简单的调整,效果很好。这只会修改代码块,其他什么都不会。这就是我想要的。
_static/custon.css
注:文档字符串预处理的解决方案是搞乱我的python代码文档字符串,这在构建时导致错误。
dxxyhpgq5#
有个办法将以下内容添加到
conf.py
我不确定文档在哪里(所以不能保证这个API是稳定的),但是
sphinx/environment/__init__.py
中有一个注解:这正是我们想要的。