Adding initial sitemap, differentiate class directive in tree building.
authorFredrik Unger <fred@tree.se>
Mon, 28 Mar 2011 07:36:02 +0000 (09:36 +0200)
committerFredrik Unger <fred@tree.se>
Mon, 28 Mar 2011 07:36:02 +0000 (09:36 +0200)
src/tree-cutter.py

index 79bd372aee24cbfa0e54495d56a1b02a66da3b8a..35d4bb5a497aec5c57cef445011e5344f632948b 100755 (executable)
@@ -153,9 +153,11 @@ def xsltConvert(doc):
 def genMenu(page,sitemap,slevel,elevel):
   title = None
   sm = []
-  if elevel == MAXLEVEL or elevel == 1:
+  if elevel == MAXLEVEL or elevel == 1 or page == None:
+    html = '<ul>\n'
     sm = sitemap
   else:
+    html = '<ul class="tree">\n'
     idx = sitemap.index(page)
     while (sitemap[idx]['level'] == page['level']):
       idx = idx-1
@@ -165,7 +167,7 @@ def genMenu(page,sitemap,slevel,elevel):
       sm.append(sitemap[idx])
       idx = idx+1
   oldlevel = slevel
-  html = '<ul>\n'
+
   for p in sm:
     if slevel > p['level'] or elevel < p['level']:
       continue
@@ -178,8 +180,8 @@ def genMenu(page,sitemap,slevel,elevel):
       if p['link'][-1] == '/':
         html+='</li>\n'
       html+='</ul>\n</li>\n'
-    if page == p:
-      html+='<li><a href="%s">[%s]</a>' % (p['link'],p['menu'])
+    if page != None and page == p:
+      html+='<li class="selected"><a href="%s">%s</a>' % (p['link'],p['menu'])
     else:
       html+='<li><a href="%s">%s</a>' % (p['link'],p['menu'])
     if p['link'][-1] != '/' or p['link'] == '/':
@@ -205,6 +207,24 @@ def writeToTemplate(page,doc,sitemap):
   for r in page['res']:
       mkdir_p(os.path.dirname(tmptarget+r))
       shutil.copyfile(r, tmptarget+r)
+
+def createSitemap(sitemap):
+  (menu,menuname) = genMenu(None,sitemap,1,MAXLEVEL)
+  template = Template(file=style_tmpl,
+                      searchList=[
+          {'title':'Sitemap'},
+          {'menu':menu},
+          {'article':menu},
+          {'levelmenu':''},
+          {'levelname':''}])
+  outfile = tmptarget+'sitemap.en.html'
+  mkdir_p(os.path.dirname(outfile))
+  out = open(outfile, 'w')
+  out.write(str(template))
+  out.close()
+
+
+
 sitemap = generateSitemap()
 tmptarget = tempfile.mkdtemp()+'/'
 for page in sitemap:
@@ -216,6 +236,8 @@ for page in sitemap:
   writeToTemplate(page,pubdoc,sitemap)
   t2 = time.time()
   print "[%5.2f s]" % (round(t2-t1,2))
+
+createSitemap(sitemap)
 publish(tmptarget, args.output)
 publish(args.style+"css", args.output)
 publish(args.style+"images",args.output)