mirror of
https://github.com/kovidgoyal/calibre.git
synced 2025-07-09 03:04:10 -04:00
Fix #1626 (bad font size on "The New Yorker" recipe)
This commit is contained in:
parent
71e91e537a
commit
6a4933c453
@ -532,7 +532,9 @@ class BasicNewsRecipe(object, LoggingInterface):
|
|||||||
if body is not None:
|
if body is not None:
|
||||||
templ = self.navbar.generate(False, f, a, feed_len,
|
templ = self.navbar.generate(False, f, a, feed_len,
|
||||||
not self.has_single_feed,
|
not self.has_single_feed,
|
||||||
url, __appname__, center=self.center_navbar)
|
url, __appname__,
|
||||||
|
center=self.center_navbar,
|
||||||
|
extra_css=self.extra_css)
|
||||||
elem = BeautifulSoup(templ.render(doctype='xhtml').decode('utf-8')).find('div')
|
elem = BeautifulSoup(templ.render(doctype='xhtml').decode('utf-8')).find('div')
|
||||||
body.insert(0, elem)
|
body.insert(0, elem)
|
||||||
if self.remove_javascript:
|
if self.remove_javascript:
|
||||||
@ -575,7 +577,8 @@ class BasicNewsRecipe(object, LoggingInterface):
|
|||||||
|
|
||||||
def feeds2index(self, feeds):
|
def feeds2index(self, feeds):
|
||||||
templ = templates.IndexTemplate()
|
templ = templates.IndexTemplate()
|
||||||
return templ.generate(self.title, self.timefmt, feeds).render(doctype='xhtml')
|
return templ.generate(self.title, self.timefmt, feeds,
|
||||||
|
extra_css=self.extra_css).render(doctype='xhtml')
|
||||||
|
|
||||||
@classmethod
|
@classmethod
|
||||||
def description_limiter(cls, src):
|
def description_limiter(cls, src):
|
||||||
@ -626,7 +629,8 @@ class BasicNewsRecipe(object, LoggingInterface):
|
|||||||
|
|
||||||
|
|
||||||
templ = templates.FeedTemplate()
|
templ = templates.FeedTemplate()
|
||||||
return templ.generate(feed, self.description_limiter).render(doctype='xhtml')
|
return templ.generate(feed, self.description_limiter,
|
||||||
|
extra_css=self.extra_css).render(doctype='xhtml')
|
||||||
|
|
||||||
|
|
||||||
def create_logger(self, feed_number, article_number):
|
def create_logger(self, feed_number, article_number):
|
||||||
|
@ -16,6 +16,14 @@ class NewYorker(BasicNewsRecipe):
|
|||||||
max_articles_per_feed = 100
|
max_articles_per_feed = 100
|
||||||
no_stylesheets = False
|
no_stylesheets = False
|
||||||
use_embedded_content = False
|
use_embedded_content = False
|
||||||
|
extra_css = '''
|
||||||
|
.calibre_feed_list {font-size:xx-small}
|
||||||
|
.calibre_article_list {font-size:xx-small}
|
||||||
|
.calibre_feed_title {font-size:normal}
|
||||||
|
.calibre_recipe_title {font-size:normal}
|
||||||
|
.calibre_feed_description {font-size:xx-small}
|
||||||
|
'''
|
||||||
|
|
||||||
|
|
||||||
keep_only_tags = [
|
keep_only_tags = [
|
||||||
dict(name='div' , attrs={'id':'printbody' })
|
dict(name='div' , attrs={'id':'printbody' })
|
||||||
|
@ -32,6 +32,11 @@ class NavBarTemplate(Template):
|
|||||||
xmlns:py="http://genshi.edgewall.org/"
|
xmlns:py="http://genshi.edgewall.org/"
|
||||||
|
|
||||||
>
|
>
|
||||||
|
<head>
|
||||||
|
<style py:if="extra_css" type="text/css">
|
||||||
|
${extra_css}
|
||||||
|
</style>
|
||||||
|
</head>
|
||||||
<body>
|
<body>
|
||||||
<div class="navbar" style="text-align:${'center' if center else 'left'};">
|
<div class="navbar" style="text-align:${'center' if center else 'left'};">
|
||||||
<hr py:if="bottom" />
|
<hr py:if="bottom" />
|
||||||
@ -60,14 +65,15 @@ class NavBarTemplate(Template):
|
|||||||
''')
|
''')
|
||||||
|
|
||||||
def generate(self, bottom, feed, art, number_of_articles_in_feed,
|
def generate(self, bottom, feed, art, number_of_articles_in_feed,
|
||||||
two_levels, url, __appname__, prefix='', center=True):
|
two_levels, url, __appname__, prefix='', center=True,
|
||||||
|
extra_css=None):
|
||||||
if prefix and not prefix.endswith('/'):
|
if prefix and not prefix.endswith('/'):
|
||||||
prefix += '/'
|
prefix += '/'
|
||||||
return Template.generate(self, bottom=bottom, art=art, feed=feed,
|
return Template.generate(self, bottom=bottom, art=art, feed=feed,
|
||||||
num=number_of_articles_in_feed,
|
num=number_of_articles_in_feed,
|
||||||
two_levels=two_levels, url=url,
|
two_levels=two_levels, url=url,
|
||||||
__appname__=__appname__, prefix=prefix,
|
__appname__=__appname__, prefix=prefix,
|
||||||
center=center)
|
center=center, extra_css=extra_css)
|
||||||
|
|
||||||
|
|
||||||
class IndexTemplate(Template):
|
class IndexTemplate(Template):
|
||||||
@ -88,11 +94,14 @@ class IndexTemplate(Template):
|
|||||||
<style py:if="style" type="text/css">
|
<style py:if="style" type="text/css">
|
||||||
${style}
|
${style}
|
||||||
</style>
|
</style>
|
||||||
|
<style py:if="extra_css" type="text/css">
|
||||||
|
${extra_css}
|
||||||
|
</style>
|
||||||
</head>
|
</head>
|
||||||
<body>
|
<body>
|
||||||
<h1>${title}</h1>
|
<h1 class="calibre_recipe_title">${title}</h1>
|
||||||
<p style="text-align:right">${date}</p>
|
<p style="text-align:right">${date}</p>
|
||||||
<ul>
|
<ul class="calibre_feed_list">
|
||||||
<py:for each="i, feed in enumerate(feeds)">
|
<py:for each="i, feed in enumerate(feeds)">
|
||||||
<li py:if="feed" id="feed_${str(i)}">
|
<li py:if="feed" id="feed_${str(i)}">
|
||||||
<a class="feed" href="${'feed_%d/index.html'%i}">${feed.title}</a>
|
<a class="feed" href="${'feed_%d/index.html'%i}">${feed.title}</a>
|
||||||
@ -103,11 +112,12 @@ class IndexTemplate(Template):
|
|||||||
</html>
|
</html>
|
||||||
''')
|
''')
|
||||||
|
|
||||||
def generate(self, title, datefmt, feeds):
|
def generate(self, title, datefmt, feeds, extra_css=None):
|
||||||
if isinstance(datefmt, unicode):
|
if isinstance(datefmt, unicode):
|
||||||
datefmt = datefmt.encode(preferred_encoding)
|
datefmt = datefmt.encode(preferred_encoding)
|
||||||
date = strftime(datefmt)
|
date = strftime(datefmt)
|
||||||
return Template.generate(self, title=title, date=date, feeds=feeds)
|
return Template.generate(self, title=title, date=date, feeds=feeds,
|
||||||
|
extra_css=extra_css)
|
||||||
|
|
||||||
|
|
||||||
class FeedTemplate(Template):
|
class FeedTemplate(Template):
|
||||||
@ -128,18 +138,21 @@ class FeedTemplate(Template):
|
|||||||
<style py:if="style" type="text/css">
|
<style py:if="style" type="text/css">
|
||||||
${style}
|
${style}
|
||||||
</style>
|
</style>
|
||||||
|
<style py:if="extra_css" type="text/css">
|
||||||
|
${extra_css}
|
||||||
|
</style>
|
||||||
</head>
|
</head>
|
||||||
<body style="page-break-before:always">
|
<body style="page-break-before:always">
|
||||||
<h2 class="feed_title">${feed.title}</h2>
|
<h2 class="calibre_feed_title">${feed.title}</h2>
|
||||||
<py:if test="getattr(feed, 'image', None)">
|
<py:if test="getattr(feed, 'image', None)">
|
||||||
<div class="feed_image">
|
<div class="calibre_feed_image">
|
||||||
<img alt="${feed.image_alt}" src="${feed.image_url}" />
|
<img alt="${feed.image_alt}" src="${feed.image_url}" />
|
||||||
</div>
|
</div>
|
||||||
</py:if>
|
</py:if>
|
||||||
<div py:if="getattr(feed, 'description', None)">
|
<div class="calibre_feed_description" py:if="getattr(feed, 'description', None)">
|
||||||
${feed.description}<br />
|
${feed.description}<br />
|
||||||
</div>
|
</div>
|
||||||
<ul>
|
<ul class="calibre_article_list">
|
||||||
<py:for each="i, article in enumerate(feed.articles)">
|
<py:for each="i, article in enumerate(feed.articles)">
|
||||||
<li id="${'article_%d'%i}" py:if="getattr(article, 'downloaded', False)" style="padding-bottom:0.5em">
|
<li id="${'article_%d'%i}" py:if="getattr(article, 'downloaded', False)" style="padding-bottom:0.5em">
|
||||||
<a class="article" href="${article.url}">${article.title}</a>
|
<a class="article" href="${article.url}">${article.title}</a>
|
||||||
@ -157,8 +170,9 @@ class FeedTemplate(Template):
|
|||||||
</html>
|
</html>
|
||||||
''')
|
''')
|
||||||
|
|
||||||
def generate(self, feed, cutoff):
|
def generate(self, feed, cutoff, extra_css=None):
|
||||||
return Template.generate(self, feed=feed, cutoff=cutoff)
|
return Template.generate(self, feed=feed, cutoff=cutoff,
|
||||||
|
extra_css=extra_css)
|
||||||
|
|
||||||
class EmbeddedContent(Template):
|
class EmbeddedContent(Template):
|
||||||
|
|
||||||
|
Loading…
x
Reference in New Issue
Block a user