--- 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')