diff piecrust/app.py @ 87:2fb6501ed668

Merge changes.
author Ludovic Chabant <ludovic@chabant.com>
date Wed, 03 Sep 2014 18:49:10 -0700
parents b3ce11b2cf36 f9f67086415c
children 28ea3e69d67e
line wrap: on
line diff
--- a/piecrust/app.py	Wed Sep 03 17:28:10 2014 -0700
+++ b/piecrust/app.py	Wed Sep 03 18:49:10 2014 -0700
@@ -122,7 +122,8 @@
                 'themes_sources': [DEFAULT_THEME_SOURCE],
                 'cache_time': 28800,
                 'display_errors': True,
-                'enable_debug_info': True
+                'enable_debug_info': True,
+                'use_default_content': True
                 }
         sitec = values.get('site')
         if sitec is None:
@@ -168,7 +169,14 @@
 
         # Figure out if we need to validate sources/routes, or auto-generate
         # them from simple blog settings.
-        if 'sources' not in sitec:
+        orig_sources = sitec.get('sources')
+        orig_routes = sitec.get('routes')
+        orig_taxonomies = sitec.get('taxonomies')
+        use_default_content = sitec.get('use_default_content')
+        if (orig_sources is None or orig_routes is None or
+                orig_taxonomies is None or use_default_content):
+
+            # Setup defaults for various settings.
             posts_fs = sitec.setdefault('posts_fs', DEFAULT_POSTS_FS)
             blogsc = sitec.setdefault('blogs', ['posts'])
 
@@ -179,6 +187,7 @@
             g_posts_filters = sitec.get('items_filters')
             g_date_format = sitec.get('date_format', DEFAULT_DATE_FORMAT)
 
+            # The normal pages and tags/categories.
             sourcesc = {}
             sourcesc['pages'] = {
                     'type': 'default',
@@ -202,6 +211,7 @@
                     'term': 'category'}
             sitec['taxonomies'] = taxonomiesc
 
+            # Setup sources/routes/taxonomies for each blog.
             for blog_name in blogsc:
                 blogc = values.get(blog_name, {})
                 url_prefix = blog_name + '/'
@@ -250,6 +260,15 @@
                         'taxonomy': 'categories',
                         'func': 'pccaturl(category)'})
 
+            # If the user defined some additional sources/routes/taxonomies,
+            # append them to the default ones.
+            if orig_sources:
+                sourcesc += orig_sources
+            if orig_routes:
+                routesc + orig_routes
+            if orig_taxonomies:
+                taxonomiesc += orig_taxonomies
+
         # Validate sources/routes.
         sourcesc = sitec.get('sources')
         routesc = sitec.get('routes')