From 1a7c02ca64a6cd74d02030a037a25c6ec932dea5 Mon Sep 17 00:00:00 2001 From: Tim Van Baak Date: Tue, 25 Jun 2024 13:59:10 -0700 Subject: [PATCH] Derive blog post pubdate from git instead of metadata --- Makefile | 2 +- build.py | 19 +++++++++++++------ src/blog/2023/blog-start.md | 1 - src/blog/2023/shlvl.md | 1 - src/blog/2023/zfs-nas-backup.md | 1 - src/blog/2024/bookmarks.md | 1 - 6 files changed, 14 insertions(+), 11 deletions(-) diff --git a/Makefile b/Makefile index 931cf53..0df33d2 100644 --- a/Makefile +++ b/Makefile @@ -4,7 +4,7 @@ help: ## display this help @awk 'BEGIN{FS = ":.*##"; printf "\033[1m\nUsage\n \033[1;92m make\033[0;36m \033[0m\n"} /^[a-zA-Z0-9_-]+:.*?##/ { printf " \033[36m%-15s\033[0m %s\n", $$1, $$2 } ' $(MAKEFILE_LIST) build: ## compile src/ into out/ with pagefind - ./build.py out/ --draft + ./build.py out/ pagefind --site out/ clean: ## delete out/ and src/ diff --git a/build.py b/build.py index c5dcd4a..33925be 100755 --- a/build.py +++ b/build.py @@ -6,16 +6,26 @@ import copy import os import pathlib import shutil +import subprocess import bs4 from feedgen.feed import FeedGenerator import markdown +def get_pubdate(src_path): + pubdate = subprocess.run( + ["git", "log", "--diff-filter=A", "--format=%aI", "--", src_path], + capture_output=True, + text=True, + check=True, + ) + return datetime.fromisoformat(pubdate.stdout.strip()) + + def main(): parser = argparse.ArgumentParser() parser.add_argument("out", help="output directory") - parser.add_argument("--draft", action="store_true", help="include draft pages") args = parser.parse_args() src = pathlib.Path("src") @@ -124,11 +134,8 @@ def main(): page.header.append(aside) # RSS metadata - if "pubdate" in meta and meta["pubdate"][0] == "draft" and not args.draft: - continue - - if "feed" in meta and "pubdate" in meta and meta["pubdate"][0] != "draft": - pubdate = datetime.fromisoformat(meta["pubdate"][0]) + if "feed" in meta: + pubdate = get_pubdate(path.as_posix()) link = f"https://www.alogoulogoi.com/{dest.relative_to(out).as_posix()}" for feed in meta["feed"]: if feed not in feeds: diff --git a/src/blog/2023/blog-start.md b/src/blog/2023/blog-start.md index a7a290f..6db7b16 100644 --- a/src/blog/2023/blog-start.md +++ b/src/blog/2023/blog-start.md @@ -1,6 +1,5 @@ --- title: The traditional first software engineer blog post -pubdate: 2023-09-28T15:39:59-07:00 feed: blog --- diff --git a/src/blog/2023/shlvl.md b/src/blog/2023/shlvl.md index 03366f8..2729ccc 100644 --- a/src/blog/2023/shlvl.md +++ b/src/blog/2023/shlvl.md @@ -1,6 +1,5 @@ --- title: SHLVL PS1 -pubdate: 2023-12-18T09:53:17-08:00 feed: blog --- diff --git a/src/blog/2023/zfs-nas-backup.md b/src/blog/2023/zfs-nas-backup.md index aa24d5c..e0a08db 100644 --- a/src/blog/2023/zfs-nas-backup.md +++ b/src/blog/2023/zfs-nas-backup.md @@ -1,6 +1,5 @@ --- title: Backing up my ZFS NAS to an external drive -pubdate: 2023-09-29T16:23:49-07:00 feed: blog --- diff --git a/src/blog/2024/bookmarks.md b/src/blog/2024/bookmarks.md index 664c4f5..187379c 100644 --- a/src/blog/2024/bookmarks.md +++ b/src/blog/2024/bookmarks.md @@ -1,6 +1,5 @@ --- title: Archiving bookmarks -pubdate: 2024-05-27T21:06:37-07:00 feed: blog ---