Mercurial > piecrust2
comparison piecrust/processing/sitemap.py @ 430:21e26ed867b6
internal: Create full route metadata in one place.
Instead of combining things at different moments to make up route metadata,
build it once and for all up-front and use that.
author | Ludovic Chabant <ludovic@chabant.com> |
---|---|
date | Sat, 27 Jun 2015 08:27:35 -0700 |
parents | 7081a5f88e10 |
children | 62274d805a6e |
comparison
equal
deleted
inserted
replaced
429:ca5a3c970263 | 430:21e26ed867b6 |
---|---|
1 import time | 1 import time |
2 import logging | 2 import logging |
3 import yaml | 3 import yaml |
4 from piecrust.processing.base import SimpleFileProcessor | 4 from piecrust.processing.base import SimpleFileProcessor |
5 from piecrust.routing import create_route_metadata | |
5 | 6 |
6 | 7 |
7 logger = logging.getLogger(__name__) | 8 logger = logging.getLogger(__name__) |
8 | 9 |
9 | 10 |
58 if not source_names: | 59 if not source_names: |
59 return | 60 return |
60 | 61 |
61 for name in source_names: | 62 for name in source_names: |
62 logger.debug("Generating automatic sitemap entries for '%s'." % | 63 logger.debug("Generating automatic sitemap entries for '%s'." % |
63 name) | 64 name) |
64 source = self.app.getSource(name) | 65 source = self.app.getSource(name) |
65 if source is None: | 66 if source is None: |
66 raise Exception("No such source: %s" % name) | 67 raise Exception("No such source: %s" % name) |
67 | 68 |
68 for page in source.getPages(): | 69 for page in source.getPages(): |
69 route = self.app.getRoute(source.name, page.source_metadata) | 70 route_metadata = create_route_metadata(page) |
70 uri = route.getUri(page.source_metadata, provider=page) | 71 route = self.app.getRoute(source.name, route_metadata) |
72 uri = route.getUri(route_metadata) | |
71 | 73 |
72 t = page.datetime.timestamp() | 74 t = page.datetime.timestamp() |
73 sm_cfg = page.config.get('sitemap') | 75 sm_cfg = page.config.get('sitemap') |
74 | 76 |
75 args = {'url': uri, 'lastmod': strftime_iso8601(t)} | 77 args = {'url': uri, 'lastmod': strftime_iso8601(t)} |