8

さらに処理とチェックを行うために、Pythonで最初に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")

しかし、それはスフィンクス固有のディレクティブなどについては何も知りません...

4

1 に答える 1

9

Sphinx Extensionsを使用して、最終的な書き込みの前にカスタム処理を行うことができます。ドキュメントには、Sphinxをカスタマイズするためのさまざまなフックについて説明した非常に優れた入門サンプルプロジェクトがあります。

何をしようとしているのかによってはdo_something、これらのイベントの1つへのコールバック引数として関数を提供する必要がある場合があります。

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

そして、次のようにスフィンクスを拡張できます

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

Sphinxチュートリアルの例が十分に詳細でない場合、DougHellmannはSphinxのスペルチェッカーの作成に関するブログ投稿も持っています。しばらく前に書かなければならなかったSphinx拡張機能の便利なリファレンスであることがわかりました。

于 2011-11-14T17:09:54.187 に答える