UNPKG

2 kBJavaScriptView Raw
1import {timeFormat} from "d3-time-format";
2
3export default function(dom, data) {
4
5 data.authors = data.authors || [];
6
7 // paths
8 data.url = "http://distill.pub/" + data.distillPath;
9 data.githubUrl = "https://github.com/" + data.githubPath;
10
11 // Homepage
12 //data.homepage = !post.noHomepage;
13 data.journal = data.journal || {};
14
15 // Dates
16 // TODO: fix updated date
17 if (data.publishedDate){//} && data.journal) {
18 data.volume = data.publishedDate.getFullYear() - 2015;
19 data.issue = data.publishedDate.getMonth() + 1;
20 }
21
22 data.publishedDate = data.publishedDate ? data.publishedDate : new Date("Invalid");
23 data.updated = data.updated ? data.updated : new Date("Invalid");
24
25 data.publishedDateRFC
26 let RFC = timeFormat("%a, %d %b %Y %H:%M:%S %Z");
27 let months = ["Jan", "Feb", "March", "April", "May", "June", "July", "Aug", "Sept", "Oct", "Nov", "Dec"];
28 let zeroPad = (n) => { return n < 10 ? "0" + n : n; };
29 data.publishedDateRFC = RFC(data.publishedDate);
30 data.publishedYear = data.publishedDate.getFullYear();
31 data.publishedMonth = months[data.publishedDate.getMonth()];
32 data.publishedDay = data.publishedDate.getDate();
33 data.publishedMonthPadded = zeroPad(data.publishedDate.getMonth() + 1);
34 data.publishedDayPadded = zeroPad(data.publishedDate.getDate());
35
36 if (data.authors.length > 2) {
37 data.concatenatedAuthors = data.authors[0].lastName + ", et al.";
38 } else if (data.authors.length === 2) {
39 data.concatenatedAuthors = data.authors[0].lastName + " & " + data.authors[1].lastName;
40 } else if (data.authors.length === 1) {
41 data.concatenatedAuthors = data.authors[0].lastName
42 }
43
44 data.bibtexAuthors = data.authors.map(function(author){
45 return author.lastName + ", " + author.firstName;
46 }).join(" and ");
47
48 data.slug = data.authors.length ? data.authors[0].lastName.toLowerCase() + data.publishedYear + data.title.split(" ")[0].toLowerCase() : "Untitled";
49
50}