From eab369b5721b933c080516fd1dcdfa67e6e2dfcd Mon Sep 17 00:00:00 2001 From: Michael Williamson Date: Thu, 12 Dec 2013 22:19:46 +0000 Subject: Read classes on HTML path elements --- mammoth/style_reader.py | 19 +++++++++++++++++-- 1 file changed, 17 insertions(+), 2 deletions(-) (limited to 'mammoth/style_reader.py') diff --git a/mammoth/style_reader.py b/mammoth/style_reader.py index 7a7474f..4418dbb 100644 --- a/mammoth/style_reader.py +++ b/mammoth/style_reader.py @@ -18,7 +18,9 @@ def _read_path_node(path_node): def _read_element_node(node): - return html_paths.element(_read_tag_names_node(node)) + tag_names = _read_tag_names_node(node.children[0]) + class_names = _read_class_names_node(node.children[1]) + return html_paths.element(tag_names, class_names=class_names) def _read_tag_names_node(node): @@ -28,6 +30,17 @@ def _read_tag_names_node(node): ] +def _read_class_names_node(class_names_node): + return [ + _read_class_name_node(node) + for node in class_names_node.children + ] + + +def _read_class_name_node(node): + return node.children[1].text + + def _repeated_children_with_separator(node, has_whitespace): yield node.children[0] @@ -45,7 +58,9 @@ _grammar = Grammar(r""" path = element whitespace* (">" whitespace* element)* -element = tag_names +element = tag_names class_name* + +class_name = "." identifier tag_names = identifier ("|" identifier)* -- cgit v1.2.3