fnp
/
wolnelektury.git
/ blobdiff
commit
grep
author
committer
pickaxe
?
search:
re
summary
|
shortlog
|
log
|
commit
|
commitdiff
|
tree
raw
|
inline
| side by side
Fixed complex books (books with hasPart).
[wolnelektury.git]
/
lib
/
librarian
/
html.py
diff --git
a/lib/librarian/html.py
b/lib/librarian/html.py
index
3a221ae
..
9763428
100644
(file)
--- a/
lib/librarian/html.py
+++ b/
lib/librarian/html.py
@@
-55,7
+55,7
@@
def transform(input_filename, output_filename):
result = doc.xslt(style)
add_anchors(result.getroot())
add_table_of_contents(result.getroot())
result = doc.xslt(style)
add_anchors(result.getroot())
add_table_of_contents(result.getroot())
- result.write(output_filename, xml_declaration=
Tru
e, pretty_print=True, encoding='utf-8')
+ result.write(output_filename, xml_declaration=
Fals
e, pretty_print=True, encoding='utf-8')
class Fragment(object):
class Fragment(object):
@@
-109,7
+109,7
@@
def extract_fragments(input_filename):
for event, element in etree.iterparse(input_filename, events=('start', 'end')):
# Process begin and end elements
for event, element in etree.iterparse(input_filename, events=('start', 'end')):
# Process begin and end elements
- if element.
tag == 'span' and element.
get('class', '') in ('theme-begin', 'theme-end'):
+ if element.get('class', '') in ('theme-begin', 'theme-end'):
if not event == 'end': continue # Process elements only once, on end event
# Open new fragment
if not event == 'end': continue # Process elements only once, on end event
# Open new fragment
@@
-117,9
+117,9
@@
def extract_fragments(input_filename):
fragment = Fragment(id=element.get('fid'), themes=element.text)
# Append parents
fragment = Fragment(id=element.get('fid'), themes=element.text)
# Append parents
- if element.getparent().
tag != 'body
':
+ if element.getparent().
get('id', None) != 'book-text
':
parents = [element.getparent()]
parents = [element.getparent()]
- while parents[-1].getparent().
tag != 'body
':
+ while parents[-1].getparent().
get('id', None) != 'book-text
':
parents.append(parents[-1].getparent())
parents.reverse()
parents.append(parents[-1].getparent())
parents.reverse()
@@
-174,7
+174,6
@@
def add_anchor(element, number):
def any_ancestor(element, test):
for ancestor in element.iterancestors():
if test(ancestor):
def any_ancestor(element, test):
for ancestor in element.iterancestors():
if test(ancestor):
- print element, ancestor
return True
return False
return True
return False
@@
-182,7
+181,8
@@
def any_ancestor(element, test):
def add_anchors(root):
counter = 1
for element in root.iterdescendants():
def add_anchors(root):
counter = 1
for element in root.iterdescendants():
- if any_ancestor(element, lambda e: e.get('class') in ('note', 'motto', 'motto_podpis') or e.tag == 'blockquote'):
+ if any_ancestor(element, lambda e: e.get('class') in ('note', 'motto', 'motto_podpis', 'dedication')
+ or e.tag == 'blockquote'):
continue
if element.tag == 'p' and 'verse' in element.get('class', ''):
continue
if element.tag == 'p' and 'verse' in element.get('class', ''):