diff options
author | guyzmo <guyzmo@leloop.org> | 2011-01-14 11:51:54 +0100 |
---|---|---|
committer | guyzmo <guyzmo@leloop.org> | 2011-01-14 11:51:54 +0100 |
commit | 48c34a6f62e12f7cb2a7a710dc99cb8d53957cfe (patch) | |
tree | f2fd775016309f35ea57a1ee071a9d7231a193f3 /_controllers/blog/permapage.py |
init
Diffstat (limited to '_controllers/blog/permapage.py')
-rw-r--r-- | _controllers/blog/permapage.py | 38 |
1 files changed, 38 insertions, 0 deletions
diff --git a/_controllers/blog/permapage.py b/_controllers/blog/permapage.py new file mode 100644 index 0000000..37d0f4f --- /dev/null +++ b/_controllers/blog/permapage.py @@ -0,0 +1,38 @@ +import urlparse +from blogofile.cache import bf +import re + +blog = bf.config.controllers.blog + + +def run(): + write_permapages() + + +def write_permapages(): + "Write blog posts to their permalink locations" + site_re = re.compile(bf.config.site.url, re.IGNORECASE) + num_posts = len(blog.posts) + + for i, post in enumerate(blog.posts): + if post.permalink: + path = site_re.sub("", post.permalink) + blog.logger.info("Writing permapage for post: {0}".format(path)) + else: + #Permalinks MUST be specified. No permalink, no page. + blog.logger.info("Post has no permalink: {0}".format(post.title)) + continue + + env = { + "post": post, + "posts": blog.posts + } + + #Find the next and previous posts chronologically + if i < num_posts - 1: + env['prev_post'] = blog.posts[i + 1] + if i > 0: + env['next_post'] = blog.posts[i - 1] + + bf.writer.materialize_template( + "permapage.mako", bf.util.path_join(path, "index.html"), env) |