diff options
Diffstat (limited to '.venv/lib/python3.12/site-packages/docutils/transforms/writer_aux.py')
-rw-r--r-- | .venv/lib/python3.12/site-packages/docutils/transforms/writer_aux.py | 99 |
1 files changed, 99 insertions, 0 deletions
diff --git a/.venv/lib/python3.12/site-packages/docutils/transforms/writer_aux.py b/.venv/lib/python3.12/site-packages/docutils/transforms/writer_aux.py new file mode 100644 index 00000000..8f303be3 --- /dev/null +++ b/.venv/lib/python3.12/site-packages/docutils/transforms/writer_aux.py @@ -0,0 +1,99 @@ +# $Id: writer_aux.py 9037 2022-03-05 23:31:10Z milde $ +# Author: Lea Wiemann <LeWiemann@gmail.com> +# Copyright: This module has been placed in the public domain. + +""" +Auxiliary transforms mainly to be used by Writer components. + +This module is called "writer_aux" because otherwise there would be +conflicting imports like this one:: + + from docutils import writers + from docutils.transforms import writers +""" + +__docformat__ = 'reStructuredText' + +import warnings + +from docutils import nodes, languages +from docutils.transforms import Transform + + +class Compound(Transform): + + """ + .. warning:: This transform is not used by Docutils since Dec 2010 + and will be removed in Docutils 0.21 or later. + + Flatten all compound paragraphs. For example, transform :: + + <compound> + <paragraph> + <literal_block> + <paragraph> + + into :: + + <paragraph> + <literal_block classes="continued"> + <paragraph classes="continued"> + """ + + default_priority = 910 + + def __init__(self, document, startnode=None): + warnings.warn('docutils.transforms.writer_aux.Compound is deprecated' + ' and will be removed in Docutils 0.21 or later.', + DeprecationWarning, stacklevel=2) + super().__init__(document, startnode) + + def apply(self): + for compound in self.document.findall(nodes.compound): + first_child = True + for child in compound: + if first_child: + if not isinstance(child, nodes.Invisible): + first_child = False + else: + child['classes'].append('continued') + # Substitute children for compound. + compound.replace_self(compound[:]) + + +class Admonitions(Transform): + + """ + Transform specific admonitions, like this: + + <note> + <paragraph> + Note contents ... + + into generic admonitions, like this:: + + <admonition classes="note"> + <title> + Note + <paragraph> + Note contents ... + + The admonition title is localized. + """ + + default_priority = 920 + + def apply(self): + language = languages.get_language(self.document.settings.language_code, + self.document.reporter) + for node in self.document.findall(nodes.Admonition): + node_name = node.__class__.__name__ + # Set class, so that we know what node this admonition came from. + node['classes'].append(node_name) + if not isinstance(node, nodes.admonition): + # Specific admonition. Transform into a generic admonition. + admonition = nodes.admonition(node.rawsource, *node.children, + **node.attributes) + title = nodes.title('', language.labels[node_name]) + admonition.insert(0, title) + node.replace_self(admonition) |