From 8059e5f4d09fb14f2109cedb63ae0d353537e6b3 Mon Sep 17 00:00:00 2001 From: Michael Williamson Date: Sun, 3 Jul 2016 14:15:27 +0100 Subject: Add HTML path for ignoring elements --- mammoth/html_paths.py | 5 +++++ mammoth/style_reader/html_path_reader.py | 10 +++++++--- 2 files changed, 12 insertions(+), 3 deletions(-) (limited to 'mammoth') diff --git a/mammoth/html_paths.py b/mammoth/html_paths.py index 487f278..53580ed 100644 --- a/mammoth/html_paths.py +++ b/mammoth/html_paths.py @@ -49,3 +49,8 @@ class HtmlPathElement(object): return [element] empty = path([]) + + +class ignore(object): + def wrap(self, generate_nodes): + return [] diff --git a/mammoth/style_reader/html_path_reader.py b/mammoth/style_reader/html_path_reader.py index 20666d4..f70c8e3 100644 --- a/mammoth/style_reader/html_path_reader.py +++ b/mammoth/style_reader/html_path_reader.py @@ -9,8 +9,10 @@ def read_html_path(string): def read_html_path_node(path_node): - if path_node.children: - return _read_html_path_elements_node(path_node.children[0]) + if path_node.children[0].expr_name == "ignore": + return html_paths.ignore + elif path_node.children[0].children: + return _read_html_path_elements_node(path_node.children[0].children[0]) else: return html_paths.empty @@ -67,7 +69,9 @@ def _repeated_children_with_separator(node, has_whitespace): grammar_text = r""" -html_path = html_path_elements? +html_path = ignore / html_path_elements? + +ignore = "!" html_path_elements = element (whitespace* ">" whitespace* element)* -- cgit v1.2.3