diff --git a/src/calibre/library/catalog.py b/src/calibre/library/catalog.py index 5f771a8a6d..dab715dfa4 100644 --- a/src/calibre/library/catalog.py +++ b/src/calibre/library/catalog.py @@ -11,7 +11,7 @@ from xml.sax.saxutils import escape from lxml import etree from calibre import prints, prepare_string_for_xml, strftime -from calibre.constants import preferred_encoding +from calibre.constants import preferred_encoding, DEBUG from calibre.customize import CatalogPlugin from calibre.customize.conversion import OptionRecommendation, DummyReporter from calibre.ebooks.BeautifulSoup import BeautifulSoup, BeautifulStoneSoup, Tag, NavigableString @@ -1917,34 +1917,35 @@ class EPUB_MOBI(CatalogPlugin): aTag['name'] = anchor_name.replace(" ","") body.insert(btc, aTag) btc += 1 - ''' - # We don't need this because the kindle inserts section titles - #

By Author

- h2Tag = Tag(soup, "h2") - aTag = Tag(soup, "a") - anchor_name = friendly_name.lower() - aTag['name'] = anchor_name.replace(" ","") - h2Tag.insert(0,aTag) - h2Tag.insert(1,NavigableString('%s' % friendly_name)) - body.insert(btc,h2Tag) - btc += 1 - ''' #

#

divTag = Tag(soup, "div") dtc = 0 - current_letter = "" - current_author = "" - current_series = None + divOpeningTag = None + dotc = 0 + divRunningTag = None + drtc = 0 # Loop through booksByAuthor book_count = 0 - divRunningTag = None + current_author = '' + current_letter = '' + current_series = None for book in self.booksByAuthor: book_count += 1 if self.letter_or_symbol(book['author_sort'][0].upper()) != current_letter : # Start a new letter with Index letter + if divOpeningTag is not None: + divTag.insert(dtc, divOpeningTag) + dtc += 1 + dotc = 0 + if divRunningTag is not None: + divTag.insert(dtc, divRunningTag) + dtc += 1 + drtc = 0 + divRunningTag = None + current_letter = self.letter_or_symbol(book['author_sort'][0].upper()) author_count = 0 divOpeningTag = Tag(soup, 'div') @@ -1964,16 +1965,16 @@ class EPUB_MOBI(CatalogPlugin): current_author = book['author'] author_count += 1 if author_count == 2: - # Add divOpeningTag to divTag + # Add divOpeningTag to divTag, kill divOpeningTag divTag.insert(dtc, divOpeningTag) dtc += 1 - elif author_count > 2 and divRunningTag is not None: - divTag.insert(dtc, divRunningTag) - dtc += 1 + divOpeningTag = None + dotc = 0 - divRunningTag = Tag(soup, 'div') - divRunningTag['style'] = 'display:inline-block;width:100%' - drtc = 0 + # Create a divRunningTag for the rest of the authors in this letter + divRunningTag = Tag(soup, 'div') + divRunningTag['style'] = 'display:inline-block;width:100%' + drtc = 0 non_series_books = 0 current_series = None @@ -1986,7 +1987,7 @@ class EPUB_MOBI(CatalogPlugin): if author_count == 1: divOpeningTag.insert(dotc, pAuthorTag) dotc += 1 - elif divRunningTag is not None: + else: divRunningTag.insert(drtc,pAuthorTag) drtc += 1 @@ -2059,10 +2060,12 @@ class EPUB_MOBI(CatalogPlugin): if author_count == 1: divOpeningTag.insert(dotc, pBookTag) dotc += 1 - elif divRunningTag is not None: + else: divRunningTag.insert(drtc,pBookTag) drtc += 1 + # Loop ends here + if not self.__generateForKindle: # Insert the

tag with book_count at the head #

By Author

@@ -2080,6 +2083,9 @@ class EPUB_MOBI(CatalogPlugin): if author_count == 1: divTag.insert(dtc, divOpeningTag) dtc += 1 + elif divRunningTag is not None: + divTag.insert(dtc, divRunningTag) + dtc += 1 # Add the divTag to the body body.insert(btc, divTag) @@ -5027,8 +5033,11 @@ class EPUB_MOBI(CatalogPlugin): if catalog_source_built: recommendations = [] - recommendations.append(('comments', '\n'.join(line for line in build_log), + if DEBUG: + recommendations.append(('comments', '\n'.join(line for line in build_log), OptionRecommendation.HIGH)) + else: + recommendations.append(('comments', '', OptionRecommendation.HIGH)) dp = getattr(opts, 'debug_pipeline', None) if dp is not None: