X-Git-Url: https://git.mdrn.pl/librarian.git/blobdiff_plain/181c5739f47d2adb00ba115bb4766584a1bc37e4..e049ee7b22a7acbb5c6a941e6a4c31c9be4bb834:/librarian/html.py diff --git a/librarian/html.py b/librarian/html.py index f29a9b9..8822f96 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): @@ -225,7 +222,7 @@ def add_anchors(root): def raw_printable_text(element): working = copy.deepcopy(element) for e in working.findall('a'): - if e.get('class') == 'annotation': + if e.get('class') in ('annotation', 'theme-begin'): e.text = '' return etree.tostring(working, method='text', encoding=unicode).strip() @@ -288,6 +285,7 @@ def add_table_of_themes(root): for i, fragment in enumerate(fragments): item = etree.SubElement(themes_li, 'a', href="#%s" % fragment) item.text = str(i + 1) + item.tail = ' ' root.insert(0, themes_div)