]> git.phdru.name Git - phdru.name/phdru.name.git/blobdiff - gen-sitemap.py
gen-sitemap: refactoring
[phdru.name/phdru.name.git] / gen-sitemap.py
index 63b34a2ff5ce9af1df3e161410d56205de97d76b..aaff97a7c3001f77707b32876da324d3bc20b73a 100755 (executable)
@@ -49,22 +49,39 @@ for dirpath, dirs, files in sorted(os.walk(fullpath)):
         pass
 
 def _tree2html(tree, level=0):
-    indent = "  " * level
-    strings = []
-    strings.append(indent + "<ul>")
-
-    level += 1
-    indent2 = "  " * level
-
+    subparts = []
+    indent = "  " * (level + 1)
     for title, subtree in tree:
         if subtree:
-            strings.append(indent2 + "<li>%s" % title)
-            strings.append(_tree2html(subtree, level+1))
-            strings.append(indent2 + "</li>")
+            subparts.append(indent + "<li>%s" % title)
+            subparts.append(_tree2html(subtree, level+2))
+            subparts.append(indent + "</li>")
         else:
-            strings.append(indent2 + "<li>%s</li>" % title)
+            subparts.append(indent + "<li>%s</li>" % title)
+    s = "\n".join(subparts)
+
+    parts = []
+    indent = "  " * level
+    parts.append(indent + "<ul>")
+    parts.append(s)
+    parts.append(indent + "</ul>")
+
+    return "\n".join(parts)
+
+sitemap_tmpl = ["""\
+#extends phd_site
+#implements respond
+#attr $Title = 'Sitemap'
+#attr $Copyright = 2015
+##
+#def body_html
+"""]
+
+sitemap_tmpl.append(_tree2html(tree[1]))
 
-    strings.append(indent + "</ul>")
-    return '\n'.join(strings)
+sitemap_tmpl.append("""
+#end def
+$phd_site.respond(self)
+""")
 
-write_if_changed("sitemap.html", _tree2html(tree[1]))
+write_if_changed("sitemap.tmpl", ''.join(sitemap_tmpl))