import jinja2 import os from operator import itemgetter def file_name_to_solution(name): number = int(name.replace("EulerProblem", "").replace(".html", "")) file_name = name display_name = name.replace("EulerProblem", "Problem ").replace(".html", "") return (number, file_name, display_name) def get_solution_list(directory="./"): l = [file_name_to_solution(f) for f in os.listdir(directory) if f.endswith(".html") and f.startswith("EulerProblem")] l.sort(key=itemgetter(0)) return l def render_solutions(solutions): loader = jinja2.FileSystemLoader(searchpath="./") env = jinja2.Environment(loader=loader) template = env.get_template("template.html") d = {"solutions": solutions} with open("index.html", 'w') as f: f.write(template.render(**d)) render_solutions(get_solution_list())