2011-11-14 40 views
7

我希望能夠解析基於Python的sphinx以進行進一步處理和檢查。喜歡的東西:以編程方式解析帶有Sphinx特定指令的第一個文件

import sphinx 
p = sphinx.parse("/path/to/file.rst") 
do_something_with(p) 

看來,什麼是可能的使用docutils.core.publish_file docutils的:

publish_file(open("/path/to/file.rst") 

但是,這並不知道獅身人面像具體的指示等什麼...

回答

8

您可以使用Sphinx Extensions在最終寫入之前執行自定義處理。在文檔中有一個非常好的入門示例項目,它討論了允許您自定義Sphinx的各種鉤子。

根據您要做的事情,您可能需要將do_something函數作爲回調參數提供給其中一個事件。

doctree-resolved(app, doctree, docname) 
html-page-context(app, pagename, templatename, context, doctree) 

然後你就可以如下

def setup(app): 
    app.connect('doctree-resolved', do_something) 

如果不夠細緻的獅身人面像教程中的延伸。例如獅身人面像,道格·赫爾曼也有blog post有關創建獅身人面像拼寫檢查。我發現它是我不得不寫一段時間的Sphinx擴展的有用參考。

相關問題