EPUB Output: Fix generated OPF to be compatible with the asinine epubchecker. Also fix bug that was causing the default cover to use the date even when authors are present.

This commit is contained in:
Kovid Goyal 2009-07-27 12:06:16 -06:00
parent ddc22b2480
commit 81d70b68d9
3 changed files with 9 additions and 4 deletions

View File

@ -125,7 +125,9 @@ class EPUBOutput(OutputFormatPlugin):
</head>
<body>
<h1>%(title)s</h1>
<img class="logo" src="%(img)s" alt="calibre logo" />
<div style="text-align:center">
<img class="logo" src="%(img)s" alt="calibre logo" />
</div>
<h2>%(author)s</h2>
<h4>Produced by %(app)s</h4>
</body>
@ -196,7 +198,7 @@ class EPUBOutput(OutputFormatPlugin):
images_rc
m = self.oeb.metadata
title = unicode(m.title[0])
a = [unicode(x) for x in m.creators if m.role == 'aut']
a = [unicode(x) for x in m.creator if x.role == 'aut']
author = authors_to_string(a)
if QApplication.instance() is None: QApplication([])
f = QFile(':/library')

View File

@ -694,7 +694,6 @@ class Metadata(object):
def to_opf2(self, parent=None):
nsmap = self._opf2_nsmap
nsrmap = dict((value, key) for key, value in nsmap.items())
nsmap.pop('opf', '')
elem = element(parent, OPF('metadata'), nsmap=nsmap)
for term in self.items:
for item in self.items[term]:

View File

@ -3,7 +3,7 @@ __license__ = 'GPL 3'
__copyright__ = '2009, Kovid Goyal <kovid@kovidgoyal.net>'
__docformat__ = 'restructuredtext en'
import os
import os, re
from lxml import etree
@ -34,6 +34,10 @@ class OEBOutput(OutputFormatPlugin):
if root is not None:
raw = etree.tostring(root, pretty_print=True,
encoding='utf-8', xml_declaration=True)
if key == OPF_MIME:
# Needed as I can't get lxml to output opf:role and
# not output <opf:metadata> as well
raw = re.sub(r'(<[/]{0,1})opf:', r'\1', raw)
with open(href, 'wb') as f:
f.write(raw)