12 import pygraphviz as pgv
16 from amara import bindery
17 from amara.xslt import transform
18 from Cheetah.Template import Template
21 def __init__(self,token,value):
40 return self.inorder(self._root)
45 for x in self.inorder(l.children()):
48 def _add(self,trie, key, content):
52 node = Node(k,content)
57 self._add(ch.children(), key, content)
59 def add(self,key, content):
60 self._add(self._root, key, content)
62 def _graph(self, trie, G):
65 for ch in l.children():
66 G.add_edge(l.token(),ch.token())
67 self._graph(l.children(), G)
70 G = pgv.AGraph(directed=True)
73 G.add_edge("sitemap",ch.token())
74 self._graph(self._root, G)
79 def _menu(self, trie, lang, page, css):
80 html = "<ul%s>\n" % css
83 p = l.value().page(lang)
85 sel = ' class="selected"'
87 html += '<li%s><a href="%s">%s</a>\n' \
88 % (sel,l.value().link(),p.menu())
90 html += '<li%s><a href="%s.en" hreflang="en">%s</a>*\n' \
91 % (sel,l.value().link(), l.value().page('en').menu())
93 html += self._menu(l.children(), lang, page, "")
97 def menu(self,lang,page,cssclass):
100 css = ' class="'+cssclass+'"'
101 return self._menu(self._root, lang, page, css)