--- a/qmsk_www_pages/pages.py Sun Sep 14 03:22:57 2014 +0300
+++ b/qmsk_www_pages/pages.py Sun Sep 14 03:31:47 2014 +0300
@@ -120,17 +120,33 @@
yield path, file_name, file_type
+ def item_title (self, name):
+ """
+ Lookup item title if exists.
+ """
+
+ title_path = os.path.join(self.path, name + '.title')
+
+ log.info("%s: %s title_path=%s", self, name, title_path)
+
+ if os.path.exists(title_path):
+ return open(title_path).read().strip()
+ else:
+ return None
+
def list (self):
"""
Lists all Trees and Pages for this Tree
"""
- for path, file_name, file_type in self.scan():
+ for path, name, file_type in self.scan():
+ title = self.item_title(name) or name
+
# trees
if os.path.isdir(path):
- yield self.url(tree=file_name), file_name, None
+ yield self.url(tree=name), name, None, title
- if file_name == self.INDEX:
+ if name == self.INDEX:
continue
# pages
@@ -139,8 +155,8 @@
if file_type not in TYPES:
continue
-
- yield self.url(page=file_name), file_name, file_type
+
+ yield self.url(page=name), name, file_type, title
def page (self, name):
"""
@@ -167,11 +183,15 @@
continue
# out
+ title = self.item_title(file_name)
+
return page_type(
path = path,
name = name,
tree = self,
parents = self.parents + (self, ),
+
+ title = title,
)
class Page (object):