mirror of
https://github.com/kovidgoyal/calibre.git
synced 2025-07-09 03:04:10 -04:00
EPUB/AZW3 Output: Fix splitting on page breaks ignored if the page breaks are inside an element which itself has a page-break-after style applied.
This commit is contained in:
parent
70c75df551
commit
3114094227
@ -228,16 +228,20 @@ class FlowSplitter(object):
|
|||||||
ordered_ids[elem_id] = self.page_breaks[
|
ordered_ids[elem_id] = self.page_breaks[
|
||||||
self.page_break_ids.index(elem_id)]
|
self.page_break_ids.index(elem_id)]
|
||||||
|
|
||||||
self.trees = []
|
self.trees = [orig_tree]
|
||||||
tree = orig_tree
|
while ordered_ids:
|
||||||
for pattern, before in ordered_ids.itervalues():
|
pb_id, (pattern, before) = ordered_ids.iteritems().next()
|
||||||
|
del ordered_ids[pb_id]
|
||||||
|
for i in xrange(len(self.trees)-1, -1, -1):
|
||||||
|
tree = self.trees[i]
|
||||||
elem = pattern(tree)
|
elem = pattern(tree)
|
||||||
if elem:
|
if not elem:
|
||||||
self.log.debug('\t\tSplitting on page-break at %s'%
|
continue
|
||||||
|
self.log.debug('\t\tSplitting on page-break at id=%s'%
|
||||||
elem[0].get('id'))
|
elem[0].get('id'))
|
||||||
before_tree, after_tree = self.do_split(tree, elem[0], before)
|
before_tree, after_tree = self.do_split(tree, elem[0], before)
|
||||||
self.trees.append(before_tree)
|
self.trees[i:i+1] = [before_tree, after_tree]
|
||||||
tree = after_tree
|
|
||||||
self.trees.append(tree)
|
self.trees.append(tree)
|
||||||
trees, ids = [], set([])
|
trees, ids = [], set([])
|
||||||
for tree in self.trees:
|
for tree in self.trees:
|
||||||
|
Loading…
x
Reference in New Issue
Block a user