[ADD] extensions: add a custom example admonition

closes odoo/documentation#1501

X-original-commit: acda12669d
Signed-off-by: Antoine Vandevenne (anv) <anv@odoo.com>
This commit is contained in:
wan
2021-11-25 11:08:47 +00:00
committed by Antoine Vandevenne (anv)
parent fd25322fda
commit 2bf697bda4
9 changed files with 54 additions and 23 deletions
+43
View File
@@ -0,0 +1,43 @@
""" Add new custom admonition directives. """
from docutils import nodes
from docutils.parsers.rst.directives import admonitions
from sphinx.locale import admonitionlabels
class example(nodes.Admonition, nodes.Element):
pass
class Example(admonitions.BaseAdmonition):
node_class = example
class exercise(nodes.Admonition, nodes.Element):
pass
class Exercise(admonitions.BaseAdmonition):
node_class = exercise
def setup(app):
app.add_directive('example', Example)
app.add_node(example, html=(
lambda self, node: self.visit_admonition(node, 'example'),
lambda self, node: self.depart_admonition(node),
))
app.add_directive('exercise', Exercise)
app.add_node(exercise, html=(
lambda self, node: self.visit_admonition(node, 'exercise'),
lambda self, node: self.depart_admonition(node),
))
return {
'parallel_read_safe': True,
'parallel_write_safe': True
}
admonitionlabels['example'] = 'Example'
admonitionlabels['exercise'] = 'Exercise'