Mercurial > piecrust2
comparison piecrust/data/builder.py @ 247:d9d5c5de02a8
data: Add a top level wrapper for `Linker`.
The `family` object is special in that it's "attached" to the current page, so make an object dedicated to that. It removes special code in `Linker`, and makes it possible to go `family.children` directly to get a page's children (i.e. pages in a directory of the same name).
author | Ludovic Chabant <ludovic@chabant.com> |
---|---|
date | Thu, 19 Feb 2015 23:33:54 -0800 |
parents | 879fe1457e48 |
children | b7ab1b503510 |
comparison
equal
deleted
inserted
replaced
242:f130365568ff | 247:d9d5c5de02a8 |
---|---|
3 import logging | 3 import logging |
4 from piecrust import APP_VERSION | 4 from piecrust import APP_VERSION |
5 from piecrust.configuration import merge_dicts | 5 from piecrust.configuration import merge_dicts |
6 from piecrust.data.assetor import Assetor | 6 from piecrust.data.assetor import Assetor |
7 from piecrust.data.debug import build_debug_info | 7 from piecrust.data.debug import build_debug_info |
8 from piecrust.data.linker import Linker | 8 from piecrust.data.linker import PageLinkerData |
9 from piecrust.data.paginator import Paginator | 9 from piecrust.data.paginator import Paginator |
10 from piecrust.uriutil import get_slug, get_first_sub_uri | 10 from piecrust.uriutil import get_slug, get_first_sub_uri |
11 | 11 |
12 | 12 |
13 logger = logging.getLogger(__name__) | 13 logger = logging.getLogger(__name__) |
34 pc_data = PieCrustData() | 34 pc_data = PieCrustData() |
35 pgn_source = ctx.pagination_source or get_default_pagination_source(page) | 35 pgn_source = ctx.pagination_source or get_default_pagination_source(page) |
36 paginator = Paginator(page, pgn_source, first_uri, ctx.page_num, | 36 paginator = Paginator(page, pgn_source, first_uri, ctx.page_num, |
37 ctx.pagination_filter) | 37 ctx.pagination_filter) |
38 assetor = Assetor(page, first_uri) | 38 assetor = Assetor(page, first_uri) |
39 recursive_linker = Linker(page.source, page_path=page.rel_path) | 39 linker = PageLinkerData(page.source, page.rel_path) |
40 data = { | 40 data = { |
41 'piecrust': pc_data, | 41 'piecrust': pc_data, |
42 'page': dict(page.config.get()), | 42 'page': dict(page.config.get()), |
43 'assets': assetor, | 43 'assets': assetor, |
44 'pagination': paginator, | 44 'pagination': paginator, |
45 'family': recursive_linker | 45 'family': linker |
46 } | 46 } |
47 page_data = data['page'] | 47 page_data = data['page'] |
48 page_data['url'] = ctx.uri | 48 page_data['url'] = ctx.uri |
49 page_data['slug'] = ctx.slug | 49 page_data['slug'] = ctx.slug |
50 page_data['timestamp'] = time.mktime(page.datetime.timetuple()) | 50 page_data['timestamp'] = time.mktime(page.datetime.timetuple()) |