如何在Sphinx扩展节点中读取conf.py设置?
from docutils.parsers.rst.directives.images import Figure
class MyFigure(Figure):
def run(self):
# here I need to read the 'thumbnails_folder' setting
pass
def setup(app):
app.add_config_value('thumbnails_folder', '_thumbnails', 'env')
我该如何在 .run()
中访问配置值呢?我看过 Sphinx-contrib 的源码,但没有找到我想要的做法,他们访问 conf.py
的方式我无法做到。那我是不是应该换个方法呢?
我想做的就是把这个
.. figure:: image/image.jpg
转换成这个:
.. image:: image/thumbnails/image.jpg
:target: image/image.jpg
(缩略图是用 PIL 生成的)。还有把 :target:
放到可下载的文件里(我看到只有构建实例可以做到这一点)。
1 个回答
5
构建环境中保存了一个指向配置对象的引用。我们可以从这个对象中获取配置信息:
def run(self):
env = self.state.document.settings.env # sphinx.environment.BuildEnvironment
config = env.config # sphinx.config.Config
folder = config["thumbnails_folder"]
...