comparison piecrust/data/builder.py @ 172:4fc1d306046b

linker: Actually implement the `Linker` class, and use it in the page data.
author Ludovic Chabant <ludovic@chabant.com>
date Sat, 03 Jan 2015 20:52:19 -0800
parents a643b14a59a3
children 1446dbc42d39
comparison
equal deleted inserted replaced
171:d5991525801d 172:4fc1d306046b
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 Linker, RecursiveLinker
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 linker = Linker(page) 39 flat_linker = Linker(page.source, page_path=page.rel_path)
40 recursive_linker = RecursiveLinker(page.source, page_path=page.rel_path)
40 data = { 41 data = {
41 'piecrust': pc_data, 42 'piecrust': pc_data,
42 'page': dict(page.config.get()), 43 'page': dict(page.config.get()),
43 'assets': assetor, 44 'assets': assetor,
44 'pagination': paginator, 45 'pagination': paginator,
45 'siblings': linker, 46 'siblings': flat_linker,
46 'family': linker 47 'family': recursive_linker
47 } 48 }
48 page_data = data['page'] 49 page_data = data['page']
49 page_data['url'] = ctx.uri 50 page_data['url'] = ctx.uri
50 page_data['slug'] = ctx.slug 51 page_data['slug'] = ctx.slug
51 page_data['timestamp'] = time.mktime(page.datetime.timetuple()) 52 page_data['timestamp'] = time.mktime(page.datetime.timetuple())