X-Git-Url: https://git.phdru.name/?a=blobdiff_plain;f=gen-sitemap.py;h=aaff97a7c3001f77707b32876da324d3bc20b73a;hb=26713dc072157f98578ef6fc2a60288c2b155326;hp=b6ab57d8be254160c17af11d82e1fe3282e26498;hpb=deb1c3b89079430679d9cc459a2b272fb004b40c;p=phdru.name%2Fphdru.name.git diff --git a/gen-sitemap.py b/gen-sitemap.py index b6ab57d..aaff97a 100755 --- a/gen-sitemap.py +++ b/gen-sitemap.py @@ -3,6 +3,7 @@ import argparse from fnmatch import fnmatch import os +from news import write_if_changed parser = argparse.ArgumentParser(description='Generate sitemap') parser.add_argument('-x', '--exclude', action='append', @@ -46,3 +47,41 @@ for dirpath, dirs, files in sorted(os.walk(fullpath)): save_level = level except StopIteration: pass + +def _tree2html(tree, level=0): + subparts = [] + indent = " " * (level + 1) + for title, subtree in tree: + if subtree: + subparts.append(indent + "
  • %s" % title) + subparts.append(_tree2html(subtree, level+2)) + subparts.append(indent + "
  • ") + else: + subparts.append(indent + "
  • %s
  • " % title) + s = "\n".join(subparts) + + parts = [] + indent = " " * level + parts.append(indent + "") + + 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])) + +sitemap_tmpl.append(""" +#end def +$phd_site.respond(self) +""") + +write_if_changed("sitemap.tmpl", ''.join(sitemap_tmpl))