diff options
| author | 2014-06-13 21:51:02 -0300 | |
|---|---|---|
| committer | 2014-06-13 21:51:02 -0300 | |
| commit | 58c4878526dec5510f23c812274686787d8724ba (patch) | |
| tree | 5f2374bc17adb10e15f7e5b4576595d9cc2ef17e /nikola/plugins/task/indexes.py | |
| parent | fa50632a9d87c3989566fed3e49c160a132e0d14 (diff) | |
Imported Upstream version 7.0.1upstream/7.0.1
Diffstat (limited to 'nikola/plugins/task/indexes.py')
| -rw-r--r-- | nikola/plugins/task/indexes.py | 62 |
1 files changed, 31 insertions, 31 deletions
diff --git a/nikola/plugins/task/indexes.py b/nikola/plugins/task/indexes.py index 3f45161..386cc18 100644 --- a/nikola/plugins/task/indexes.py +++ b/nikola/plugins/task/indexes.py @@ -25,8 +25,7 @@ # SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. from __future__ import unicode_literals -import glob -import itertools +from collections import defaultdict import os from nikola.plugin_categories import Task @@ -54,22 +53,23 @@ class Indexes(Task): "index_teasers": self.site.config['INDEX_TEASERS'], "output_folder": self.site.config['OUTPUT_FOLDER'], "filters": self.site.config['FILTERS'], - "hide_untranslated_posts": self.site.config['HIDE_UNTRANSLATED_POSTS'], + "show_untranslated_posts": self.site.config['SHOW_UNTRANSLATED_POSTS'], "indexes_title": self.site.config['INDEXES_TITLE'], "indexes_pages": self.site.config['INDEXES_PAGES'], "indexes_pages_main": self.site.config['INDEXES_PAGES_MAIN'], "blog_title": self.site.config["BLOG_TITLE"], + "rss_read_more_link": self.site.config["RSS_READ_MORE_LINK"], } template_name = "index.tmpl" - posts = [x for x in self.site.timeline if x.use_in_feeds] + posts = self.site.posts for lang in kw["translations"]: # Split in smaller lists lists = [] - if kw["hide_untranslated_posts"]: - filtered_posts = [x for x in posts if x.is_translation_available(lang)] - else: + if kw["show_untranslated_posts"]: filtered_posts = posts + else: + filtered_posts = [x for x in posts if x.is_translation_available(lang)] lists.append(filtered_posts[:kw["index_display_post_count"]]) filtered_posts = filtered_posts[kw["index_display_post_count"]:] while filtered_posts: @@ -78,7 +78,7 @@ class Indexes(Task): num_pages = len(lists) for i, post_list in enumerate(lists): context = {} - indexes_title = kw['indexes_title'] or kw['blog_title'] + indexes_title = kw['indexes_title'] or kw['blog_title'](lang) if kw["indexes_pages_main"]: ipages_i = i + 1 ipages_msg = "page %d" @@ -134,33 +134,33 @@ class Indexes(Task): "post_pages": self.site.config["post_pages"], "output_folder": self.site.config['OUTPUT_FOLDER'], "filters": self.site.config['FILTERS'], + "index_file": self.site.config['INDEX_FILE'], } template_name = "list.tmpl" for lang in kw["translations"]: # Need to group by folder to avoid duplicated tasks (Issue #758) - for dirname, wildcards in itertools.groupby((w for w, d, x, i in kw["post_pages"] if not i), os.path.dirname): - context = {} - # vim/pyflakes thinks it's unused - # src_dir = os.path.dirname(wildcard) - files = [] - for wildcard in wildcards: - files += glob.glob(wildcard) - post_list = [self.site.global_data[p] for p in files] - output_name = os.path.join(kw["output_folder"], - self.site.path("post_path", - wildcard, - lang)).encode('utf8') - context["items"] = [(post.title(lang), post.permalink(lang)) - for post in post_list] - task = self.site.generic_post_list_renderer(lang, post_list, - output_name, - template_name, - kw['filters'], - context) - task_cfg = {1: task['uptodate'][0].config, 2: kw} - task['uptodate'] = [config_changed(task_cfg)] - task['basename'] = self.name - yield task + # Group all pages by path prefix + groups = defaultdict(list) + for p in self.site.timeline: + if not p.is_post: + dirname = os.path.dirname(p.destination_path(lang)) + groups[dirname].append(p) + for dirname, post_list in groups.items(): + context = {} + context["items"] = [ + (post.title(lang), post.permalink(lang)) + for post in post_list + ] + output_name = os.path.join(kw['output_folder'], dirname, kw['index_file']) + task = self.site.generic_post_list_renderer(lang, post_list, + output_name, + template_name, + kw['filters'], + context) + task_cfg = {1: task['uptodate'][0].config, 2: kw} + task['uptodate'] = [config_changed(task_cfg)] + task['basename'] = self.name + yield task def index_path(self, name, lang): if name not in [None, 0]: |
