# -*- coding: UTF-8 -*- from os.path import exists, splitext import os from datetime import date from markdown2 import markdown import shutil from jinja2 import Environment, FileSystemLoader env = Environment( loader=FileSystemLoader("./templates") ) def render(filename): return markdown( "".join(open("data/" + filename, encoding="UTF-8").readlines()), use_file_vars=True, extras=["use-file-vars", "tables"]) file_exts = [".html", ".md", ".txt", ".pdf", ""] update = date.today() tijden = render("tijden.md") nieuws = render("nieuws.md") def read_hash(): with open("hash") as f: line = f.readline() return {"long": line, "short": line[0:7]} inject_now = {'now': date.today().year, 'tijden': tijden, 'nieuws': nieuws, 'update': update, 'hash': read_hash()} # @app.route('/') # def index(): # return render_template("index.html", content=render("content.md")) # @app.route("/") # def site(url: str): # # error handling # if url.startswith("hoofdexpo") or url.startswith("fotos"): # return redirect("/schilderijen", 301) # if url.startswith("boek&foto"): # return redirect("/boekenmeer", 301) # if url.endswith(".html"): # return redirect(url.rstrip(".html"), 301) # if url.endswith(".ico"): # return send_from_directory("static", url) # # actual code # if url == "content": # return redirect("/", 301) # if exists("data/" + url.lstrip("/") + ".md"): # filename = url.lstrip("/") + ".md" # else: # filename = "404.md" # return render_template("index.html", # content=render(filename)) # @app.route("/archief/") # def archief(url: str): # if url == "content": # return redirect("/") # filename = "" # ex = "" # url, _ = splitext(url) # print(url) # for ext in file_exts: # print("data/archief/" + url + ext) # if exists("data/archief/" + url + ext): # filename = "data/archief/" + url + ext # ex = ext # break # if filename == "": # filename = "data/404.md" # ex = ".md" # if ex == ".html": # return Markup("".join(open("data/archief/" + url + ".html", encoding="utf-8").readlines())) # elif ex == ".md": # return render_template("index.html", # content=Markup(markdown("".join(open(filename, encoding="UTF-8").readlines()), # use_file_vars=True, # extras=["use-file-vars"]))) # elif ex == ".txt": # return render_template("index.html", content="".join(open(filename, encoding="UTF-8").readlines())) # elif ex == ".pdf": # return send_file("data/archief/" + url + ".pdf", mimetype="application/pdf") # else: # return render_template("index.html", content="".join(open(filename, encoding="UTF-8").readlines())) if __name__ == '__main__': # app.run(host="0.0.0.0", port=5667) t = env.get_template("index.html") if exists("./dist"): shutil.rmtree("./dist") os.makedirs("./dist") for d in os.listdir("./data/"): d = d.replace(".md", "") if d == "content": f = open(f"./dist/index.html", "w", encoding="utf-8") r = t.render(content=render(f"{d}.md"), request={'path': f"/"}, **inject_now) f.write(r) f.close() else: f = open(f"./dist/{d}.html", "w", encoding="utf-8") r = t.render( content=render(f"{d}.md"), request={'path': f"/{d}"}, **inject_now) f.write(r) f.close() os.makedirs("./dist/archief") for d in os.listdir("./data/archief"): name,ext = splitext(d) if ext in [".html", ".pdf"]: shutil.copyfile(f"./data/archief/{d}", f"./dist/archief/{d}") elif ext == ".txt": d = d.replace(".txt", "") # print(d) r = t.render( content=render(f"archief/{d}.txt"), request={'url': f"/{d}"}, **inject_now) f = open(f"./dist/archief/{d}.html", "w", encoding="utf-8") f.write(r) f.close() elif ext == ".md": d = d.replace(".md", "") # print(d) r = t.render( content=render(f"archief/{d}.md"), request={'url': f"/{d}"}, **inject_now) f = open(f"./dist/archief/{d}.html", "w", encoding="utf-8") f.write(r) f.close()