diff --git a/src/filters/rclepub b/src/filters/rclepub index 32c55315..e0919a1a 100755 --- a/src/filters/rclepub +++ b/src/filters/rclepub @@ -32,7 +32,7 @@ class rclEPUB: self.catenate = cf.getConfParam("epubcatenate") self.catenate = int(self.catenate) if self.catenate else False - def _selfdoc(self): + def _docheader(self): meta = self.book.opf.metadata title = "" for tt, lang in meta.titles: @@ -49,7 +49,39 @@ class rclEPUB: if meta.description: data += '\n' - data = data.encode('UTF-8') + for value in meta.subjects: + data += '\n' + data += "" + return data.encode('UTF-8') + + def _catbodies(self): + data = b'
' + ids = [] + if self.book.opf.spine: + for id, linear in self.book.opf.spine.itemrefs: + ids.append(id) + else: + for id, item in self.book.opf.manifest.items(): + ids.append(id) + + for id in ids: + item = self.book.get_item(id) + if item is None or item.media_type != 'application/xhtml+xml': + continue + doc = self.book.read_item(item) + doc = re.sub(b'''<\?.*\?>''', b'', doc) + doc = re.sub(b'''