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/org-ssg.toml | 129 -------------------------------------------- content/orgo.toml | 129 ++++++++++++++++++++++++++++++++++++++++++++ content/templates/base.html | 8 +-- 3 files changed, 133 insertions(+), 133 deletions(-) delete mode 100644 content/org-ssg.toml create mode 100644 content/orgo.toml (limited to 'content') diff --git a/content/org-ssg.toml b/content/org-ssg.toml deleted file mode 100644 index a1db6a0..0000000 --- a/content/org-ssg.toml +++ /dev/null @@ -1,129 +0,0 @@ -# org-ssg 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. -# -# org-ssg serve content -o /tmp/preview # write and preview -# org-ssg 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 org-ssg 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 /. org-ssg 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 org-ssg 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 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 diff --git a/content/templates/base.html b/content/templates/base.html index 090cbea..e35098c 100644 --- a/content/templates/base.html +++ b/content/templates/base.html @@ -1,12 +1,12 @@ -{# Page layout for org-ssg, mirroring theme/templates/base.html. +{# Page layout for orgo, mirroring theme/templates/base.html. Styling comes from theme/static/styles.css, published by `[build] assets` in - org-ssg.toml — the same directory weblorg serves at /, read in place rather than + orgo.toml — the same directory weblorg serves at /, read in place rather than copied. weblorg links the minified styles.min.css instead; that file is gitignored build output and the rules are the same, so this links the tracked one. Available here: page (.title .url .source .date .date_iso .tags .excerpt .toc - .keywords), site, nav, root, stylesheet. See the org-ssg guide on Templates. #} + .keywords), site, nav, root, stylesheet. See the orgo guide on Templates. #} {#- The table of contents, in the shape Emacs exports it. `page.toc` is a tree of {title, anchor, level, number, children}, and it is empty when the page has no headings or says `#+OPTIONS: toc:nil` — so pages that opt out render nothing here. @@ -78,7 +78,7 @@

{% for tag in page.tags %}#{{ tag }} {% endfor %}

{%- endif %} {#- Blog posts add a reply footer inside this block; see post.html, which the - [[pages]] rule in org-ssg.toml selects for everything under blog/. #} + [[pages]] rule in orgo.toml selects for everything under blog/. #}
{{- toc(page.toc) }} {% block content %}{{ body | safe }}{% endblock %}
-- cgit v1.2.3