summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorMike Crute <mcrute@gmail.com>2010-09-07 23:07:01 -0400
committerMike Crute <mcrute@gmail.com>2010-09-07 23:07:01 -0400
commitfd8deec81aec163af60a27f3527818d829724007 (patch)
tree9120f8021023baee4c1a166264cfc6b7879b0cc8
parent88fd10e4081a721880a5bfe3e143cee8a2e82ddf (diff)
downloadventriloquy-fd8deec81aec163af60a27f3527818d829724007.tar.bz2
ventriloquy-fd8deec81aec163af60a27f3527818d829724007.tar.xz
ventriloquy-fd8deec81aec163af60a27f3527818d829724007.zip
Cleaning up hard-coded data
-rw-r--r--site_builder/__init__.py23
-rw-r--r--site_builder/blogbuilder.py14
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
8""" 8"""
9 9
10import os 10import os
11from os import path
11import jinja2 12import jinja2
12import pagebuilder 13import pagebuilder
13from datetime import datetime 14from datetime import datetime
@@ -15,10 +16,13 @@ from docutils.core import publish_parts
15from docutils.io import FileInput 16from docutils.io import FileInput
16 17
17 18
19TEMPLATES = path.join(path.dirname(path.dirname(__file__)), "templates")
20
21
18def get_template(name): 22def get_template(name):
19 loader = jinja2.FileSystemLoader('ventriloquy/templates') 23 loader = jinja2.FileSystemLoader(TEMPLATES)
20 renderer = jinja2.Environment(loader=loader) 24 renderer = jinja2.Environment(loader=loader)
21 return renderer.get_template(name) 25 return renderer.get_template(name)
22 26
23 27
24def build_standard_page(filename, output_name): 28def build_standard_page(filename, output_name):
@@ -26,7 +30,7 @@ def build_standard_page(filename, output_name):
26 template = get_template('page.html') 30 template = get_template('page.html')
27 31
28 try: 32 try:
29 os.makedirs(os.path.dirname(output_name)) 33 os.makedirs(path.dirname(output_name))
30 except OSError: 34 except OSError:
31 pass # directory exists 35 pass # directory exists
32 36
@@ -37,9 +41,9 @@ def build_standard_page(filename, output_name):
37 41
38 42
39def get_output_name(base_dir, output_dir, filename): 43def get_output_name(base_dir, output_dir, filename):
40 base_depth = len(base_dir.split(os.path.sep)) 44 base_depth = len(base_dir.split(path.sep))
41 out_name = filename.split(os.path.sep)[base_depth:] 45 out_name = filename.split(path.sep)[base_depth:]
42 new_path = os.path.join(output_dir, *out_name) 46 new_path = path.join(output_dir, *out_name)
43 47
44 if new_path.endswith('.rst'): 48 if new_path.endswith('.rst'):
45 new_path = new_path[:-len('.rst')] + '.html' 49 new_path = new_path[:-len('.rst')] + '.html'
@@ -50,12 +54,11 @@ def get_output_name(base_dir, output_dir, filename):
50def build_all(base_dir, output_dir): 54def build_all(base_dir, output_dir):
51 for root, dirs, files in os.walk(base_dir): 55 for root, dirs, files in os.walk(base_dir):
52 for filename in files: 56 for filename in files:
53 if ('personal_blog' in root or 57 if ('blog.cfg' in files or
54 'blog' in root or
55 not filename.endswith('.rst')): 58 not filename.endswith('.rst')):
56 continue 59 continue
57 60
58 old_path = os.path.join(root, filename) 61 old_path = path.join(root, filename)
59 new_path = get_output_name(base_dir, output_dir, old_path) 62 new_path = get_output_name(base_dir, output_dir, old_path)
60 63
61 print "BUILDING: ", old_path 64 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
8""" 8"""
9 9
10import os 10import os
11import json
11import operator 12import operator
12from datetime import datetime 13from datetime import datetime
13from collections import defaultdict 14from collections import defaultdict
@@ -16,12 +17,10 @@ from blog import load_post_index
16from feeds import Atom1Feed 17from feeds import Atom1Feed
17 18
18 19
19def build_feed(output_dir, post_index): 20def build_feed(output_dir, post_index, title, url, feed_url):
20 page_name = os.path.join(output_dir, 'feed.atom') 21 page_name = os.path.join(output_dir, 'feed.atom')
21 feed = Atom1Feed(post_index, "The Random Thoughts of a Programmer", 22 feed = Atom1Feed(post_index, title, feed_url,
22 "http://mike.crute.org/blog/feed", 23 post_index[0].post_date, url)
23 post_index[0].post_date,
24 "http://mike.crute.org/blog")
25 24
26 open(page_name, 'w').write(feed.get_feed()) 25 open(page_name, 'w').write(feed.get_feed())
27 26
@@ -64,6 +63,8 @@ def build_index(output_dir, post_index):
64 63
65 64
66def build_blog(base_dir, output_dir): 65def build_blog(base_dir, output_dir):
66 config = json.load(open(os.path.join(base_dir, 'blog.cfg')))
67
67 post_index = load_post_index(base_dir) 68 post_index = load_post_index(base_dir)
68 post_index.sort(key=operator.attrgetter('post_date'), reverse=True) 69 post_index.sort(key=operator.attrgetter('post_date'), reverse=True)
69 70
@@ -84,5 +85,6 @@ def build_blog(base_dir, output_dir):
84 85
85 build_index(output_dir, post_index) 86 build_index(output_dir, post_index)
86 build_archive(output_dir, post_index) 87 build_archive(output_dir, post_index)
87 build_feed(output_dir, post_index)
88 build_tags(output_dir, post_index) 88 build_tags(output_dir, post_index)
89 build_feed(output_dir, post_index,
90 config['title'], config['blog_url'], config['feed_url'])