From fd8deec81aec163af60a27f3527818d829724007 Mon Sep 17 00:00:00 2001 From: Mike Crute Date: Tue, 7 Sep 2010 23:07:01 -0400 Subject: Cleaning up hard-coded data --- site_builder/__init__.py | 23 +++++++++++++---------- site_builder/blogbuilder.py | 14 ++++++++------ 2 files changed, 21 insertions(+), 16 deletions(-) diff --git a/site_builder/__init__.py b/site_builder/__init__.py index f72cd92..c8e9a46 100644 --- a/site_builder/__init__.py +++ b/site_builder/__init__.py @@ -8,6 +8,7 @@ Site Builder """ import os +from os import path import jinja2 import pagebuilder from datetime import datetime @@ -15,10 +16,13 @@ from docutils.core import publish_parts from docutils.io import FileInput +TEMPLATES = path.join(path.dirname(path.dirname(__file__)), "templates") + + def get_template(name): - loader = jinja2.FileSystemLoader('ventriloquy/templates') - renderer = jinja2.Environment(loader=loader) - return renderer.get_template(name) + loader = jinja2.FileSystemLoader(TEMPLATES) + renderer = jinja2.Environment(loader=loader) + return renderer.get_template(name) def build_standard_page(filename, output_name): @@ -26,7 +30,7 @@ def build_standard_page(filename, output_name): template = get_template('page.html') try: - os.makedirs(os.path.dirname(output_name)) + os.makedirs(path.dirname(output_name)) except OSError: pass # directory exists @@ -37,9 +41,9 @@ def build_standard_page(filename, output_name): def get_output_name(base_dir, output_dir, filename): - base_depth = len(base_dir.split(os.path.sep)) - out_name = filename.split(os.path.sep)[base_depth:] - new_path = os.path.join(output_dir, *out_name) + base_depth = len(base_dir.split(path.sep)) + out_name = filename.split(path.sep)[base_depth:] + new_path = path.join(output_dir, *out_name) if new_path.endswith('.rst'): new_path = new_path[:-len('.rst')] + '.html' @@ -50,12 +54,11 @@ def get_output_name(base_dir, output_dir, filename): def build_all(base_dir, output_dir): for root, dirs, files in os.walk(base_dir): for filename in files: - if ('personal_blog' in root or - 'blog' in root or + if ('blog.cfg' in files or not filename.endswith('.rst')): continue - old_path = os.path.join(root, filename) + old_path = path.join(root, filename) new_path = get_output_name(base_dir, output_dir, old_path) print "BUILDING: ", old_path diff --git a/site_builder/blogbuilder.py b/site_builder/blogbuilder.py index ebe77c0..52e77d8 100644 --- a/site_builder/blogbuilder.py +++ b/site_builder/blogbuilder.py @@ -8,6 +8,7 @@ Blog Builder """ import os +import json import operator from datetime import datetime from collections import defaultdict @@ -16,12 +17,10 @@ from blog import load_post_index from feeds import Atom1Feed -def build_feed(output_dir, post_index): +def build_feed(output_dir, post_index, title, url, feed_url): page_name = os.path.join(output_dir, 'feed.atom') - feed = Atom1Feed(post_index, "The Random Thoughts of a Programmer", - "http://mike.crute.org/blog/feed", - post_index[0].post_date, - "http://mike.crute.org/blog") + feed = Atom1Feed(post_index, title, feed_url, + post_index[0].post_date, url) open(page_name, 'w').write(feed.get_feed()) @@ -64,6 +63,8 @@ def build_index(output_dir, post_index): def build_blog(base_dir, output_dir): + config = json.load(open(os.path.join(base_dir, 'blog.cfg'))) + post_index = load_post_index(base_dir) post_index.sort(key=operator.attrgetter('post_date'), reverse=True) @@ -84,5 +85,6 @@ def build_blog(base_dir, output_dir): build_index(output_dir, post_index) build_archive(output_dir, post_index) - build_feed(output_dir, post_index) build_tags(output_dir, post_index) + build_feed(output_dir, post_index, + config['title'], config['blog_url'], config['feed_url']) -- cgit v1.2.3