|
@@ -147,20 +147,29 @@ class Tag(object):
|
|
|
|
|
|
context = GLOBAL_TEMPLATE_CONTEXT.copy()
|
|
|
context['tag'] = self
|
|
|
- context['entries'] = self.entries
|
|
|
context['entries'] = _sort_entries(self.entries)
|
|
|
- destination = "%s/tags/%s" % (CONFIG['output_to'], self.slug)
|
|
|
- template = jinja_env.get_template('tag_index.html')
|
|
|
- html = template.render(context)
|
|
|
- file = codecs.open("%s/index.html" % destination,
|
|
|
- 'w', CONFIG['content_encoding'])
|
|
|
- file.write(html)
|
|
|
- file.close()
|
|
|
- render_atom_feed(context['entries'],
|
|
|
- render_to="%s/atom.xml" % destination)
|
|
|
+ sorted_entries = _sort_entries(self.entries)
|
|
|
+ encoding = CONFIG['content_encoding']
|
|
|
+ render_to = "%s/tags/%s" % (CONFIG['output_to'], self.slug)
|
|
|
+
|
|
|
+ jobs = [{'tname': 'tag_index.html',
|
|
|
+ 'output': codecs.open("%s/index.html" % render_to, 'w', encoding),
|
|
|
+ 'entries': sorted_entries},
|
|
|
+ {'tname': 'atom.xml',
|
|
|
+ 'output': codecs.open("%s/atom.xml" % render_to, 'w', encoding),
|
|
|
+ 'entries': sorted_entries[:10]}
|
|
|
+ ]
|
|
|
+
|
|
|
+ for j in jobs:
|
|
|
+ template = jinja_env.get_template(j['tname'])
|
|
|
+ context['entries'] = j['entries']
|
|
|
+ html = template.render(context)
|
|
|
+ j['output'].write(html)
|
|
|
+ j['output'].close()
|
|
|
|
|
|
return True
|
|
|
|
|
|
+
|
|
|
class Entry(object):
|
|
|
|
|
|
def __init__(self, path):
|
|
@@ -332,21 +341,6 @@ def _sort_entries(entries):
|
|
|
return list(reversed(sorted(entries, key=operator.attrgetter('date'))))
|
|
|
|
|
|
|
|
|
-def render_index(entries):
|
|
|
- """
|
|
|
- this function renders the main page located at index.html
|
|
|
- under oz123.github.com
|
|
|
- """
|
|
|
- context = GLOBAL_TEMPLATE_CONTEXT.copy()
|
|
|
- context['entries'] = entries[:10]
|
|
|
- template = jinja_env.get_template('entry_index.html')
|
|
|
- html = template.render(context)
|
|
|
- destination = codecs.open("%s/index.html" % CONFIG[
|
|
|
- 'output_to'], 'w', CONFIG['content_encoding'])
|
|
|
- destination.write(html)
|
|
|
- destination.close()
|
|
|
-
|
|
|
-
|
|
|
def render_archive(entries, render_to=None):
|
|
|
"""
|
|
|
this function creates the archive page
|
|
@@ -365,18 +359,6 @@ def render_archive(entries, render_to=None):
|
|
|
destination.close()
|
|
|
|
|
|
|
|
|
-def render_atom_feed(entries, render_to=None):
|
|
|
- context = GLOBAL_TEMPLATE_CONTEXT.copy()
|
|
|
- context['entries'] = entries[:10]
|
|
|
- template = jinja_env.get_template('atom.xml')
|
|
|
- html = template.render(context)
|
|
|
- if not render_to:
|
|
|
- render_to = "%s/atom.xml" % CONFIG['output_to']
|
|
|
- destination = codecs.open(render_to, 'w', CONFIG['content_encoding'])
|
|
|
- destination.write(html)
|
|
|
- destination.close()
|
|
|
-
|
|
|
-
|
|
|
def find_new_posts(posts_table):
|
|
|
"""
|
|
|
Walk content dir, put each post in the database
|
|
@@ -400,16 +382,21 @@ def update_index():
|
|
|
"""find the last 10 entries in the database and create the main
|
|
|
page.
|
|
|
Each entry in has an eid, so we only get the last 10 eids.
|
|
|
+
|
|
|
+ This method also update the ATOM feed.
|
|
|
"""
|
|
|
entries = _get_last_entries()
|
|
|
context = GLOBAL_TEMPLATE_CONTEXT.copy()
|
|
|
context['entries'] = entries
|
|
|
- template = jinja_env.get_template('entry_index.html')
|
|
|
- html = template.render(context)
|
|
|
- destination = codecs.open("%s/index.html" % CONFIG[
|
|
|
- 'output_to'], 'w', CONFIG['content_encoding'])
|
|
|
- destination.write(html)
|
|
|
- destination.close()
|
|
|
+
|
|
|
+ for name, out in {'entry_index.html': 'index.html',
|
|
|
+ 'atom.xml': 'atom.xml'}.items():
|
|
|
+ template = jinja_env.get_template(name)
|
|
|
+ html = template.render(context)
|
|
|
+ destination = codecs.open("%s/%s" % (CONFIG['output_to'], out),
|
|
|
+ 'w', CONFIG['content_encoding'])
|
|
|
+ destination.write(html)
|
|
|
+ destination.close()
|
|
|
|
|
|
|
|
|
def new_build():
|