import os from html5tagger import Document, E, HTML from shutil import rmtree #if homepage is at Home.page, set homepage to "Home" homepage = "Home" try: os.mkdir("./website-output") except FileExistsError: print("Output directory already exists, let's clean it!") #deleting contents of folder without deleting the folder, to increase compatibility with various systems for root, dirs, files in os.walk('./website-output'): for f in files: os.unlink(os.path.join(root, f)) for d in dirs: rmtree(os.path.join(root, d)) #generate navigation bar navbarfound = False if os.path.exists("./navbar"): with open("./navbar", 'r') as navbarfile: navbarfound = True navbar = E for line in navbarfile.readlines(): split = line.strip().split(";", 1) navbar = navbar.li(HTML("" + split[0])) #checking false instead of else to be more sure if navbarfound == False: print("No 'navbar' file found, there will be no navigation bar.") #generate pages for file in os.listdir("./"): if file.endswith(".page"): with open(file, 'r') as page: pagetitle = os.path.basename(file).replace(".page", "") doc = Document(pagetitle, lang="en") for line in page.readlines(): doc.p(line.strip()) #creates ./website-output/pagetitle/index.html file if it is not homepage foldername = "" if pagetitle =! homepage: foldername = "/" + pagetitle.replace(" ", "-").lower() os.mkdir("./website-output" + foldername) with open("./website-output" + foldername + "/index.html", 'w') as newpage: if navbarfound: newpage.write(str(E.ul(navbar))) else: newpage.write(str(doc))