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: