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
|
const ejs = require("ejs");
const fs = require("fs");
const mkdirp = require("mkdirp");
const path = require("path");
function saveArticle(article) {
return new Promise((resolve, reject) => {
fs.readFile("templates/article.ejs", (err, articleTemplate) => {
if (err) { return reject(err); }
fs.readFile("templates/layout.ejs", (err, layoutTemplate) => {
if (err) { return reject(err); }
const articleBodyHTML = ejs.render(articleTemplate.toString(), article);
const articleHTML = ejs.render(layoutTemplate.toString(), {
title: article.title + " | Fuwn",
body: articleBodyHTML,
description: article.description || article.summary,
});
const articlePath = path.join("output", article.route);
mkdirp(articlePath, err => {
if (err) { return reject(err); }
fs.writeFile(
path.join(articlePath, "index.html"),
articleHTML,
err => {
if (err) { return reject(err); }
resolve("ok");
}
);
});
});
});
});
}
module.exports = saveArticle;
|