UNPKG

1.93 kBJavaScriptView Raw
1var _ = require('underscore'),
2 async = require('async');
3
4module.exports = function (config) {
5 return function(files, metalsmith, done) {
6 var metadata = metalsmith.metadata();
7 var phrases = [];
8 async.series([
9 function (callback) {
10 async.map(metadata.people, function (person, finished) {
11 phrases.push(person.name);
12 if (person.institution) {
13 phrases.push(person.institution);
14 }
15 finished();
16 },
17 function () {
18 callback();
19 });
20 },
21 function (callback) {
22 async.map(metadata.projects, function (project, finished) {
23 phrases.push(project.title);
24 phrases.push(project.name);
25 finished();
26 },
27 function () {
28 callback();
29 });
30 },
31 function (callback) {
32 async.map(metadata.papers, function (paper, finished) {
33 phrases.push(paper.name);
34 finished();
35 },
36 function () {
37 callback();
38 });
39 },
40 function (callback) {
41 async.map(metadata.conferences, function (conference, finished) {
42 phrases.push(conference.name);
43 _.each(conference, function (year) {
44 if (year.shortname) {
45 phrases.push(year.shortname);
46 var array = year.shortname.split("'");
47 if (array[1]) {
48 phrases.push(array[0]);
49 }
50 var array = year.shortname.split("-");
51 if (array[1]) {
52 phrases.push(array[0]);
53 }
54 }
55 });
56 finished();
57 },
58 function () {
59 callback();
60 });
61 }
62 ],
63 function (err) {
64 metadata['spelling_exceptions'] = phrases;
65 done();
66 });
67 }
68}