X-Git-Url: https://git.mdrn.pl/librarian.git/blobdiff_plain/0ed55708c990f67143d50dd07b25f3ce8f36e9de..d329e7e5c88a9445e10083536ae1549e6fc1a1be:/librarian/xmlutils.py?ds=sidebyside diff --git a/librarian/xmlutils.py b/librarian/xmlutils.py index 9768623..bbcc884 100644 --- a/librarian/xmlutils.py +++ b/librarian/xmlutils.py @@ -12,8 +12,9 @@ class Xmill(object): Used instead of XSLT which is difficult and cumbersome. """ - def __init__(self, options=None): + def __init__(self, options=None, state=None): self._options = [] + self.state = state or {} if options: self._options.append(options) self.text_filters = [] @@ -103,6 +104,7 @@ class Xmill(object): if isinstance(element, etree._Comment): return None handler = self._handle_for_element(element) + if self.state.get('mute') and not getattr(handler, 'unmuter', False): return None # How many scopes try: options_scopes = len(self._options) @@ -127,6 +129,7 @@ class Xmill(object): finally: # clean up option scopes if necessary self._options = self._options[0:options_scopes] + return out