- style_filename = get_stylesheet("wl2tex")
- style = etree.parse(style_filename)
-
- document = load_including_children(provider, slug)
-
- # dirty hack for the marginpar-creates-orphans LaTeX problem
- # see http://www.latex-project.org/cgi-bin/ltxbugs2html?pr=latex/2304
- for motif in document.edoc.findall('//strofa//motyw'):
- # find relevant verse-level tag
- verse, stanza = motif, motif.getparent()
- while stanza is not None and stanza.tag != 'strofa':
- verse, stanza = stanza, stanza.getparent()
- breaks_before = sum(1 for i in verse.itersiblings('br', preceding=True))
- breaks_after = sum(1 for i in verse.itersiblings('br'))
- if (breaks_before == 0 and breaks_after > 0) or breaks_after == 1:
- move_by = 1
- if breaks_after == 2:
- move_by += 1
- moved_motif = deepcopy(motif)
- motif.tag = 'span'
- motif.text = None
- moved_motif.tail = None
- moved_motif.set('moved', str(move_by))
-
- for br in verse.itersiblings(tag='br'):
- if move_by > 1:
- move_by -= 1
- continue
- br.addnext(moved_motif)
- break
-
+ book_info = wldoc.book_info
+ document = load_including_children(wldoc)
+ root = document.edoc.getroot()
+
+ if cover:
+ if cover is True:
+ cover = make_cover
+ bound_cover = cover(book_info, width=1200)
+ root.set('data-cover-width', str(bound_cover.width))
+ root.set('data-cover-height', str(bound_cover.height))
+ if bound_cover.uses_dc_cover:
+ if book_info.cover_by:
+ root.set('data-cover-by', book_info.cover_by)
+ if book_info.cover_source:
+ root.set('data-cover-source', book_info.cover_source)
+ if flags:
+ for flag in flags:
+ root.set('flag-' + flag, 'yes')
+
+ # check for LaTeX packages
+ if morefloats:
+ root.set('morefloats', morefloats.lower())
+ elif package_available('morefloats', 'maxfloats=19'):
+ root.set('morefloats', 'new')
+
+ # add customizations
+ if customizations is not None:
+ root.set('customizations', u','.join(customizations))
+
+ # add editors info
+ editors = document.editors()
+ if editors:
+ root.set('editors', u', '.join(sorted(
+ editor.readable() for editor in editors)))
+ if document.book_info.funders:
+ root.set('funders', u', '.join(document.book_info.funders))
+ if document.book_info.thanks:
+ root.set('thanks', document.book_info.thanks)
+
+ # hack the tree
+ move_motifs_inside(document.edoc)
+ hack_motifs(document.edoc)
+ parse_creator(document.edoc)