2013-02-16 59 views
3
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的sources,但沒有看到我的方式完成,所以他們以我不能的方式訪問conf.py。或者我應該以不同的方式去做?如何閱讀Sphinx擴展節點中的conf.py設置?

所有我想要做的就是把這種

.. figure:: image/image.jpg 

到這一點:

.. image:: image/thumbnails/image.jpg 
    :target: image/image.jpg 

Here's the extension code

(縮略圖與PIL生成)。並且將:target:放入可下載的文件中(正如我所看到的,只有builder實例可以執行此操作)。

回答

3

構建環境(請參閱this page)擁有對Config對象的引用。可以從此對象檢索配置變量:

def run(self): 
    env = self.state.document.settings.env # sphinx.environment.BuildEnvironment 
    config = env.config      # sphinx.config.Config 
    folder = config["thumbnails_folder"] 
    ...