diff --git a/_scripts/generate.py b/_scripts/generate.py index a898e4d..0259855 100644 --- a/_scripts/generate.py +++ b/_scripts/generate.py @@ -1,15 +1,17 @@ #!/usr/bin/env python3 +import html import logging import os import sys import uuid from datetime import datetime -from org_rw import OrgTime +from org_rw import OrgTime, dom from org_rw import dump as dump_org from org_rw import dumps as dumps_org from org_rw import load as load_org +from org_rw import token_list_to_raw EXTENSIONS = [ ".org", @@ -45,6 +47,7 @@ def load_all(top_dir_relative): def main(src_top, dest_top): docs = load_all(src_top) + files_generated = 0 os.makedirs(dest_top, exist_ok=True) for doc in docs: @@ -74,24 +77,100 @@ def main(src_top, dest_top): if not relpath.startswith("public/"): # print("Skip:", relpath) continue - pubpath = relpath.split("/", 1)[1] - endpath = pubpath + ".html" - for extension in EXTENSIONS: - if pubpath.endswith(extension): - endpath = pubpath[: -len(extension)] + ".html" - break - print("PUBLIC", pubpath, "→", endpath) - endpath = os.path.join(dest_top, endpath) - dirname = os.path.dirname(endpath) - if len(dirname) > 0: - os.makedirs(dirname, exist_ok=True) - with open(endpath, "wt") as f: - f.write(render(doc)) + for headline in headlines: + endpath = os.path.join(dest_top, headline.id + ".node.html") + + with open(endpath, "wt") as f: + f.write(render(headline, doc)) + files_generated += 1 + + logging.info("Generated {} files".format(files_generated)) -def render(doc): - return dumps_org(doc) +def print_tree(tree, indentation=0): + for element in tree: + print(" " * indentation + "- " + str(type(element))) + if "children" in dir(element): + if len(element.children) > 0: + print_tree(element.children, indentation + 1) + print() + + +def render_property_drawer(element, acc): + pass + + +def render_logbook_drawer(element, acc): + pass + + +def render_property_node(element, acc): + pass + + +def render_list_group(element, acc): + acc.append("