1 | var _ = require('underscore'),
|
2 | async = require('async');
|
3 |
|
4 | module.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 | }
|