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())