From 04ebf1ec201cdb6d8fadb5df2917ff95aaea03cf Mon Sep 17 00:00:00 2001 From: "Marshall T. Vandegrift" Date: Fri, 12 Dec 2008 10:45:49 -0500 Subject: [PATCH] Fix a metadata error. Add parsing @import queries. --- src/calibre/ebooks/lit/oeb.py | 2 +- src/calibre/ebooks/lit/stylizer.py | 8 +++++--- 2 files changed, 6 insertions(+), 4 deletions(-) diff --git a/src/calibre/ebooks/lit/oeb.py b/src/calibre/ebooks/lit/oeb.py index 18eca37720..6378c99219 100644 --- a/src/calibre/ebooks/lit/oeb.py +++ b/src/calibre/ebooks/lit/oeb.py @@ -172,7 +172,7 @@ class Metadata(object): def add(self, term, value, attrib={}): item = self.Item(term, value, attrib) - items = self.items[barename(term)] + items = self.items[barename(item.term)] items.append(item) return item diff --git a/src/calibre/ebooks/lit/stylizer.py b/src/calibre/ebooks/lit/stylizer.py index ae89d8f390..7a89474d89 100644 --- a/src/calibre/ebooks/lit/stylizer.py +++ b/src/calibre/ebooks/lit/stylizer.py @@ -122,12 +122,14 @@ class Stylizer(object): basename = os.path.basename(path) cssname = os.path.splitext(basename)[0] + '.css' stylesheets = [HTML_CSS_STYLESHEET] - head = xpath(tree, '/h:html/h:head')[0] + head = xpath(tree, '/h:html/h:head')[0] + parser = cssutils.CSSParser() + parser.setFetcher(lambda path: ('utf-8', oeb.container.read(path))) for elem in head: tag = barename(elem.tag) if tag == 'style': text = ''.join(elem.text) - stylesheet = cssutils.parseString(text, href=cssname) + stylesheet = parser.parseString(text, href=cssname) stylesheets.append(stylesheet) elif tag == 'link' \ and elem.get('rel', 'stylesheet') == 'stylesheet' \ @@ -140,7 +142,7 @@ class Stylizer(object): else: data = XHTML_CSS_NAMESPACE data += oeb.manifest.hrefs[path].data - stylesheet = cssutils.parseString(data, href=path) + stylesheet = parser.parseString(data, href=path) self.STYLESHEETS[path] = stylesheet stylesheets.append(stylesheet) rules = []