]> git.sur5r.net Git - i3/i3.github.io/blob - _controllers/blog/chronological.py
delete obsolete _README
[i3/i3.github.io] / _controllers / blog / chronological.py
1 # Write all the blog posts in reverse chronological order
2 import os
3 from blogofile.cache import bf
4
5 blog = bf.config.controllers.blog
6
7
8 def run():
9     write_blog_chron(posts=blog.posts, root=blog.pagination_dir.lstrip("/"))
10     write_blog_first_page()
11
12
13 def write_blog_chron(posts, root):
14     page_num = 1
15     post_num = 0
16     html = []
17     while len(posts) > post_num:
18         #Write the pages, num_per_page posts per page:
19         page_posts = posts[post_num:post_num + blog.posts_per_page]
20         post_num += blog.posts_per_page
21         if page_num > 1:
22             prev_link = "../" + str(page_num - 1)
23         else:
24             prev_link = None
25         if len(posts) > post_num:
26             next_link = "../" + str(page_num + 1)
27         else:
28             next_link = None
29         page_dir = bf.util.path_join(blog.path, root, str(page_num))
30         fn = bf.util.path_join(page_dir, "index.html")
31         env = {
32             "posts": page_posts,
33             "next_link": next_link,
34             "prev_link": prev_link
35         }
36         bf.writer.materialize_template("chronological.mako", fn, env)
37         page_num += 1
38
39
40 def write_blog_first_page():
41     if not blog.custom_index:
42         page_posts = blog.posts[:blog.posts_per_page]
43         path = bf.util.path_join(blog.path, "index.html")
44         blog.logger.info(u"Writing blog index page: " + path)
45         if len(blog.posts) > blog.posts_per_page:
46             next_link = bf.util.site_path_helper(
47                     blog.path, blog.pagination_dir+"/2")
48         else:
49             next_link = None
50         env = {
51             "posts": page_posts,
52             "next_link": next_link,
53             "prev_link": None
54         }
55         bf.writer.materialize_template("chronological.mako", path, env)