diff -r 2a47b00f60b0 -r d83b10c210e3 lib/page.py --- a/lib/page.py Fri Feb 06 23:21:24 2009 +0200 +++ b/lib/page.py Fri Feb 06 23:55:23 2009 +0200 @@ -65,6 +65,10 @@ Add item to pages list """ + # remove index from URL + if url.endswith('/index') or url == 'index' : + url = url[:-len('/index')] + self.pages.append((url, title)) def get_title (self, page) : @@ -120,6 +124,9 @@ self.basename = basename self.url_tail = url_tail + # unbound + self.request = None + # sub-init self._init() @@ -130,6 +137,13 @@ pass + def bind_request (self, request) : + """ + Bind this page-render to the given request + """ + + self.request = request + @property def title (self) : """ @@ -179,7 +193,9 @@ Loads the .tmpl file, and renders it """ - return template.render_file(self.path) + return template.render_file(self.path, + request = self.request, + ) # list of page handlers, by type TYPE_HANDLERS = [ @@ -215,17 +231,19 @@ segments = name.split('/') # iterate through the parts of the page segments - while segments : + while True : + segment = None + # pop segment - segment = segments.pop(0) + if segments : + segment = segments.pop(0) - # add to page url - url_segments.append(segment) + url_segments.append(segment) # translate empty -> index if not segment : segment = 'index' - + # look for it in the dir for filename in os.listdir(path) : # build full file path @@ -254,6 +272,10 @@ # inspect next file in dir continue + else : + # did not find any dir or file, break out of while loop + break + # did not find the filename we were looking for in os.listdir raise PageError("Page not found: %s" % name, status='404 Not Found')