From 4b413dfef3bfd3b42bab4390f93ef4146c749f71 Mon Sep 17 00:00:00 2001 From: Kovid Goyal Date: Mon, 14 Dec 2009 15:53:57 -0700 Subject: [PATCH] Implement #4214 (Sorting MANIFEST files in ePUB conversion) --- src/calibre/ebooks/oeb/base.py | 7 +++++-- src/calibre/ebooks/oeb/transforms/split.py | 2 +- 2 files changed, 6 insertions(+), 3 deletions(-) diff --git a/src/calibre/ebooks/oeb/base.py b/src/calibre/ebooks/oeb/base.py index dff2dc724b..c8e66b70bb 100644 --- a/src/calibre/ebooks/oeb/base.py +++ b/src/calibre/ebooks/oeb/base.py @@ -1206,8 +1206,12 @@ class Manifest(object): return elem def to_opf2(self, parent=None): + + def sort(x, y): + return cmp(x.href, y.href) + elem = element(parent, OPF('manifest')) - for item in self.items: + for item in sorted(self.items, cmp=sort): media_type = item.media_type if media_type in OEB_DOCS: media_type = XHTML_MIME @@ -1435,7 +1439,6 @@ class Guide(object): return elem -# TODO: This needs beefing up to support the interface of toc.TOC class TOC(object): """Represents a hierarchical table of contents or navigation tree for accessing arbitrary semantic sections within an OEB data model book. diff --git a/src/calibre/ebooks/oeb/transforms/split.py b/src/calibre/ebooks/oeb/transforms/split.py index 7165be17c8..7c1559fda6 100644 --- a/src/calibre/ebooks/oeb/transforms/split.py +++ b/src/calibre/ebooks/oeb/transforms/split.py @@ -167,7 +167,7 @@ class FlowSplitter(object): self.csp_counter = 0 base, ext = os.path.splitext(self.base) - self.base = base.replace('%', '%%')+'_split_%d'+ext + self.base = base.replace('%', '%%')+'_split_%.3d'+ext self.trees = [self.item.data.getroottree()] self.splitting_on_page_breaks = True