aboutsummaryrefslogtreecommitdiffstats
path: root/README.md
diff options
context:
space:
mode:
authorLaird Lonergan <sillyfanboy@gmail.com>2026-09-03 01:40:19 +0000
committerLaird Lonergan <sillyfanboy@gmail.com>2026-09-03 01:40:19 +0000
commit43ed72ae3cd7e5f17aeb3b51000fa69614495b1e (patch)
tree2441b172d5ca92b87bbbb6a6810fc6f224484357 /README.md
parentinitial (diff)
downloadwww-master.tar.gz
www-master.zip
add blogmirror: static mirror of blog.sillylaird.camasterfront
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 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01YAgU4WFfVJKNK8CkpxhEcg
Diffstat (limited to '')
-rw-r--r--README.md34
1 files changed, 34 insertions, 0 deletions
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 <https://blog.sillylaird.ca> 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 `<content:encoded>`, 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`.