fragment = Fragment(id=element.get('fid'), themes=element.text)
# Append parents
- if element.getparent().get('id', None) != 'book-text':
- parents = [element.getparent()]
- while parents[-1].getparent().get('id', None) != 'book-text':
- parents.append(parents[-1].getparent())
-
- parents.reverse()
- for parent in parents:
- fragment.append('start', parent)
+ parent = element.getparent()
+ parents = []
+ while parent.get('id', None) != 'book-text':
+ cparent = copy.deepcopy(parent)
+ cparent.text = None
+ parents.append(cparent)
+ parent = parent.getparent()
+
+ parents.reverse()
+ for parent in parents:
+ fragment.append('start', parent)
open_fragments[fragment.id] = fragment
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()