Przeglądaj źródła

misc stuff related to refactoring

Oz N Tiram 9 lat temu
rodzic
commit
a83e628dd9
1 zmienionych plików z 17 dodań i 33 usunięć
  1. 17 33
      blogit/blogit.py

+ 17 - 33
blogit/blogit.py

@@ -133,11 +133,12 @@ class Entry(object):
 
     .. code:
 
+        ---
         title: example page
         public: yes
         kind: page
         template: about.html
-
+        ---
         # some heading
 
         content paragraph
@@ -150,6 +151,7 @@ class Entry(object):
 
     .. code:
 
+        ---
         title: Blog post 1
         author: Famous author
         published: 2015-01-11
@@ -157,9 +159,8 @@ class Entry(object):
         public: yes
         chronological: yes
         kind: writing
-        summary: |
-            This is a summry of post 1. Donec id elit non mi porta
-            ...
+        summary: This is a summry of post 1. Donec id elit non mi porta
+        ---
 
         This is the body of post 1. Donec id elit non mi porta gravida
     """
@@ -333,44 +334,26 @@ def _get_last_entries():
     return entries
 
 
-def update_index():
+def update_index(entries):
     """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 updates the ATOM feed.
     """
-    entries = _get_last_entries()
     context = GLOBAL_TEMPLATE_CONTEXT.copy()
     context['entries'] = entries
 
-    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()
-
+    map(lambda x: _render(
+        context, x[0], os.path.join(CONFIG['output_to'], x[1])),
+        (('entry_index.html', 'index.html'), ('atom.xml', 'atom.xml')))
 
-def new_build():
-    """
 
-        a. For each new post:
-        1. render html
-        2. find post tags
-        3. update atom feeds for old tags
-        4. create new atom feeds for new tags
+def build():
+    """Incremental build of the website"""
 
-    b. update index page
-    c. update archive page
-
-    """
-    print
-    print "Rendering website now..."
-    print
-    print " entries:"
+    print("\nRendering website now...\n")
+    print(entries:")
     tags = dict()
     root = CONFIG['content_root']
     for post_id, post in find_new_posts_and_pages(DB):
@@ -386,9 +369,9 @@ def new_build():
         print "updating tag %s" % name
         to.render()
 
-    # update index
+        # update index
     print "updating index"
-    update_index()
+    update_index(_get_last_entries)
 
     # update archive
     print "updating archive"
@@ -447,6 +430,7 @@ def new_post(GITDIRECTORY=CONFIG['output_to'],
     This function should create a template for a new post with a title
     read from the user input.
     Most other fields should be defaults.
+    TODO: update this function
     """
     title = raw_input("Give the title of the post: ")
     while ':' in title:
@@ -521,7 +505,7 @@ def main():   # pragma: no coverage
     if args.clean:
         clean()
     if args.build:
-        new_build()
+        build()
     if args.dist:
         dist()
     if args.preview: