From a246f40d5de04c1c7fcc7385d36bc593bcee6ce6 Mon Sep 17 00:00:00 2001 From: Tom Smeding Date: Fri, 1 Mar 2024 22:16:54 +0100 Subject: blog: Add timestamp to posts --- modules/blog/template.js | 18 ++++++++++++++++++ 1 file changed, 18 insertions(+) (limited to 'modules/blog/template.js') diff --git a/modules/blog/template.js b/modules/blog/template.js index 32d7bb3..a1d4d3d 100644 --- a/modules/blog/template.js +++ b/modules/blog/template.js @@ -1,5 +1,7 @@ const fs = require("fs").promises; +const blogUtil = require("./util.js"); + const pathRoot = "blog"; async function recursiveTree(dir) { @@ -39,6 +41,21 @@ function generateTree(tree, path) { return out; } +// path: file path inside repo +async function generateDatetime(repodir, path) { + if (path == "index.html") return ""; + + const stat = await fs.stat(repodir + "/" + path); + const gitout = await blogUtil.runCommandOutput("git", ["-C", repodir, "log", "--format=format:%as", "--", path]); + const lines = gitout.toString().trim().split("\n"); + const last = lines[0]; + const first = lines[lines.length - 1]; + if (last == first) + return `Last updated: `; + else + return `Created: , last updated: `; +} + async function template(repodir, contentPath) { const tree = await recursiveTree(repodir); tree.delete("$template"); @@ -50,6 +67,7 @@ async function template(repodir, contentPath) { html = html.replace("", generateTree(tree, pathRoot)); html = html.replace("", content); + html = html.replace("", await generateDatetime(repodir, contentPath)) return html; } -- cgit v1.2.3-70-g09d2