From ce1ebb3ad3f705a1a8e3764e6c18f1af12eed795 Mon Sep 17 00:00:00 2001 From: Joe Carstairs Date: Tue, 9 Jun 2026 21:29:10 +0100 Subject: [PATCH] extracts longlog metadata including updated date --- http/Makefile | 2 +- http/bin/blog | 5 +++- http/bin/extract_longlog_meta | 34 ++++++++++++++++++++++++++ http/share/layouts/blog.layout.upphtml | 21 +++++++++++++++- 4 files changed, 59 insertions(+), 3 deletions(-) create mode 100755 http/bin/extract_longlog_meta diff --git a/http/Makefile b/http/Makefile index fd865b5..1656817 100644 --- a/http/Makefile +++ b/http/Makefile @@ -11,7 +11,7 @@ src/microlog: $(shell find -L blogs/microlog -type f) bin/blog blog: src/blog src/blog: $(shell find -L blogs/blog -type f) bin/blog - ./bin/blog -i blog -l blog -p 'cut_longlog_meta | gmi2upphtml' + ./bin/blog -i blog -l blog -p 'cut_longlog_meta | gmi2upphtml' -a extract_longlog_meta .PHONY: clean clean: diff --git a/http/bin/blog b/http/bin/blog index 49bef7f..7038e4a 100755 --- a/http/bin/blog +++ b/http/bin/blog @@ -37,9 +37,12 @@ layout="default" postprocess_cmd="echo" use_filenames_for_titles=0 -while getopts "i:l:p:t" opt +while getopts "a:i:l:p:t" opt do case $opt in + a) + extract_args_cmd="$OPTARG" + ;; i) log_name="$OPTARG" ;; diff --git a/http/bin/extract_longlog_meta b/http/bin/extract_longlog_meta new file mode 100755 index 0000000..054c994 --- /dev/null +++ b/http/bin/extract_longlog_meta @@ -0,0 +1,34 @@ +#!/bin/sh -e + +POST_TITLE="${POST_TITLE:-}" +DATE_PUBLISHED="" +DATE_UPDATED="" + +while read line +do + if [ "$(echo "$line" | cut -c1-2)" = "# " ] + then + POST_TITLE="$(echo "$line" | cut -c3-)" + elif [ "$(echo "$line" | cut -c1-14)" = "Published on: " ] + then + DATE_PUBLISHED="$(date --date="$(echo "$line" | cut -c15-)" +%Y-%m-%d)" + elif [ "$(echo "$line" | cut -c1-12)" = "Updated on: " ] + then + DATE_UPDATED="$(date --date="$(echo "$line" | cut -c13-)" +%Y-%m-%d)" + fi +done + +if [ -n "$POST_TITLE" ] +then + echo "POST_TITLE=\"${POST_TITLE}\"" +fi + +if [ -n "$DATE_PUBLISHED" ] +then + echo "DATE_PUBLISHED=\"${DATE_PUBLISHED}\"" +fi + +if [ -n "$DATE_UPDATED" ] +then + echo "DATE_UPDATED=\"${DATE_UPDATED}\"" +fi diff --git a/http/share/layouts/blog.layout.upphtml b/http/share/layouts/blog.layout.upphtml index 928733f..804c6d9 100644 --- a/http/share/layouts/blog.layout.upphtml +++ b/http/share/layouts/blog.layout.upphtml @@ -1,7 +1,7 @@ #! SRC="$1" SITE_URL="$2" -DATE_PUBLISHED="$(basename "${SRC}" | cut -c1-10)" +DATE_PUBLISHED="${DATE_PUBLISHED:-$(basename "${SRC}" | cut -c1-10)}" CANONICAL_URL="${SITE_URL}/blog/$(basename "${SRC}")" #! @@ -24,11 +24,30 @@ pp "${SHARE}"/components/navbar.upphtml