我正在尝试编写一个基本扩展,以基于output
指令provided by Sphinx创建一个新指令(only
)。这个新指令只需要将HTML类添加到Only
指令的标准结果中即可。
为此,我已经基于collapse-code-block extension尝试了以下代码。
由于docutils实际上没有文档,而且我不是一个非常有经验的python开发人员,因此我正在努力实现这一目标。
这是我尝试过的方法,除其他外,所有这些均未导致对该问题的任何真实指示:
from docutils import nodes
from sphinx.directives.other import Only
class output_node(nodes.General, nodes.Element):
pass
class output_directive(Only):
option_spec = Only.option_spec
def run(self):
env = self.state.document.settings.env
node = output_node()
output = Only.run(self)
node.setup_child(output)
node.append(output)
return [node]
def html_visit_output_node(self, node):
self.body.append(self.starttag(node, 'div', '', CLASS='internalonly'))
def html_depart_output_node(self, node):
self.body.append('</div>')
def setup(app):
app.add_node(
output_node,
html=(
html_visit_output_node,
html_depart_output_node
)
)
app.add_directive('output', output_directive)
我认为它不应该比这更复杂,但这并不能解决问题。
有什么主意吗?