Mercurial > piecrust2
changeset 83:f9f67086415c
Allow adding to the default content model instead of replacing it.
Allow dot and slash notation for data endpoints.
author | Ludovic Chabant <ludovic@chabant.com> |
---|---|
date | Mon, 01 Sep 2014 22:49:56 -0700 |
parents | ae90caf26224 |
children | 2fb6501ed668 |
files | piecrust/app.py piecrust/data/builder.py |
diffstat | 2 files changed, 27 insertions(+), 4 deletions(-) [+] |
line wrap: on
line diff
--- a/piecrust/app.py Mon Sep 01 14:54:34 2014 -0700 +++ b/piecrust/app.py Mon Sep 01 22:49:56 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,10 +187,11 @@ 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', - 'data_endpoint': 'site/pages', + 'data_endpoint': 'site.pages', 'item_name': 'page'} sitec['sources'] = sourcesc @@ -201,6 +210,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 + '/' @@ -248,6 +258,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')
--- a/piecrust/data/builder.py Mon Sep 01 14:54:34 2014 -0700 +++ b/piecrust/data/builder.py Mon Sep 01 22:49:56 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: