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:
|
||||
templ = self.navbar.generate(False, f, a, feed_len,
|
||||
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')
|
||||
body.insert(0, elem)
|
||||
if self.remove_javascript:
|
||||
@ -575,7 +577,8 @@ class BasicNewsRecipe(object, LoggingInterface):
|
||||
|
||||
def feeds2index(self, feeds):
|
||||
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
|
||||
def description_limiter(cls, src):
|
||||
@ -626,7 +629,8 @@ class BasicNewsRecipe(object, LoggingInterface):
|
||||
|
||||
|
||||
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):
|
||||
|
@ -16,6 +16,14 @@ class NewYorker(BasicNewsRecipe):
|
||||
max_articles_per_feed = 100
|
||||
no_stylesheets = 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 = [
|
||||
dict(name='div' , attrs={'id':'printbody' })
|
||||
|
@ -32,6 +32,11 @@ class NavBarTemplate(Template):
|
||||
xmlns:py="http://genshi.edgewall.org/"
|
||||
|
||||
>
|
||||
<head>
|
||||
<style py:if="extra_css" type="text/css">
|
||||
${extra_css}
|
||||
</style>
|
||||
</head>
|
||||
<body>
|
||||
<div class="navbar" style="text-align:${'center' if center else 'left'};">
|
||||
<hr py:if="bottom" />
|
||||
@ -60,14 +65,15 @@ class NavBarTemplate(Template):
|
||||
''')
|
||||
|
||||
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('/'):
|
||||
prefix += '/'
|
||||
return Template.generate(self, bottom=bottom, art=art, feed=feed,
|
||||
num=number_of_articles_in_feed,
|
||||
two_levels=two_levels, url=url,
|
||||
__appname__=__appname__, prefix=prefix,
|
||||
center=center)
|
||||
center=center, extra_css=extra_css)
|
||||
|
||||
|
||||
class IndexTemplate(Template):
|
||||
@ -88,11 +94,14 @@ class IndexTemplate(Template):
|
||||
<style py:if="style" type="text/css">
|
||||
${style}
|
||||
</style>
|
||||
<style py:if="extra_css" type="text/css">
|
||||
${extra_css}
|
||||
</style>
|
||||
</head>
|
||||
<body>
|
||||
<h1>${title}</h1>
|
||||
<h1 class="calibre_recipe_title">${title}</h1>
|
||||
<p style="text-align:right">${date}</p>
|
||||
<ul>
|
||||
<ul class="calibre_feed_list">
|
||||
<py:for each="i, feed in enumerate(feeds)">
|
||||
<li py:if="feed" id="feed_${str(i)}">
|
||||
<a class="feed" href="${'feed_%d/index.html'%i}">${feed.title}</a>
|
||||
@ -103,11 +112,12 @@ class IndexTemplate(Template):
|
||||
</html>
|
||||
''')
|
||||
|
||||
def generate(self, title, datefmt, feeds):
|
||||
def generate(self, title, datefmt, feeds, extra_css=None):
|
||||
if isinstance(datefmt, unicode):
|
||||
datefmt = datefmt.encode(preferred_encoding)
|
||||
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):
|
||||
@ -128,18 +138,21 @@ class FeedTemplate(Template):
|
||||
<style py:if="style" type="text/css">
|
||||
${style}
|
||||
</style>
|
||||
<style py:if="extra_css" type="text/css">
|
||||
${extra_css}
|
||||
</style>
|
||||
</head>
|
||||
<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)">
|
||||
<div class="feed_image">
|
||||
<div class="calibre_feed_image">
|
||||
<img alt="${feed.image_alt}" src="${feed.image_url}" />
|
||||
</div>
|
||||
</py:if>
|
||||
<div py:if="getattr(feed, 'description', None)">
|
||||
<div class="calibre_feed_description" py:if="getattr(feed, 'description', None)">
|
||||
${feed.description}<br />
|
||||
</div>
|
||||
<ul>
|
||||
<ul class="calibre_article_list">
|
||||
<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">
|
||||
<a class="article" href="${article.url}">${article.title}</a>
|
||||
@ -157,8 +170,9 @@ class FeedTemplate(Template):
|
||||
</html>
|
||||
''')
|
||||
|
||||
def generate(self, feed, cutoff):
|
||||
return Template.generate(self, feed=feed, cutoff=cutoff)
|
||||
def generate(self, feed, cutoff, extra_css=None):
|
||||
return Template.generate(self, feed=feed, cutoff=cutoff,
|
||||
extra_css=extra_css)
|
||||
|
||||
class EmbeddedContent(Template):
|
||||
|
||||
|
Loading…
x
Reference in New Issue
Block a user