我希望能够在 Python 中解析基于 sphinx 的 rst 以便进一步处理和检查。就像是:
import sphinx
p = sphinx.parse("/path/to/file.rst")
do_something_with(p)
似乎在 docutils 中使用 docutils.core.publish_file 是可能的:
publish_file(open("/path/to/file.rst")
但这对狮身人面像特定指令等一无所知......
您可以使用狮身人面像扩展 http://sphinx.pocoo.org/extensions.html在最终写入之前进行自定义处理。文档中有一个非常好的入门示例项目,它讨论了允许您自定义 Sphinx 的各种挂钩。
根据您想要执行的操作,您可能需要提供您的do_something
函数作为这些事件之一的回调参数。
doctree-resolved(app, doctree, docname)
html-page-context(app, pagename, templatename, context, doctree)
然后你可以按如下方式扩展 sphinx
def setup(app):
app.connect('doctree-resolved', do_something)
如果Sphinx教程中的例子还不够详细,Doug Hellmann还有一个博客文章 http://www.doughellmann.com/articles/how-tos/sphinxcontrib-spelling/index.html关于为 Sphinx 创建拼写检查器。我发现它对于我不久前必须编写的 Sphinx 扩展来说是一个有用的参考。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)