summaryrefslogtreecommitdiffstats
path: root/nikola/plugins/task/indexes.py
diff options
context:
space:
mode:
authorLibravatarAgustin Henze <tin@sluc.org.ar>2014-06-13 21:51:02 -0300
committerLibravatarAgustin Henze <tin@sluc.org.ar>2014-06-13 21:51:02 -0300
commit58c4878526dec5510f23c812274686787d8724ba (patch)
tree5f2374bc17adb10e15f7e5b4576595d9cc2ef17e /nikola/plugins/task/indexes.py
parentfa50632a9d87c3989566fed3e49c160a132e0d14 (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.py62
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]: