From 683cc893b0ec029e5b019e936e9c83c5c6798dac Mon Sep 17 00:00:00 2001 From: Thibaut Horel Date: Sat, 28 Feb 2015 20:09:43 -0500 Subject: Initial commit --- build.py | 53 +++++++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 53 insertions(+) create mode 100644 build.py (limited to 'build.py') diff --git a/build.py b/build.py new file mode 100644 index 0000000..447d07b --- /dev/null +++ b/build.py @@ -0,0 +1,53 @@ +from jinja2 import Template +import csv +from datetime import date +import os.path as op +import os +from subprocess import check_output +from itertools import chain +from bs4 import BeautifulSoup + + +def get_references(sessions): + keys = chain.from_iterable(session["refs"] for session in sessions) + with open("keys.txt", "w") as fh: + fh.write("\n".join(keys)) + html_refs = check_output(["bibtex2html -nodoc -nobibsource -noheader -q " + "-o - -unicode -nokeys -a -citefile keys.txt " + "-s abbrv sub.bib"], shell=True) + os.remove("keys.txt") + body = BeautifulSoup(html_refs, "lxml").body + body.name = "ol" + body.hr.decompose() + entries = body.find_all("p") + entries[-1].decompose() + entries = entries[:-1] + keys = {} + for i, entry in enumerate(entries): + entry.name = "li" + entry["id"] = entry.a["name"] + entry.a.decompose() + keys[entry["id"]] = i + 1 + return unicode(body), keys + + +def clean(session): + month, day = map(int, session["date"].split("/")) + session_date = date(2015, month, day) + session["date"] = session_date.strftime("%a %m/%d") + session["refs"] = session["refs"].split(",") + fname = op.join("notes", session_date.strftime("%m-%d.pdf")) + if op.isfile(fname): + session["notes"] = fname + return session + + +def build(sessions, refs, keys): + template = Template(open("index.jinja").read().decode("utf8")) + with open("index.html", "w") as fh: + fh.write(template.render(sessions=sessions, + refs=refs, keys=keys).encode("utf8")) + +sessions = [clean(session) for session in csv.DictReader(open("sessions.csv"))] +refs, keys = get_references(sessions) +build(sessions, refs, keys) -- cgit v1.2.3-70-g09d2