Mercurial > piecrust2
diff piecrust/serving.py @ 11:617191dec18e
Fixes for Windows, make `findPagePath` return a ref path.
author | Ludovic Chabant <ludovic@chabant.com> |
---|---|
date | Mon, 18 Aug 2014 16:47:44 -0700 |
parents | 343d08ef5668 |
children | 2f717f961996 |
line wrap: on
line diff
--- a/piecrust/serving.py Sun Aug 17 21:18:48 2014 -0700 +++ b/piecrust/serving.py Mon Aug 18 16:47:44 2014 -0700 @@ -1,6 +1,7 @@ import re import gzip import time +import os import os.path import hashlib import logging @@ -17,7 +18,7 @@ from piecrust.page import Page from piecrust.processing.base import ProcessorPipeline from piecrust.rendering import PageRenderingContext, render_page -from piecrust.sources.base import MODE_PARSING +from piecrust.sources.base import PageFactory, MODE_PARSING logger = logging.getLogger(__name__) @@ -103,7 +104,7 @@ def _try_serve_asset(self, app, environ, request): logger.debug("Searching for asset with path: %s" % request.path) - rel_req_path = request.path.lstrip('/') + rel_req_path = request.path.lstrip('/').replace('/', os.sep) entry = self._record.findEntry(rel_req_path) if entry is None: return None @@ -161,16 +162,16 @@ for route, route_metadata in routes: source = app.getSource(route.source_name) if route.taxonomy is None: - path, fac_metadata = source.findPagePath( + rel_path, fac_metadata = source.findPagePath( route_metadata, MODE_PARSING) - if path is not None: + if rel_path is not None: break else: taxonomy = app.getTaxonomy(route.taxonomy) term_value = route_metadata.get(taxonomy.term_name) if term_value is not None: tax_page_ref = taxonomy.getPageRef(source.name) - path = tax_page_ref.path + rel_path = tax_page_ref.rel_path source = tax_page_ref.source fac_metadata = {taxonomy.term_name: term_value} break @@ -180,7 +181,8 @@ (req_path, [r.source_name for r, _ in routes])) # Build the page and render it. - page = Page(source, fac_metadata, path) + fac = PageFactory(source, rel_path, fac_metadata) + page = fac.buildPage() render_ctx = PageRenderingContext(page, req_path, page_num) if taxonomy is not None: flt = PaginationFilter()