Fix #1716 (LIT: Chapter mark switch ignored and rule (<hr>) is displayed)

This commit is contained in:
Marshall T. Vandegrift 2009-01-27 23:13:19 -05:00
parent e82972af80
commit 17957bab84

View File

@ -561,28 +561,16 @@ class Processor(Parser):
for elem in self.detected_chapters: for elem in self.detected_chapters:
text = u' '.join([t.strip() for t in elem.xpath('descendant::text()')]) text = u' '.join([t.strip() for t in elem.xpath('descendant::text()')])
self.log_info('\tDetected chapter: %s', text[:50]) self.log_info('\tDetected chapter: %s', text[:50])
if self.opts.chapter_mark != 'none': chapter_mark = self.opts.chapter_mark
hr = etree.Element('hr') if chapter_mark != 'none':
if elem.getprevious() is None: tag = 'hr' if chapter_mark != 'pagebreak' else 'br'
elem.getparent()[:0] = [hr] mark = etree.Element(tag)
elif elem.getparent() is not None: elem.addprevious(mark)
insert = None if chapter_mark == 'both':
for i, c in enumerate(elem.getparent()): mark.set('style', 'page-break-before: always')
if c is elem: elif chapter_mark == 'pagebreak':
insert = i mark.set('style', 'page-break-after: always')
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]
def save(self): def save(self):
style_path = os.path.splitext(os.path.basename(self.save_path()))[0] 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]): for i, sheet in enumerate([self.stylesheet, self.font_css, self.override_css]):