我正在尝试编写一个执行源级转换的sphinx扩展,但我不知道如何实际更改输出文件。
我的扩展程序如下所示:
def my_source_handler(app, docname, source):
import re
print 'test'
source = [re.sub("foo", "bar", source[0])]
return source
def setup(app):
app.connect('source-read', my_source_handler)
app.add_config_value('my_source_handler_include', True, False)
但是,当我将模块添加到扩展名列表build html
时,它会打印'test',但实际上并没有将输出HTML文件中的“foo”更改为“bar”。
Sphinx documentation有点模糊,说:“你可以处理内容并替换这个项目来实现源代码级转换”。关于source参数。
问题是我不确定我应该如何更换源参数。
答案 0 :(得分:2)
实际上经过一番挖掘后我发现了它,你应该替换source
的第一个(也是唯一的)元素的内容,而不是替换source
本身,所以像:
def my_source_handler(app, docname, source):
import re
print 'test'
source[0] = re.sub("foo", "bar", source[0])