Server IP : 66.29.132.122 / Your IP : 3.138.33.120 Web Server : LiteSpeed System : Linux business142.web-hosting.com 4.18.0-553.lve.el8.x86_64 #1 SMP Mon May 27 15:27:34 UTC 2024 x86_64 User : admazpex ( 531) PHP Version : 7.2.34 Disable Function : NONE MySQL : OFF | cURL : ON | WGET : ON | Perl : ON | Python : ON | Sudo : OFF | Pkexec : OFF Directory : /proc/self/root/proc/thread-self/root/opt/imunify360/venv/lib64/python3.11/site-packages/docutils/transforms/ |
Upload File : |
# $Id: components.py 9037 2022-03-05 23:31:10Z milde $ # Author: David Goodger <goodger@python.org> # Copyright: This module has been placed in the public domain. """ Docutils component-related transforms. """ from docutils.transforms import Transform __docformat__ = 'reStructuredText' class Filter(Transform): """ Include or exclude elements which depend on a specific Docutils component. For use with `nodes.pending` elements. A "pending" element's dictionary attribute ``details`` must contain the keys "component" and "format". The value of ``details['component']`` must match the type name of the component the elements depend on (e.g. "writer"). The value of ``details['format']`` is the name of a specific format or context of that component (e.g. "html"). If the matching Docutils component supports that format or context, the "pending" element is replaced by the contents of ``details['nodes']`` (a list of nodes); otherwise, the "pending" element is removed. For example, up to version 0.17, the reStructuredText "meta" directive created a "pending" element containing a "meta" element (in ``pending.details['nodes']``). Only writers (``pending.details['component'] == 'writer'``) supporting the "html", "latex", or "odf" formats (``pending.details['format'] == 'html,latex,odf'``) included the "meta" element; it was deleted from the output of all other writers. This transform is no longer used by Docutils, it may be removed in future. """ # TODO: clean up or keep this for 3rd party (or possible future) use? # (GM 2021-05-18) default_priority = 780 def apply(self): pending = self.startnode component_type = pending.details['component'] # 'reader' or 'writer' formats = (pending.details['format']).split(',') component = self.document.transformer.components[component_type] for format in formats: if component.supports(format): pending.replace_self(pending.details['nodes']) break else: pending.parent.remove(pending)