From 7f751b7af74c6be98e332445f9b5a949722a9a3e Mon Sep 17 00:00:00 2001 From: Tom Smeding Date: Tue, 23 Aug 2022 16:18:32 +0200 Subject: Update CHAD publication (TOPLAS) --- publications.json | 23 ++++++++++++----------- webserver.js | 33 ++++++++++++++++++++++++++++++++- 2 files changed, 44 insertions(+), 12 deletions(-) diff --git a/publications.json b/publications.json index aa30f17..03458ab 100644 --- a/publications.json +++ b/publications.json @@ -4,6 +4,18 @@ "matthijs": "Matthijs Vákár" }, "pubs": [ + { + "year": 2022, + "month": 9, + "authors": ["matthijs", "tom"], + "title": "CHAD: Combinatory Homomorphic Automatic Differentiation", + "journal": "TOPLAS", + "links": [ + {"type": "doi", "id": "10.1145/3527634"}, + {"type": "code", "url": "https://github.com/VMatthijs/CHAD"}, + {"type": "arxiv", "id": "2103.15776"} + ] + }, { "year": 2022, "month": 7, @@ -15,17 +27,6 @@ {"type": "code", "url": "https://github.com/tomsmeding/ad-dualrev-th"} ] }, - { - "year": 2022, - "month": 6, - "authors": ["matthijs", "tom"], - "title": "CHAD: Combinatory Homomorphic Automatic Differentiation", - "preprint": "to be published in TOPLAS", - "links": [ - {"type": "arxiv", "id": "2103.15776"}, - {"type": "code", "url": "https://github.com/VMatthijs/CHAD"} - ] - }, { "year": 2022, "month": 5, diff --git a/webserver.js b/webserver.js index 6b3a172..f817016 100755 --- a/webserver.js +++ b/webserver.js @@ -104,18 +104,36 @@ function buildPublicationsHTML(info) { for (const obj of info.pubs) { if (res.length != 0) res += "\n\t\t\t"; + const seen = new Map(); + res += "
  • "; + res += obj.year; + seen.set("year", true); + if ("month" in obj) res += "-" + padLeft(obj.month + "", 2, "0") + seen.set("month", true); + res += " "; res += obj.authors.map(key => key in info.authors ? info.authors[key] : key).join(", "); + seen.set("authors", true); + res += ": “" + obj.title + "”."; + seen.set("title", true); + + if ("journal" in obj) res += " In " + obj.journal + "."; + seen.set("journal", true); + if ("preprint" in obj) { res += " Preprint"; if (typeof obj.preprint == "string") res += ", " + obj.preprint; res += "."; } + seen.set("preprint", true); + if ("note" in obj) res += " " + obj.note; + seen.set("note", true); + if ("links" in obj && obj.links.length > 0) { res += " ["; const anchors = []; @@ -125,7 +143,12 @@ function buildPublicationsHTML(info) { case "arxiv": name = "arxiv"; url = "https://arxiv.org/abs/" + link.id; - break + break; + + case "doi": + name = "doi"; + url = "https://doi.org/" + link.id; + break; case "code": name = "code"; @@ -145,7 +168,15 @@ function buildPublicationsHTML(info) { res += anchors.join(", "); res += "]" } + seen.set("links", true); + res += "
  • "; + + for (const key in obj) { + if (!seen.has(key)) { + throw new Error(`Key '${key}' unknown in publication`); + } + } } return res; -- cgit v1.2.3-54-g00ecf