comparison piecrust/data/paginationdata.py @ 711:ab5c6a8ae90a

bake: Replace hard-coded taxonomy support with "generator" system. * Taxonomies are now implemented one or more `TaxonomyGenerator`s. * A `BlogArchivesGenerator` stub is there but non-functional.
author Ludovic Chabant <ludovic@chabant.com>
date Thu, 26 May 2016 19:52:47 -0700
parents 32c7c2d219d2
children d4408fbbbc7d
comparison
equal deleted inserted replaced
710:e85f29b28b84 711:ab5c6a8ae90a
15 page = self._page 15 page = self._page
16 if self._route is None: 16 if self._route is None:
17 # TODO: this is not quite correct, as we're missing parts of the 17 # TODO: this is not quite correct, as we're missing parts of the
18 # route metadata if the current page is a taxonomy page. 18 # route metadata if the current page is a taxonomy page.
19 route_metadata = create_route_metadata(page) 19 route_metadata = create_route_metadata(page)
20 self._route = page.app.getRoute(page.source.name, route_metadata) 20 self._route = page.app.getSourceRoute(page.source.name, route_metadata)
21 self._route_metadata = route_metadata 21 self._route_metadata = route_metadata
22 if self._route is None: 22 if self._route is None:
23 raise Exception("Can't get route for page: %s" % page.path) 23 raise Exception("Can't get route for page: %s" % page.path)
24 return self._route.getUri(self._route_metadata) 24 return self._route.getUri(self._route_metadata)
25 25
64 qp = QualifiedPage(self._page, self._route, 64 qp = QualifiedPage(self._page, self._route,
65 self._route_metadata) 65 self._route_metadata)
66 ctx = PageRenderingContext(qp) 66 ctx = PageRenderingContext(qp)
67 render_result = render_page_segments(ctx) 67 render_result = render_page_segments(ctx)
68 segs = render_result.segments 68 segs = render_result.segments
69 except Exception as e: 69 except Exception as ex:
70 logger.exception(ex)
70 raise Exception( 71 raise Exception(
71 "Error rendering segments for '%s'" % uri) from e 72 "Error rendering segments for '%s'" % uri) from ex
72 else: 73 else:
73 segs = {} 74 segs = {}
74 for name in self._page.config.get('segments'): 75 for name in self._page.config.get('segments'):
75 segs[name] = "<unavailable: current page>" 76 segs[name] = "<unavailable: current page>"
76 77