From 43ed72ae3cd7e5f17aeb3b51000fa69614495b1e Mon Sep 17 00:00:00 2001 From: Laird Lonergan Date: Thu, 3 Sep 2026 01:40:19 +0000 Subject: add blogmirror: static mirror of blog.sillylaird.ca MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Reads the blog's RSS feed (full post body lives in content:encoded) and writes flat mothra-friendly HTML under html/ — an index plus one page per post at YYYY/MM/DD/slug.html. Plain ANSI C so it builds with APE pcc on 9front and cc elsewhere; fetches with hget when present, curl otherwise. mirror.rc regenerates and pushes. Co-Authored-By: Claude Opus 5 Claude-Session: https://claude.ai/code/session_01YAgU4WFfVJKNK8CkpxhEcg --- README.md | 34 ++++++++++++++++++++++++++++++++++ 1 file changed, 34 insertions(+) create mode 100644 README.md (limited to 'README.md') diff --git a/README.md b/README.md new file mode 100644 index 0000000..132ab05 --- /dev/null +++ b/README.md @@ -0,0 +1,34 @@ +# blogmirror + +Mirrors into flat, mothra-friendly HTML under +`html/`, in the same plain style as the rest of this site. + +It reads the blog's RSS feed (`/feed.xml.php`), which carries the full post +body in ``, so no HTML scraping is involved. Output: + + html/index.html post list + html/YYYY/MM/DD/slug.html one page per post + +## Build (9front) + + mk + +`blogmirror.c` is plain ANSI C and builds with APE `pcc`; it also builds with +`cc` on Linux/BSD for testing. Fetching uses `hget` when `/bin/hget` exists, +`curl` otherwise. + +## Run + + ./blogmirror mirror the live feed into html/ + ./blogmirror -o /tmp/out somewhere else + ./blogmirror -n 10 only the newest 10 posts + ./blogmirror -f feed.rss parse a feed already on disk + ./blogmirror -u URL a different feed + +## Refresh and publish + + ./mirror.rc + +which regenerates `html/`, commits the changed files, and runs `git/push`. +Requires `git/fs`, a loaded ssh key in factotum, and a remote already set in +`.git/config`. -- cgit v1.2.3