From: Radek Czajka Date: Tue, 14 Jan 2014 13:02:58 +0000 (+0100) Subject: Insert anchors before, not inside elements. X-Git-Tag: 1.7~117 X-Git-Url: https://git.mdrn.pl/librarian.git/commitdiff_plain/bca485bab3f6b59cdee68d3c3c3bb006c0006e97 Insert anchors before, not inside elements. --- diff --git a/librarian/html.py b/librarian/html.py index 70fc6e5..8703150 100644 --- a/librarian/html.py +++ b/librarian/html.py @@ -177,25 +177,22 @@ def extract_fragments(input_filename): def add_anchor(element, prefix, with_link=True, with_target=True, link_text=None): + parent = element.getparent() + index = parent.index(element) + if with_link: if link_text is None: link_text = prefix anchor = etree.Element('a', href='#%s' % prefix) anchor.set('class', 'anchor') anchor.text = unicode(link_text) - if element.text: - anchor.tail = element.text - element.text = u'' - element.insert(0, anchor) + parent.insert(index, anchor) if with_target: anchor_target = etree.Element('a', name='%s' % prefix) anchor_target.set('class', 'target') anchor_target.text = u' ' - if element.text: - anchor_target.tail = element.text - element.text = u'' - element.insert(0, anchor_target) + parent.insert(index, anchor_target) def any_ancestor(element, test):