]> git.phdru.name Git - phdru.name/phdru.name.git/blobdiff - gen-sitemap.py
Feat(blog): Encode tags
[phdru.name/phdru.name.git] / gen-sitemap.py
index 088f83819e4c8d491fa0ac69e4eb8ab632c3cb06..32c729dfabefcc7d9047e9c2a442aaae46bb8ed6 100755 (executable)
@@ -12,10 +12,11 @@ parser.add_argument('root_dir', help='Root dicrectory')
 args = parser.parse_args()
 
 exclude = []
-for pat in args.exclude:
-    exclude.append(pat)
-    if not pat.endswith('/*'):
-        exclude.append(pat + '/*')
+if args.exclude:
+    for pat in args.exclude:
+        exclude.append(pat)
+        if not pat.endswith('/*'):
+            exclude.append(pat + '/*')
 
 os.chdir(args.root_dir)
 fullpath = os.getcwd()
@@ -48,24 +49,29 @@ for dirpath, dirs, files in sorted(os.walk(fullpath)):
     except StopIteration:
         pass
 
-def _tree2html(tree, level=0):
-    indent = "  " * level
-    strings = []
-    strings.append(indent + "<ul>")
-
-    level += 1
-    indent2 = "  " * level
-
+def _tree2html(tree, path='', level=0):
+    subparts = []
+    indent = "  " * (level + 1)
     for title, subtree in tree:
+        subpath = "%s/%s" % (path, title)
+        if subpath.startswith('/'):
+            subpath = subpath[1:]
+        href = '<a href="%s/">%s</a>' % (subpath, title)
         if subtree:
-            strings.append(indent2 + "<li>%s" % title)
-            strings.append(_tree2html(subtree, level+1))
-            strings.append(indent2 + "</li>")
+            subparts.append(indent + "<li>%s" % href)
+            subparts.append(_tree2html(subtree, subpath, level+2))
+            subparts.append(indent + "</li>")
         else:
-            strings.append(indent2 + "<li>%s</li>" % title)
+            subparts.append(indent + "<li>%s</li>" % href)
+    s = "\n".join(subparts)
+
+    parts = []
+    indent = "  " * level
+    parts.append(indent + "<ul>")
+    parts.append(s)
+    parts.append(indent + "</ul>")
 
-    strings.append(indent + "</ul>")
-    return '\n'.join(strings)
+    return "\n".join(parts)
 
 sitemap_tmpl = ["""\
 #extends phd_site