# HG changeset patch # User Tero Marttila # Date 1410654707 -10800 # Node ID e55deb0be237a84f94723fdd34789c35792da3c4 # Parent 1407c79961ef6d44043aa42832309e5693e12a4a tree/page title support diff -r 1407c79961ef -r e55deb0be237 qmsk_www_pages/pages.py --- 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): diff -r 1407c79961ef -r e55deb0be237 qmsk_www_pages/templates/pages/page.html --- a/qmsk_www_pages/templates/pages/page.html Sun Sep 14 03:22:57 2014 +0300 +++ b/qmsk_www_pages/templates/pages/page.html Sun Sep 14 03:31:47 2014 +0300 @@ -23,13 +23,13 @@
{% endif %}