From ad2d5934148e17efa20e77879ddd45950209852b Mon Sep 17 00:00:00 2001 From: Christian Cleberg Date: Tue, 11 Aug 2026 13:41:18 -0500 Subject: Bring the org-ssg templates to parity with the live site MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit The org-ssg build rendered the right content in the wrong chrome. Closing every difference found by comparing it against theme/templates/ and the live pages: - base.html: Home link written by the layout rather than the site title, a of "Page - cleberg.net" (bare "cleberg.net" on the home page, via a subtitle block), author/description/og meta, the RSS alternate link, four rel="me" identity links, favicon, skip link, <main id="main-content">, aria-label on the nav, and the real footer. - home.html: the h1 is "Christian Cleberg" (the collection's title), and the email line has its GPG link back. - blog.html and garden.html: the two listings carry their own prose on the live site — the search/RSS hint, and the garden's growth stages — so they are no longer sharing the generic list.html. Tag pages still use it. - tags.html: "Browse posts by topic." - Blog posts get the reply-by-email and Bubbles lines. org-ssg has no per-page template selection, so the layout keys off the page's URL prefix. - Tags leaves the nav, which the live site does not have. feed.xml is new: the footer links /feed.xml and nothing was generating it. It is a collection whose template happens to be XML. Its <description> carries each post's excerpt rather than the full rendered body, which weblorg's feed does include — a collection template gets each entry's metadata, not its HTML. base_url is now set, since canonical links and a feed cannot be relative. Page links stay relative, so a preview build still works from any directory. gpg.txt, robots.txt and salary.csv are copied in from theme/static/: weblorg publishes that directory to the site root, and org-ssg publishes from content/, so /gpg.txt was a 404. styles.min.css is deliberately not copied — it is gitignored build output, and the tracked styles.css holds the same rules. --- content/org-ssg.toml | 34 +++++++++++++++++++++------------- 1 file changed, 21 insertions(+), 13 deletions(-) (limited to 'content/org-ssg.toml') diff --git a/content/org-ssg.toml b/content/org-ssg.toml index b7feac6..4edb039 100644 --- a/content/org-ssg.toml +++ b/content/org-ssg.toml @@ -13,22 +13,21 @@ title = "cleberg.net" description = "Stillness amidst the chaos." language = "en" -# Empty keeps every URL relative, so the site works from a preview directory as well as -# from its real origin. Set it to "https://cleberg.net" when you want canonical links, or -# an RSS feed — a feed is read away from the site that served it, so its links cannot be -# relative. -base_url = "" +# Set, because the layout emits canonical links and /feed.xml — a feed is read away from +# the site that served it, so its links cannot be relative. Ordinary page-to-page links +# stay relative regardless, so a preview build still works from a directory. +base_url = "https://cleberg.net" [nav] # Explicit, because the pages that belong in the nav are not all top-level: /blog/ and # /garden/ are generated below, and salary/ is a section index one level down. index.org -# is deliberately absent — the layout already links home from the site title, and listing -# it here would print "cleberg.net" twice side by side. +# is deliberately absent — the layout writes the Home link itself, exactly as weblorg's +# base.html does. # # Generated pages are named by their output path, authored ones by their source. Listing # them together is what puts Salary last: a collection with `nav = true` that is not -# listed here gets appended after everything that is. /tags/ is deliberately not listed, -# so it lands at the end. +# listed here gets appended after everything that is — which is why the tags collection +# below does not set `nav = true`: the live nav has no Tags entry. mode = "explicit" pages = ["blog/index.html", "garden/index.html", "salary/index.org"] @@ -62,14 +61,14 @@ section_numbers = false source = "blog" output = "index.html" template = "home.html" -title = "cleberg.net" +title = "Christian Cleberg" sort = "date" order = "desc" [[collections]] source = "blog" output = "blog/index.html" -template = "list.html" +template = "blog.html" title = "Blog" sort = "date" order = "desc" @@ -78,7 +77,7 @@ nav = true [[collections]] source = "garden" output = "garden/index.html" -template = "list.html" +template = "garden.html" title = "Garden" sort = "date" order = "desc" @@ -96,4 +95,13 @@ title = "Tagged: {tag}" index_output = "tags/index.html" index_template = "tags.html" index_title = "Tags" -nav = true + +# The RSS feed. Not a separate feature — a collection whose template happens to be XML, +# which is why /feed.xml is declared here alongside the HTML listings. +[[collections]] +source = "blog" +output = "feed.xml" +template = "feed.xml" +title = "cleberg.net" +sort = "date" +order = "desc" -- cgit v1.2.3