# HG changeset patch # User Ludovic Chabant # Date 1409795350 25200 # Node ID 2fb6501ed668ab5709fae7a788557716ffa89985 # Parent 1cd67680c38cb52158c5c56f4fd96201289007d1# Parent f9f67086415c017b3daa4cac65e2b05160cf1cd1 Merge changes. diff -r 1cd67680c38c -r 2fb6501ed668 piecrust/app.py --- 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') diff -r 1cd67680c38c -r 2fb6501ed668 piecrust/data/builder.py --- a/piecrust/data/builder.py Wed Sep 03 17:28:10 2014 -0700 +++ b/piecrust/data/builder.py Wed Sep 03 18:49:10 2014 -0700 @@ -1,3 +1,4 @@ +import re import time import logging from piecrust import APP_VERSION @@ -103,11 +104,14 @@ return "The very thing you're looking at!" +re_endpoint_sep = re.compile(r'[\/\.]') + + def build_site_data(page): app = page.app data = dict(app.config.get()) for source in app.sources: - endpoint_bits = source.data_endpoint.split('/') + endpoint_bits = re_endpoint_sep.split(source.data_endpoint) endpoint = data for e in endpoint_bits[:-1]: if e not in endpoint: