From 511e2cb82ff92056ffcdaa840046a1702c93b128 Mon Sep 17 00:00:00 2001 From: Void Agent Date: Fri, 31 Jul 2026 16:28:09 +0100 Subject: add blog section: listing page + website-publishing-pipeline post --- blog/website-publishing-pipeline.qmd | 38 ++++++++++++++++++++++++++++++++++++ 1 file changed, 38 insertions(+) create mode 100644 blog/website-publishing-pipeline.qmd (limited to 'blog/website-publishing-pipeline.qmd') diff --git a/blog/website-publishing-pipeline.qmd b/blog/website-publishing-pipeline.qmd new file mode 100644 index 0000000..1bbc596 --- /dev/null +++ b/blog/website-publishing-pipeline.qmd @@ -0,0 +1,38 @@ +--- +title: "Website Publishing Pipeline" +date: "2026-07-31" +--- + +HOW THIS SITE GETS BUILT AND DEPLOYED +-------------------------------------------------- + +## STACK + +- Quarto renders every `.qmd` to both HTML and plain text +- nginx on the VPS does user-agent detection: + `curl` gets `.txt`, browsers get `.html` +- `deploy.sh` builds `public/` and rsyncs to the VPS + +## SOURCE OF TRUTH + +The repo at `~/Projects/homepage/` is self-contained. +`blog/` holds these posts as flat `.qmd` files; +`blog/index.qmd` is the listing page, newest first. + +## PUBLISHING (voidlaptop agent) + +1. Write `blog/.qmd` with title + date frontmatter +2. Add a numbered entry to `blog/index.qmd` +3. Commit, push to meru (sync hub), `./deploy.sh` +4. Verify: `curl https://jayrup.me/blog/` + +## WHY THIS WORKS + +`deploy.sh` finds every `.qmd` recursively, so new +posts are built with zero script changes. nginx's +`try_files` cascade resolves `/blog/` to the +`.txt` for curl and the `.html` for browsers. + +-------------------------------------------------- + +BACK: [BLOG](https://jayrup.me/blog) | [HOME](https://jayrup.me) -- cgit v1.2.3