如何在Sphinx文档中将输出添加到交互式Python控制台块?
例如,我可以这样做:
First set the variable::
>>> x = 1
Then print the variable::
>>> print x
让Sphinx自动将print x
的输出插入到文档中吗?
我试过了:
sphinxcontrib-autorun
https://pypi.python.org/pypi/sphinxcontrib-autorun/0.1-20140415 - 但它在一个单独的interpriter中运行每个块IPython.sphinxext.ipython_directive
- 但它强制使用IPython语法而不是"传统" Python控制台。还有什么可以做到的吗?
答案 0 :(得分:3)
答案 1 :(得分:1)
为Sphinx撰写扩展程序的文档位于http://sphinx-doc.org/extdev/index.html#dev-extensions
我要提出的唯一提示是使用self.state.nested_parse(..)
将为您节省很多麻烦。这是我最简单的扩展:
class SvnRevisionDirective(Directive):
"""Directive to display subversion revision of the path.
"""
has_content = True
required_arguments = 1
optional_arguments = 1
final_argument_whitespace = False
option_spec = {}
def run(self):
path = self.arguments[0]
rev = svntools.Revision(path) # uses subprocess etc.
paragraph = nodes.paragraph()
self.state.nested_parse(
StringList([
'**Revision:** r%d' % rev # you can use regular rst syntax here(!)
]), 0, paragraph)
return [paragraph]
...
def setup(app):
...
app.add_directive('svnrevision', SvnRevisionDirective)
它像
一样使用.. snvrevision: 'my/file.py'