UNPKG

2.03 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 if (data.publishedDate){//} && data.journal) {
17 data.volume = data.publishedDate.getFullYear() - 2015;
18 data.issue = data.publishedDate.getMonth() + 1;
19 }
20
21 data.publishedDate = data.publishedDate ? data.publishedDate : new Date("Invalid");
22 data.updatedDate = data.updatedDate ? data.updatedDate : new Date("Invalid");
23
24 data.publishedDateRFC
25 let RFC = timeFormat("%a, %d %b %Y %H:%M:%S %Z");
26 let months = ["Jan", "Feb", "March", "April", "May", "June", "July", "Aug", "Sept", "Oct", "Nov", "Dec"];
27 let zeroPad = (n) => { return n < 10 ? "0" + n : n; };
28 data.publishedDateRFC = RFC(data.publishedDate);
29 data.publishedYear = data.publishedDate.getFullYear();
30 data.publishedMonth = months[data.publishedDate.getMonth()];
31 data.publishedDay = data.publishedDate.getDate();
32 data.publishedMonthPadded = zeroPad(data.publishedDate.getMonth() + 1);
33 data.publishedDayPadded = zeroPad(data.publishedDate.getDate());
34 data.updatedDateRFC = RFC(data.updatedDate);
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}