diff --git a/node/blog.js b/node/blog.js index 253bfe6..9a7aa4b 100644 --- a/node/blog.js +++ b/node/blog.js @@ -14,59 +14,65 @@ const converter = new showdown.Converter({ module.exports = function () { let folder = __dirname + "/../"; + createBlogPages(folder); + fs.watchFile(folder + "blog/posts.json", function (curr, prev) { if (curr.mtime == prev.mtime) return; - console.log("Refreshing blog sub-sites..."); + createBlogPages(folder); + }); +} - fs.readFile(folder + "index.html", function (_, data) { - // set up the template - let templateDom = new JSDOM(data); - var templateDoc = templateDom.window.document; - templateDoc.getElementById("main").innerHTML = ""; - let template = templateDom.serialize(); +function createBlogPages(folder) { + console.log("Refreshing blog sub-sites..."); - fs.readFile(folder + "blog/posts.json", function (_, data) { - let json = JSON.parse(data); - for (let i = 0; i < json.length; i++) { - let post = json[i]; - let id = post["id"]; - fs.readFile(folder + "blog/" + id + ".md", function (_, content) { - let dom = new JSDOM(template); - var document = dom.window.document; + fs.readFile(folder + "index.html", function (_, data) { + // set up the template + let templateDom = new JSDOM(data); + var templateDoc = templateDom.window.document; + templateDoc.getElementById("main").innerHTML = ""; + let template = templateDom.serialize(); - document.title += " - " + post["name"]; - document.querySelector('meta[property="og:title"]').setAttribute("content", post["name"]); - document.querySelector('meta[name="description"]').setAttribute("content", post["summary"]); - document.querySelector('meta[property="og:description"]').setAttribute("content", post["summary"]); + fs.readFile(folder + "blog/posts.json", function (_, data) { + let json = JSON.parse(data); + for (let i = 0; i < json.length; i++) { + let post = json[i]; + let id = post["id"]; + fs.readFile(folder + "blog/" + id + ".md", function (_, content) { + let dom = new JSDOM(template); + var document = dom.window.document; - var nav = ""; - nav += 'Back to Main Page'; - if (i > 0) - nav += 'Previous Post'; - if (i < json.length - 1) - nav += 'Next Post'; - document.getElementById("nav-items").innerHTML = nav; + document.title += " - " + post["name"]; + document.querySelector('meta[property="og:title"]').setAttribute("content", post["name"]); + document.querySelector('meta[name="description"]').setAttribute("content", post["summary"]); + document.querySelector('meta[property="og:description"]').setAttribute("content", post["summary"]); - var c = ""; - c += '