diff options
| author | Michael Williamson <mike@zwobble.org> | 2013-12-14 15:28:03 +0000 |
|---|---|---|
| committer | Michael Williamson <mike@zwobble.org> | 2013-12-14 15:28:03 +0000 |
| commit | 8cf77f91fa81823af6c84ed7ca97a3a21dc89d6b (patch) | |
| tree | 6713bc4871635c34605f8fb79a84237dc97004a0 /mammoth/html_generation.py | |
| parent | 841de73928538038496f15467aba9001b47a2d9c (diff) | |
Generate HTML to satisfy HTML paths
Diffstat (limited to 'mammoth/html_generation.py')
| -rw-r--r-- | mammoth/html_generation.py | 17 |
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) |
