aboutsummaryrefslogtreecommitdiff
path: root/mammoth/html_generation.py
diff options
context:
space:
mode:
authorMichael Williamson <mike@zwobble.org>2013-12-14 15:28:03 +0000
committerMichael Williamson <mike@zwobble.org>2013-12-14 15:28:03 +0000
commit8cf77f91fa81823af6c84ed7ca97a3a21dc89d6b (patch)
tree6713bc4871635c34605f8fb79a84237dc97004a0 /mammoth/html_generation.py
parent841de73928538038496f15467aba9001b47a2d9c (diff)
Generate HTML to satisfy HTML paths
Diffstat (limited to 'mammoth/html_generation.py')
-rw-r--r--mammoth/html_generation.py17
1 files changed, 17 insertions, 0 deletions
diff --git a/mammoth/html_generation.py b/mammoth/html_generation.py
index e276bdc..90a1401 100644
--- a/mammoth/html_generation.py
+++ b/mammoth/html_generation.py
@@ -66,3 +66,20 @@ def _generate_attribute_string(attributes):
' {0}="{1}"'.format(key, _escape_html(value))
for key, value in attributes.iteritems()
)
+
+
+def satisfy_html_path(generator, path):
+ first_unsatisfied_index = _find_first_unsatisfied_index(generator, path)
+ while len(generator._stack) > first_unsatisfied_index:
+ generator.end()
+
+ for element in path.elements[first_unsatisfied_index:]:
+ generator.start(element.names[0])
+
+
+def _find_first_unsatisfied_index(generator, path):
+ for index, (generated_element, path_element) in enumerate(zip(generator._stack, path.elements)):
+ if generated_element.name not in path_element.names:
+ return index
+
+ return len(generator._stack)