# And now sort by priority. Since Python 2.2 and upwards has stable-sort,
# this effectively makes a two-dimensional sort.
_childs[c].sort(key = lambda x: x[0])
- return
+ visited = {}
+ visited[get_file_for("Home")] = True
+ for f in _parent:
+ visited[f] = True
+ for f in files:
+ file = files[f]
+ if not file.has_key("linktitle"):
+ continue
+ if not visited.has_key(file ):
+ warning("orphan file '%s'" % f)
+
+ return
print "_parent:"
for c in _parent:
print " ", c, _parent[c]
@set_function("get_hierarchical_sitemap")
-def get_hierarchical_sitemap(root="Home", show_orphans=False):
+def get_hierarchical_sitemap(root="Home"):
page = get_current_file()
if not isinstance(root, webber.File):
root = get_file_for(root)
- visited = {root: True}
def do_menu(pg):
res = []
if _childs.has_key(pg):
for p in _childs[pg]:
subpage = p[1]
- visited[subpage] = True
res.append( do_menu(subpage) )
return (pg, get_link_from(root, pg), res)
res = do_menu(root)
- if show_orphans:
- for f in files:
- #print f
- file = files[f]
- if not file.has_key("linktitle"):
- continue
- try:
- if file in visited:
- #print "found", file.linktitle
- continue
- except KeyError:
- continue
- #print "not found:", file.linktitle
- res.append( (file, get_link_from(page, file.title), []) )
-
#import pprint
#pprint.pprint(res, indent=4)
return res
@set_function("get_linear_sitemap")
-def get_linear_sitemap(root="Home", show_orphans=False, level=1):
+def get_linear_sitemap(root="Home", level=1):
page = get_current_file()
if not isinstance(root, webber.File):
root = get_file_for(root)
- visited = {root: None}
res = [(0, root, get_link_from(page, root))]
def do_menu(pg, level):
#print "subpage:", subpage
link = get_link_from(page, subpage)
res.append((level, subpage, link))
- visited[subpage] = None
do_menu(subpage, level+1)
do_menu(root, level)
- #print "visited:", visited
- if show_orphans:
- for f in files:
- #print f
- file = files[f]
- if not file.has_key("linktitle"):
- continue
- try:
- if file in visited:
- #print "found", file.linktitle
- continue
- except KeyError:
- continue
- #print "not found:", file.linktitle
- res.append( (0, file, get_link_from(page, file.title)))
#import pprint
#pprint.pprint(res)
return res
def addPage(res, page):
#print "page:", page
res.append( (page, get_link_from(orig_page, page)) )
- if _childs.has_key(page.title):
- for c in _childs[page.title]:
- addPage(res, get_file_for(c[1]))
+ if _childs.has_key(page):
+ for c in _childs[page]:
+ addPage(res, c[1])
addPage(res, orig_page)
res.sort(cmp = lambda x,y: cmp(y[0].mtime, x[0].mtime))
return res[:max_items]