Mercurial > piecrust2
comparison piecrust/data/base.py @ 329:422052d2e978
internal: Try handling URLs in a consistent way.
* Now URLs passed to, and returned from, routes will always be absolute URLs,
i.e. URLs including the site root.
* Validate the site root at config loading time to make sure it starts and ends
with a slash.
* Get rid of unused stuff.
* Add tests.
author | Ludovic Chabant <ludovic@chabant.com> |
---|---|
date | Tue, 31 Mar 2015 23:03:28 -0700 |
parents | da5e6e00fb41 |
children | 4b1019bb2533 |
comparison
equal
deleted
inserted
replaced
328:2a5996e0d3ec | 329:422052d2e978 |
---|---|
1 import time | 1 import time |
2 import logging | 2 import logging |
3 from piecrust.data.assetor import Assetor | 3 from piecrust.data.assetor import Assetor |
4 from piecrust.uriutil import get_slug | 4 from piecrust.uriutil import split_uri |
5 | 5 |
6 | 6 |
7 logger = logging.getLogger(__name__) | 7 logger = logging.getLogger(__name__) |
8 | 8 |
9 | 9 |
127 raise Exception("Can't get route for page: %s" % page.path) | 127 raise Exception("Can't get route for page: %s" % page.path) |
128 return route.getUri(page.source_metadata, provider=page) | 128 return route.getUri(page.source_metadata, provider=page) |
129 | 129 |
130 def _loadCustom(self): | 130 def _loadCustom(self): |
131 page_url = self._get_uri() | 131 page_url = self._get_uri() |
132 _, slug = split_uri(self.page.app, page_url) | |
132 self._setValue('url', page_url) | 133 self._setValue('url', page_url) |
133 self._setValue('slug', get_slug(self._page.app, page_url)) | 134 self._setValue('slug', slug) |
134 self._setValue( | 135 self._setValue( |
135 'timestamp', | 136 'timestamp', |
136 time.mktime(self.page.datetime.timetuple())) | 137 time.mktime(self.page.datetime.timetuple())) |
137 date_format = self.page.app.config.get('site/date_format') | 138 date_format = self.page.app.config.get('site/date_format') |
138 if date_format: | 139 if date_format: |