-
Notifications
You must be signed in to change notification settings - Fork 19
/
Copy pathhtmlSitemap.js
48 lines (38 loc) · 1.81 KB
/
htmlSitemap.js
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
46
47
48
const fs = require("fs");
const writeFile = (lang, langValues, page, pages) => {
let writeStream = fs.createWriteStream(lang + "/sitemap.xml");
let site = "https://" + lang + ".periodic-table.io/";
if (lang === "en") site = "https://periodic-table.io/";
let date = new Date().toISOString();
writeStream.write("<?xml version='1.0' encoding='UTF-8'?>\n");
writeStream.write("<urlset xmlns='http://www.sitemaps.org/schemas/sitemap/0.9'>\n");
writeStream.write(" <url>\n");
writeStream.write(" <loc>" + site + "</loc>\n");
writeStream.write(" <lastmod>" + date + "</lastmod>\n");
writeStream.write(" <priority>1.0</priority>\n");
writeStream.write(" </url>\n");
pages.forEach((pageValue) => {
if (pageValue.page !== "sitemap" && pageValue.page !== "manifest" && pageValue.page !== "robots" && pageValue.page !== "404" && pageValue.page !== "index" && pageValue.page !== "element") {
writeStream.write(" <url>\n");
writeStream.write(" <loc>" + site + pageValue.page + "</loc>\n");
writeStream.write(" <lastmod>" + date + "</lastmod>\n");
writeStream.write(" <priority>0.8</priority>\n");
writeStream.write(" </url>\n");
}
});
for (let i = 1; i <= 118; i++) {
writeStream.write(" <url>\n");
writeStream.write(" <loc>" + site + "element-" + i + "</loc>\n");
writeStream.write(" <lastmod>" + date + "</lastmod>\n");
writeStream.write(" <priority>0.8</priority>\n");
writeStream.write(" </url>\n");
}
writeStream.write("</urlset>");
// the finish event is emitted when all data has been flushed from the stream
writeStream.on("finish", () => {
console.log("Created " + lang + "-" + page);
});
// close the stream
writeStream.end();
};
exports.writeFile = writeFile;