Mercurial > piecrust2
comparison piecrust/data/builder.py @ 802:0da1207472d3
templating: Put the routing functions in the data, not the template engine.
author | Ludovic Chabant <ludovic@chabant.com> |
---|---|
date | Thu, 29 Sep 2016 21:52:18 -0700 |
parents | 606f6d57b5df |
children | 7f235e65ef5d |
comparison
equal
deleted
inserted
replaced
801:87df68be4cc8 | 802:0da1207472d3 |
---|---|
5 from piecrust.data.linker import PageLinkerData | 5 from piecrust.data.linker import PageLinkerData |
6 from piecrust.data.pagedata import PageData | 6 from piecrust.data.pagedata import PageData |
7 from piecrust.data.paginator import Paginator | 7 from piecrust.data.paginator import Paginator |
8 from piecrust.data.piecrustdata import PieCrustData | 8 from piecrust.data.piecrustdata import PieCrustData |
9 from piecrust.data.providersdata import DataProvidersData | 9 from piecrust.data.providersdata import DataProvidersData |
10 from piecrust.routing import CompositeRouteFunction | |
10 | 11 |
11 | 12 |
12 logger = logging.getLogger(__name__) | 13 logger = logging.getLogger(__name__) |
13 | 14 |
14 | 15 |
47 'assets': assetor, | 48 'assets': assetor, |
48 'pagination': paginator, | 49 'pagination': paginator, |
49 'family': linker | 50 'family': linker |
50 } | 51 } |
51 | 52 |
53 for route in app.routes: | |
54 name = route.func_name | |
55 func = data.get(name) | |
56 if func is None: | |
57 func = CompositeRouteFunction() | |
58 func.addFunc(route) | |
59 data[name] = func | |
60 elif isinstance(func, CompositeRouteFunction): | |
61 func.addFunc(route) | |
62 else: | |
63 raise Exception("Route function '%s' collides with an " | |
64 "existing function or template data." % | |
65 name) | |
66 | |
52 #TODO: handle slugified taxonomy terms. | 67 #TODO: handle slugified taxonomy terms. |
53 | 68 |
54 site_data = app.config.getAll() | 69 site_data = app.config.getAll() |
55 providers_data = DataProvidersData(page) | 70 providers_data = DataProvidersData(page) |
56 data = MergedMapping([data, providers_data, site_data]) | 71 data = MergedMapping([data, providers_data, site_data]) |