diff --git a/src/calibre/ebooks/html.py b/src/calibre/ebooks/html.py index 32601320d4..2e2a27e172 100644 --- a/src/calibre/ebooks/html.py +++ b/src/calibre/ebooks/html.py @@ -561,28 +561,16 @@ class Processor(Parser): for elem in self.detected_chapters: text = u' '.join([t.strip() for t in elem.xpath('descendant::text()')]) self.log_info('\tDetected chapter: %s', text[:50]) - if self.opts.chapter_mark != 'none': - hr = etree.Element('hr') - if elem.getprevious() is None: - elem.getparent()[:0] = [hr] - elif elem.getparent() is not None: - insert = None - for i, c in enumerate(elem.getparent()): - if c is elem: - insert = i - break - elem.getparent()[insert:insert] = [hr] - if self.opts.chapter_mark != 'rule': - hr.set('style', 'width:0pt;page-break-before:always') - if self.opts.chapter_mark == 'both': - hr2 = etree.Element('hr') - hr2.tail = u'\u00a0' - p = hr.getparent() - i = p.index(hr) - p[i:i] = [hr2] - - - + chapter_mark = self.opts.chapter_mark + if chapter_mark != 'none': + tag = 'hr' if chapter_mark != 'pagebreak' else 'br' + mark = etree.Element(tag) + elem.addprevious(mark) + if chapter_mark == 'both': + mark.set('style', 'page-break-before: always') + elif chapter_mark == 'pagebreak': + mark.set('style', 'page-break-after: always') + def save(self): style_path = os.path.splitext(os.path.basename(self.save_path()))[0] for i, sheet in enumerate([self.stylesheet, self.font_css, self.override_css]):