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,27 +561,15 @@ 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]