blob: 1b4b8f81b775b7c29d610ab0b14802da15b1605d (
plain) (
blame)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
|
const mkdirp = require("mkdirp");
const path = require("path");
const saveIndex = require("./save-index.js");
function generateTags(articles) {
const articlesByTag = { };
articles.forEach(article => {
article.tags.forEach(tag => {
if (!articlesByTag[tag]) {
articlesByTag[tag] = [article];
} else {
articlesByTag[tag].push(article);
}
});
});
const promises = Object.keys(articlesByTag).map(
tag =>
new Promise((resolve, reject) => {
const articles = articlesByTag[tag];
articles.sort((a, b) => {
return (b.rawDate || 0) - (a.rawDate || 0);
});
const tagPath = path.join("output", "tags", tag);
mkdirp(tagPath, err => {
if (err) { return reject(err); }
resolve(
saveIndex(
articles.filter(article => !article.hidden),
path.join(tagPath, "index.html"),
tag + " | jordan scales",
"-- " + tag + " posts --"
)
);
});
})
);
return Promise.all(promises);
}
module.exports = generateTags;
|