From 5d60a70d6a963c234d311ca87829cf3150f72ef6 Mon Sep 17 00:00:00 2001 From: Christian Cleberg Date: Tue, 11 Aug 2026 16:48:53 -0500 Subject: org-ssg is called orgo now MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit The config file follows the tool: content/org-ssg.toml is content/orgo.toml, and the build cache it writes is .orgo-cache.json. Nothing about the site changes — 196 pages, same output. --- content/orgo.toml | 129 ++++++++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 129 insertions(+) create mode 100644 content/orgo.toml (limited to 'content/orgo.toml') diff --git a/content/orgo.toml b/content/orgo.toml new file mode 100644 index 0000000..307df57 --- /dev/null +++ b/content/orgo.toml @@ -0,0 +1,129 @@ +# orgo configuration for cleberg.net. +# +# Lives in content/ because that directory is the site's URL root: content/blog/post.org +# publishes at /blog/post.html. Neither this file nor templates/ is published. +# +# orgo serve content -o /tmp/preview # write and preview +# orgo build content -o _site --strict # build for real, failing on broken links +# +# This sits alongside the existing weblorg setup (publish.el, theme/) and changes nothing +# about it. Delete this file and content/templates/ to remove orgo entirely. + +[site] +title = "cleberg.net" +description = "Stillness amidst the chaos." +language = "en" +# 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 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 — 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"] + +[build] +# theme/static/ is weblorg's static root, published at /. orgo reads it from here +# rather than needing its files copied next to the writing — one copy, not two. +assets = ["../theme/static"] + +[templates] +dir = "templates" + +# Blog posts render through post.html — the shared layout plus a reply footer — the way +# weblorg routes them through theme/templates/post.html. Everything else uses base.html. +# Blog posts render through post.html, which adds the reply snippet. Nothing else does: +# the live site also invites replies on garden notes and /now/, and that is a choice +# rather than something a directory should decide. Any page opts in for itself with +# `#+TEMPLATE: post.html`, and any post opts out with `#+TEMPLATE: base.html`. +[[pages]] +match = "blog" +template = "post.html" + +[highlight] +theme = "InspiredGitHub" + +[html] +# Level-1 org headings become

, beneath the page title the layout renders as

— +# which is what the current site does too. +heading_offset = 1 +toc = true +# On, because the live site has numbered headings — inherited from Emacs' default rather +# than chosen, but changing it is a design decision to make deliberately rather than a +# side effect of switching generators. One line to flip when you want to. +section_numbers = true + +# --- Generated pages ------------------------------------------------------------- +# These have no source .org file. weblorg produces the equivalents today through its +# blog-index, garden-index and tags routes. + +# The home page. Generated rather than authored, because it is a hand-written +# introduction *plus* the most recent posts — and the post list is not something to +# maintain by hand. The prose lives in templates/home.html, which is where weblorg keeps +# it today too. +# +# content/index.org was deleted to make room: it held only #+title and #+description, +# both of which are now [site] settings above. Restore it any time with +# `git checkout content/index.org`, but then this collection must output somewhere else — +# two pages cannot claim one URL, and orgo fails the build rather than picking a winner. +[[collections]] +source = "blog" +output = "index.html" +template = "home.html" +title = "Christian Cleberg" +sort = "date" +order = "desc" + +[[collections]] +source = "blog" +output = "blog/index.html" +template = "blog.html" +title = "Blog" +sort = "date" +order = "desc" +nav = true + +[[collections]] +source = "garden" +output = "garden/index.html" +template = "garden.html" +title = "Garden" +sort = "date" +order = "desc" +nav = true + +# One page per tag, plus the index the live site already has at /tags/. `source` is empty +# so it groups across the whole site rather than one section, which is how #+FILETAGS: is +# used here — tags appear on blog posts and garden notes alike. +[[collections]] +source = "" +group_by = "tags" +output = "tags/{tag}.html" +template = "list.html" +title = "Tagged: {tag}" +index_output = "tags/index.html" +index_template = "tags.html" +index_title = "Tags" + +# 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" +# Whole posts, not excerpts. The live feed carries full content, and a subscriber handed +# excerpts instead would notice. Costs a render of every listed post whenever the feed is +# rebuilt, which is the trade this is worth making for. +include_content = true -- cgit v1.2.3