45 lines
1.1 KiB
Python
45 lines
1.1 KiB
Python
from docutils import nodes
|
|
|
|
from sphinx.util.compat import Directive, make_admonition
|
|
|
|
class youcanhelp_node(nodes.Admonition, nodes.Element):
|
|
pass
|
|
|
|
class YouCanHelp(Directive):
|
|
has_content = True
|
|
required_arguments = 0
|
|
optional_arguments = 0
|
|
final_argument_whitespace = False
|
|
option_spec = {}
|
|
|
|
def run(self):
|
|
ad = make_admonition(
|
|
youcanhelp_node,
|
|
self.name,
|
|
["You Can Help!"],
|
|
self.options,
|
|
self.content,
|
|
self.lineno,
|
|
self.content_offset,
|
|
self.block_text,
|
|
self.state,
|
|
self.state_machine)
|
|
ad[0].line = self.lineno
|
|
return ad
|
|
|
|
def visit_youcanhelp_node(self, node):
|
|
self.visit_admonition(node)
|
|
|
|
def depart_youcanhelp_node(self, node):
|
|
self.depart_admonition(node)
|
|
|
|
def setup(app):
|
|
app.add_node(
|
|
youcanhelp_node,
|
|
html=(visit_youcanhelp_node, depart_youcanhelp_node),
|
|
latex=(visit_youcanhelp_node, depart_youcanhelp_node),
|
|
text=(visit_youcanhelp_node, depart_youcanhelp_node)
|
|
)
|
|
|
|
app.add_directive('youcanhelp', YouCanHelp)
|