Skip to content

Commit ac9a7bc

Browse files
committedJul 12, 2015
pagekind for theming
1 parent 001bc22 commit ac9a7bc

File tree

8 files changed

+31
-7
lines changed

8 files changed

+31
-7
lines changed
 

Diff for: ‎CHANGES.txt

+1
Original file line numberDiff line numberDiff line change
@@ -4,6 +4,7 @@ New in master
44
Features
55
--------
66

7+
* New ‘pagekind’ variable available to identify different kind of pages from theme templates
78
* Add ``--no-server`` option to ``nikola auto`` (Issue #1883)
89
* Always return unicode in slugify (Issue #1885)
910
* Remove logging handlers (Issue #1797)

Diff for: ‎nikola/nikola.py

+6-2
Original file line numberDiff line numberDiff line change
@@ -1524,9 +1524,9 @@ def scan_posts(self, really=False, ignore_quit=False, quiet=False):
15241524
sys.exit(1)
15251525
signal('scanned').send(self)
15261526

1527-
def generic_page_renderer(self, lang, post, filters):
1527+
def generic_page_renderer(self, lang, post, filters, context=None):
15281528
"""Render post fragments to final HTML pages."""
1529-
context = {}
1529+
context = context.copy() if context else {}
15301530
deps = post.deps(lang) + \
15311531
self.template_system.template_deps(post.template_name)
15321532
deps.extend(utils.get_asset_path(x, self.THEMES) for x in ('bundles', 'parent', 'engine'))
@@ -1536,6 +1536,8 @@ def generic_page_renderer(self, lang, post, filters):
15361536
context['title'] = post.title(lang)
15371537
context['description'] = post.description(lang)
15381538
context['permalink'] = post.permalink(lang)
1539+
if not 'pagekind' in context:
1540+
context['pagekind'] = ['generic_page']
15391541
if post.use_in_feeds:
15401542
context['enable_comments'] = True
15411543
else:
@@ -1823,6 +1825,8 @@ def generic_index_renderer(self, lang, posts, indexes_title, template_name, cont
18231825
num_pages = len(lists)
18241826
for i, post_list in enumerate(lists):
18251827
context = context_source.copy()
1828+
if not 'pagekind' in context:
1829+
context['pagekind'] = ['index']
18261830
ipages_i = utils.get_displayed_page_number(i, num_pages, self)
18271831
if kw["indexes_pages"]:
18281832
indexes_pages = kw["indexes_pages"] % ipages_i

Diff for: ‎nikola/plugins/task/archive.py

+5-2
Original file line numberDiff line numberDiff line change
@@ -58,6 +58,7 @@ def _prepare_task(self, kw, name, lang, posts, items, template_name,
5858
context["lang"] = lang
5959
context["title"] = title
6060
context["permalink"] = self.site.link("archive", name, lang)
61+
context["pagekind"] = ["list", "archive_page"]
6162
if posts is not None:
6263
context["posts"] = posts
6364
n = len(posts)
@@ -97,13 +98,15 @@ def page_path(i, displayed_i, num_pages, force_addition, extension=None):
9798
uptodate = []
9899
if deps_translatable is not None:
99100
uptodate += [config_changed(deps_translatable, 'nikola.plugins.task.archive')]
101+
context = {"archive_name": name,
102+
"is_feed_stale": kw["is_feed_stale"],
103+
"pagekind": ["index", "archive_page"]}
100104
yield self.site.generic_index_renderer(
101105
lang,
102106
posts,
103107
title,
104108
"archiveindex.tmpl",
105-
{"archive_name": name,
106-
"is_feed_stale": kw["is_feed_stale"]},
109+
context,
107110
kw,
108111
str(self.name),
109112
page_link,

Diff for: ‎nikola/plugins/task/galleries.py

+3
Original file line numberDiff line numberDiff line change
@@ -240,6 +240,7 @@ def gen_tasks(self):
240240
context["permalink"] = self.site.link("gallery", gallery, lang)
241241
context["enable_comments"] = self.kw['comments_in_galleries']
242242
context["thumbnail_size"] = self.kw["thumbnail_size"]
243+
context["pagekind"] = ["gallery_front"]
243244

244245
if post:
245246
yield {
@@ -261,6 +262,8 @@ def gen_tasks(self):
261262
file_dep += [post.translated_base_path(l) for l in self.kw['translations']]
262263
file_dep_dest += [post.translated_base_path(l) for l in self.kw['translations']]
263264

265+
context["pagekind"] = ["gallery_page"]
266+
264267
yield utils.apply_filters({
265268
'basename': self.name,
266269
'name': dst,

Diff for: ‎nikola/plugins/task/indexes.py

+7-1
Original file line numberDiff line numberDiff line change
@@ -80,7 +80,10 @@ def page_path(i, displayed_i, num_pages, force_addition, extension=None):
8080
indexes_title = kw['indexes_title'](lang) or kw['blog_title'](lang)
8181
self.number_of_pages[lang] = (len(filtered_posts) + kw['index_display_post_count'] - 1) // kw['index_display_post_count']
8282

83-
yield self.site.generic_index_renderer(lang, filtered_posts, indexes_title, template_name, {}, kw, 'render_indexes', page_link, page_path)
83+
context = {}
84+
context["pagekind"] = ["index"]
85+
86+
yield self.site.generic_index_renderer(lang, filtered_posts, indexes_title, template_name, context, kw, 'render_indexes', page_link, page_path)
8487

8588
if not self.site.config["STORY_INDEX"]:
8689
return
@@ -112,6 +115,9 @@ def page_path(i, displayed_i, num_pages, force_addition, extension=None):
112115
if kw['strip_indexes'] and link[-(1 + index_len):] == '/' + kw['index_file']:
113116
link = link[:-index_len]
114117
context["permalink"] = link
118+
context["pagekind"] = ["list"]
119+
if dirnme == "/":
120+
context["pagekind"].append("front_page")
115121

116122
for post in post_list:
117123
# If there is an index.html pending to be created from

Diff for: ‎nikola/plugins/task/listings.py

+1
Original file line numberDiff line numberDiff line change
@@ -149,6 +149,7 @@ def render_listing(in_name, out_name, input_folder, output_folder, folders=[], f
149149
files, alg=natsort.ns.F | natsort.ns.IC),
150150
'description': title,
151151
'source_link': source_link,
152+
'pagekind': ['listing'],
152153
}
153154
self.site.render_template('listing.tmpl', out_name, context)
154155

Diff for: ‎nikola/plugins/task/pages.py

+5-2
Original file line numberDiff line numberDiff line change
@@ -49,8 +49,11 @@ def gen_tasks(self):
4949
for post in self.site.timeline:
5050
if not kw["show_untranslated_posts"] and not post.is_translation_available(lang):
5151
continue
52-
for task in self.site.generic_page_renderer(lang, post,
53-
kw["filters"]):
52+
if post.is_post:
53+
context = {'pagekind': ['post_page',]}
54+
else:
55+
context = {'pagekind': ['pages_page',]}
56+
for task in self.site.generic_page_renderer(lang, post, kw["filters"], context):
5457
task['uptodate'] = task['uptodate'] + [config_changed(kw, 'nikola.plugins.task.pages')]
5558
task['basename'] = self.name
5659
task['task_dep'] = ['render_posts']

Diff for: ‎nikola/plugins/task/tags.py

+3
Original file line numberDiff line numberDiff line change
@@ -219,6 +219,7 @@ def _create_tags_page(self, kw, include_tags=True, include_categories=True):
219219
context["cat_items"] = None
220220
context["permalink"] = self.site.link("tag_index" if has_tags else "category_index", None, lang)
221221
context["description"] = context["title"]
222+
context["pagekind"] = ["list", "tags_page"]
222223
task = self.site.generic_post_list_renderer(
223224
lang,
224225
[],
@@ -284,6 +285,7 @@ def page_path(i, displayed_i, num_pages, force_addition, extension=None):
284285
context_source["description"] = self._get_description(tag, is_category, lang)
285286
if is_category:
286287
context_source["subcategories"] = self._get_subcategories(tag)
288+
context_source["pagekind"] = ["index", "tag_page"]
287289
template_name = "tagindex.tmpl"
288290

289291
yield self.site.generic_index_renderer(lang, post_list, indexes_title, template_name, context_source, kw, str(self.name), page_link, page_path)
@@ -308,6 +310,7 @@ def tag_page_as_list(self, tag, lang, post_list, kw, is_category):
308310
context["description"] = self._get_description(tag, is_category, lang)
309311
if is_category:
310312
context["subcategories"] = self._get_subcategories(tag)
313+
context_source["pagekind"] = ["list", "tag_page"]
311314
task = self.site.generic_post_list_renderer(
312315
lang,
313316
post_list,

0 commit comments

Comments
 (0)
Please sign in to comment.