comparison planemo/lib/python3.7/site-packages/docutils/parsers/rst/directives/admonitions.py @ 0:d30785e31577 draft

"planemo upload commit 6eee67778febed82ddd413c3ca40b3183a3898f1"
author guerler
date Fri, 31 Jul 2020 00:18:57 -0400
parents
children
comparison
equal deleted inserted replaced
-1:000000000000 0:d30785e31577
1 # $Id: admonitions.py 7681 2013-07-12 07:52:27Z milde $
2 # Author: David Goodger <goodger@python.org>
3 # Copyright: This module has been placed in the public domain.
4
5 """
6 Admonition directives.
7 """
8
9 __docformat__ = 'reStructuredText'
10
11
12 from docutils.parsers.rst import Directive
13 from docutils.parsers.rst import states, directives
14 from docutils.parsers.rst.roles import set_classes
15 from docutils import nodes
16
17
18 class BaseAdmonition(Directive):
19
20 final_argument_whitespace = True
21 option_spec = {'class': directives.class_option,
22 'name': directives.unchanged}
23 has_content = True
24
25 node_class = None
26 """Subclasses must set this to the appropriate admonition node class."""
27
28 def run(self):
29 set_classes(self.options)
30 self.assert_has_content()
31 text = '\n'.join(self.content)
32 admonition_node = self.node_class(text, **self.options)
33 self.add_name(admonition_node)
34 if self.node_class is nodes.admonition:
35 title_text = self.arguments[0]
36 textnodes, messages = self.state.inline_text(title_text,
37 self.lineno)
38 title = nodes.title(title_text, '', *textnodes)
39 title.source, title.line = (
40 self.state_machine.get_source_and_line(self.lineno))
41 admonition_node += title
42 admonition_node += messages
43 if not 'classes' in self.options:
44 admonition_node['classes'] += ['admonition-' +
45 nodes.make_id(title_text)]
46 self.state.nested_parse(self.content, self.content_offset,
47 admonition_node)
48 return [admonition_node]
49
50
51 class Admonition(BaseAdmonition):
52
53 required_arguments = 1
54 node_class = nodes.admonition
55
56
57 class Attention(BaseAdmonition):
58
59 node_class = nodes.attention
60
61
62 class Caution(BaseAdmonition):
63
64 node_class = nodes.caution
65
66
67 class Danger(BaseAdmonition):
68
69 node_class = nodes.danger
70
71
72 class Error(BaseAdmonition):
73
74 node_class = nodes.error
75
76
77 class Hint(BaseAdmonition):
78
79 node_class = nodes.hint
80
81
82 class Important(BaseAdmonition):
83
84 node_class = nodes.important
85
86
87 class Note(BaseAdmonition):
88
89 node_class = nodes.note
90
91
92 class Tip(BaseAdmonition):
93
94 node_class = nodes.tip
95
96
97 class Warning(BaseAdmonition):
98
99 node_class = nodes.warning