diff --git a/resources/catalog/stylesheet.css b/resources/catalog/stylesheet.css
index 48edce76c8..41a5980ed2 100644
--- a/resources/catalog/stylesheet.css
+++ b/resources/catalog/stylesheet.css
@@ -1,35 +1,229 @@
body { background-color: white; }
+/*
+** The following rules apply principally to the line items shown in the
+** Authors, Titles, Genres, Series, and Recently Added sections. Rules for the
+** Descriptions section are grouped together later in the file.
+** ------------------------------------------------------------------------
+*/
+
+
+/*
+**
grouping an author's works together
+** Used in Sections:
+** Authors
+**
+** Minimize widows and orphans by logically grouping chunks
+** Some reports of problems with Sony (ADE) ereaders
+** ADE: page-break-inside:avoid;
+** iBooks: display:inline-block;
+** width:100%;
+*/
+div.author_logical_group {
+ page-break-inside:avoid;
+ }
+
+/*
+** Force page break when starting new initial letter
+** Used in Sections:
+** Authors
+** Titles
+*/
+div.initial_letter {
+ page-break-before:always;
+ }
+
+/*
+** Author name
+** Used in Sections:
+** Authors
+** Genres
+** Recently Added
+*/
+p.author_index {
+ clear:both;
+ font-size:large;
+ font-weight:bold;
+ text-align:left;
+ margin-top:0.25px;
+ margin-bottom:-2px;
+ text-indent: 0em;
+ }
+
+/*
+** Index letter
+** Used in Sections:
+** Authors
+** Titles
+*/
+p.author_title_letter_index {
+ clear:both;
+ font-size:x-large;
+ text-align:center;
+ font-weight:bold;
+ margin-top:0px;
+ margin-bottom:0px;
+ }
+
+/*
+** Index letter
+** Used in Sections:
+** Series
+*/
+p.series_letter_index {
+ font-size:x-large;
+ text-align:center;
+ font-weight:bold;
+ margin-top:1em;
+ margin-bottom:0px;
+ }
+
+
+/*
+** Month-Year
+** Used in Sections:
+** Recently Added
+*/
+p.date_index {
+ clear:both;
+ font-size:x-large;
+ text-align:center;
+ font-weight:bold;
+ margin-top:1em;
+ margin-bottom:0px;
+ }
+
+p.date_read {
+ clear:both;
+ text-align:left;
+ margin-top:0px;
+ margin-bottom:0px;
+ margin-left:6em;
+ text-indent:-6em;
+ }
+
+/*
+** Series name
+** Used in Sections:
+** Authors
+** Series
+** Genres
+** Recently Added
+** Optimized for ePub
+*/
+p.series {
+ clear:both;
+ font-style:italic;
+ margin-top:0.10em;
+ margin-bottom:0em;
+ margin-left:1.5em;
+ text-align:left;
+ text-indent:-1.25em;
+ }
+
+/*
+** Series name
+** Used in Sections:
+** Authors
+** Series
+** Genres
+** Recently Added
+** Optimized for mobi
+*/
+p.series_mobi {
+ clear:both;
+ font-style:italic;
+ margin-top:0em;
+ margin-bottom:0em;
+ margin-left:0em;
+ text-align:left;
+ text-indent:-30px;
+ }
+
+/*
+** Section title
+** Used in Sections:
+** Authors
+** Titles
+** Series
+** Genres
+** Recently Added
+** Descriptions
+*/
+p.title {
+ margin-top:0em;
+ margin-bottom:0em;
+ text-align:center;
+ font-style:italic;
+ font-size:xx-large;
+ }
+
+/*
+** Line item book listing
+** Used in Sections:
+** Authors
+** Titles
+** Series
+** Genres
+** Recently Added
+*/
+p.line_item {
+ clear: both;
+ font-family:monospace;
+ margin-top:0px;
+ margin-bottom:0px;
+ margin-left:2em;
+ text-align:left;
+ text-indent:-2em;
+ }
+
+/*
+** Prefix
+** Used in Sections:
+** Authors
+** Titles
+** Series
+** Genres
+** Recently Added
+*/
+span.prefix {
+ float:left;
+ margin-left: 0.25em;
+ text-align: left;
+ vertical-align: middle;
+ width: 1.5em;
+ }
+
+/*
+** Book details entry
+** Used in Sections:
+** Authors
+** Titles
+** Series
+** Genres
+** Recently Added
+*/
+span.entry {
+ font-family: serif;
+ vertical-align:middle;
+ }
+
+/*
+** The following rules apply to Descriptions
+** -----------------------------------------
+*/
+
+/*
+** Link to Series
+*/
a.series_id {
font-style:normal;
font-size:large;
}
/*
-* Minimize widows and orphans by logically grouping chunks
-* Some reports of problems with Sony (ADE) ereaders
-* ADE: page-break-inside:avoid;
-* iBooks: display:inline-block;
-* width:100%;
+** Various dividers
*/
-div.author_logical_group {
- page-break-inside:avoid;
- }
-
-div.description > p:first-child {
- margin: 0 0 0 0;
- text-indent: 0em;
- }
-
-div.description {
- margin: 0 0 0 0;
- text-indent: 1em;
- }
-
-div.initial_letter {
- page-break-before:always;
- }
-
hr.annotations_divider {
width:50%;
margin-left:1em;
@@ -63,15 +257,11 @@ hr.merged_comments_divider {
border-left: solid white 0px;
}
-p.date_read {
- text-align:left;
- margin-top:0px;
- margin-bottom:0px;
- margin-left:6em;
- text-indent:-6em;
- }
-
+/*
+** Author name
+*/
p.author {
+ clear:both;
font-size:large;
margin-top:0em;
margin-bottom:0.1em;
@@ -79,31 +269,9 @@ p.author {
text-indent: 0em;
}
-p.author_index {
- font-size:large;
- font-weight:bold;
- text-align:left;
- margin-top:0.25px;
- margin-bottom:-2px;
- text-indent: 0em;
- }
-
-p.author_title_letter_index {
- font-size:x-large;
- text-align:center;
- font-weight:bold;
- margin-top:0px;
- margin-bottom:0px;
- }
-
-p.date_index {
- font-size:x-large;
- text-align:center;
- font-weight:bold;
- margin-top:1em;
- margin-bottom:0px;
- }
-
+/*
+** Formats
+*/
p.formats {
font-size:90%;
margin-top:0em;
@@ -112,6 +280,9 @@ p.formats {
text-indent: 0.0in;
}
+/*
+** Genres
+*/
p.genres {
font-style:normal;
margin-top:0.5em;
@@ -120,68 +291,55 @@ p.genres {
text-indent: 0.0in;
}
-p.series {
- font-style:italic;
- margin-top:0.10em;
- margin-bottom:0em;
- margin-left:2em;
- text-align:left;
- text-indent:-2em;
- }
+/*
+** Series name
+*/
p.series_id {
margin-top:0em;
margin-bottom:0em;
text-align:center;
}
-p.series_letter_index {
- font-size:x-large;
- text-align:center;
- font-weight:bold;
- margin-top:1em;
- margin-bottom:0px;
- }
-
-p.title {
- margin-top:0em;
- margin-bottom:0em;
- text-align:center;
- font-style:italic;
- font-size:xx-large;
- }
-
-p.wishlist_item, p.unread_book, p.read_book, p.line_item {
- font-family:monospace;
- margin-top:0px;
- margin-bottom:0px;
- margin-left:2em;
- text-align:left;
- text-indent:-2em;
- }
-
-span.prefix {}
-span.entry {
- font-family: serif;
- }
-
/*
-* Book Descriptions
+** Publisher, Publication Date
*/
td.publisher, td.date {
font-weight:bold;
text-align:center;
}
+/*
+** Rating
+*/
td.rating{
text-align:center;
}
+/*
+** Additional notes
+*/
td.notes {
font-size: 100%;
text-align:center;
}
+/*
+** Thumbnail
+*/
td.thumbnail img {
-webkit-box-shadow: 4px 4px 12px #999;
- }
\ No newline at end of file
+ }
+
+/*
+** Comments
+*/
+div.description {
+ margin: 0 0 0 0;
+ text-indent: 1em;
+ }
+div.description > p:first-child {
+ margin: 0 0 0 0;
+ text-indent: 0em;
+ }
+
diff --git a/src/calibre/library/catalogs/epub_mobi_builder.py b/src/calibre/library/catalogs/epub_mobi_builder.py
index 1ebe710993..603ab487e9 100644
--- a/src/calibre/library/catalogs/epub_mobi_builder.py
+++ b/src/calibre/library/catalogs/epub_mobi_builder.py
@@ -1188,7 +1188,8 @@ Author '{0}':
current_series = book['series']
pSeriesTag = Tag(soup,'p')
pSeriesTag['class'] = "series"
-
+ if self.opts.fmt == 'mobi':
+ pSeriesTag['class'] = "series_mobi"
if self.opts.generate_series:
aTag = Tag(soup,'a')
aTag['href'] = "%s.html#%s" % ('BySeries',self.generateSeriesAnchor(book['series']))
@@ -1330,6 +1331,8 @@ Author '{0}':
current_series = new_entry['series']
pSeriesTag = Tag(soup,'p')
pSeriesTag['class'] = "series"
+ if self.opts.fmt == 'mobi':
+ pSeriesTag['class'] = "series_mobi"
if self.opts.generate_series:
aTag = Tag(soup,'a')
@@ -1776,6 +1779,8 @@ Author '{0}':
current_series = book['series']
pSeriesTag = Tag(soup,'p')
pSeriesTag['class'] = "series"
+ if self.opts.fmt == 'mobi':
+ pSeriesTag['class'] = "series_mobi"
aTag = Tag(soup, 'a')
aTag['id'] = self.generateSeriesAnchor(book['series'])
pSeriesTag.insert(0,aTag)
@@ -3343,11 +3348,17 @@ Author '{0}':
return codeTag
else:
spanTag = Tag(soup, "span")
- #spanTag['class'] = "prefix"
+ spanTag['class'] = "prefix"
+
+ # color:white was the original technique used to align columns.
+ # The new technique is to float the prefix left with CSS.
if prefix_char is None:
- spanTag['style'] = "color:white"
- prefix_char = self.defaultPrefix
- #prefix_char = " "
+ if True:
+ prefix_char = " "
+ else:
+ del spanTag['class']
+ spanTag['style'] = "color:white"
+ prefix_char = self.defaultPrefix
spanTag.insert(0,NavigableString(prefix_char))
return spanTag
@@ -3428,6 +3439,8 @@ Author '{0}':
current_series = book['series']
pSeriesTag = Tag(soup,'p')
pSeriesTag['class'] = "series"
+ if self.opts.fmt == 'mobi':
+ pSeriesTag['class'] = "series_mobi"
if self.opts.generate_series:
aTag = Tag(soup,'a')
aTag['href'] = "%s.html#%s" % ('BySeries', self.generateSeriesAnchor(book['series']))
@@ -3773,7 +3786,6 @@ Author '{0}':
else:
return "%s_series" % re.sub('\W','',ascii_text(series)).lower()
-
def generateShortDescription(self, description, dest=None):
# Truncate the description, on word boundaries if necessary
# Possible destinations: