1 | import {timeFormat} from "d3-time-format";
|
2 |
|
3 | export default function(dom, data) {
|
4 |
|
5 | data.authors = data.authors || [];
|
6 |
|
7 |
|
8 | data.url = "http://distill.pub/" + data.distillPath;
|
9 | data.githubUrl = "https://github.com/" + data.githubPath;
|
10 |
|
11 |
|
12 |
|
13 | data.journal = data.journal || {};
|
14 |
|
15 |
|
16 | if (data.publishedDate){
|
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 | }
|