Commit 5d60a70d6a

5d60a70d6a963c234d311ca87829cf3150f72ef6

parent: 87068dcdb9

Unsigned

cmc <hello@cleberg.net> · 2026-08-11 21:48 UTC

org-ssg is called orgo now

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.

Layout: unified · split

content/org-ssg.toml → content/orgo.toml renamed +6 −6
@@ -1,13 +1,13 @@
1# org-ssg configuration for cleberg.net. 1# orgo configuration for cleberg.net.
2# 2#
3# Lives in content/ because that directory is the site's URL root: content/blog/post.org 3# Lives in content/ because that directory is the site's URL root: content/blog/post.org
4# publishes at /blog/post.html. Neither this file nor templates/ is published. 4# publishes at /blog/post.html. Neither this file nor templates/ is published.
5# 5#
6# org-ssg serve content -o /tmp/preview # write and preview 6# orgo serve content -o /tmp/preview # write and preview
7# org-ssg build content -o _site --strict # build for real, failing on broken links 7# orgo build content -o _site --strict # build for real, failing on broken links
8# 8#
9# This sits alongside the existing weblorg setup (publish.el, theme/) and changes nothing 9# This sits alongside the existing weblorg setup (publish.el, theme/) and changes nothing
10# about it. Delete this file and content/templates/ to remove org-ssg entirely. 10# about it. Delete this file and content/templates/ to remove orgo entirely.
11 11
12[site] 12[site]
13title = "cleberg.net" 13title = "cleberg.net"
@@ -32,7 +32,7 @@ mode = "explicit"
32pages = ["blog/index.html", "garden/index.html", "salary/index.org"] 32pages = ["blog/index.html", "garden/index.html", "salary/index.org"]
33 33
34[build] 34[build]
35# theme/static/ is weblorg's static root, published at /. org-ssg reads it from here 35# theme/static/ is weblorg's static root, published at /. orgo reads it from here
36# rather than needing its files copied next to the writing — one copy, not two. 36# rather than needing its files copied next to the writing — one copy, not two.
37assets = ["../theme/static"] 37assets = ["../theme/static"]
38 38
@@ -74,7 +74,7 @@ section_numbers = true
74# content/index.org was deleted to make room: it held only #+title and #+description, 74# content/index.org was deleted to make room: it held only #+title and #+description,
75# both of which are now [site] settings above. Restore it any time with 75# both of which are now [site] settings above. Restore it any time with
76# `git checkout content/index.org`, but then this collection must output somewhere else — 76# `git checkout content/index.org`, but then this collection must output somewhere else —
77# two pages cannot claim one URL, and org-ssg fails the build rather than picking a winner. 77# two pages cannot claim one URL, and orgo fails the build rather than picking a winner.
78[[collections]] 78[[collections]]
79source = "blog" 79source = "blog"
80output = "index.html" 80output = "index.html"
content/templates/base.html +4 −4
@@ -1,12 +1,12 @@
1{# Page layout for org-ssg, mirroring theme/templates/base.html. 1{# Page layout for orgo, mirroring theme/templates/base.html.
2 2
3 Styling comes from theme/static/styles.css, published by `[build] assets` in 3 Styling comes from theme/static/styles.css, published by `[build] assets` in
4 org-ssg.toml — the same directory weblorg serves at /, read in place rather than 4 orgo.toml — the same directory weblorg serves at /, read in place rather than
5 copied. weblorg links the minified styles.min.css instead; that file is gitignored 5 copied. weblorg links the minified styles.min.css instead; that file is gitignored
6 build output and the rules are the same, so this links the tracked one. 6 build output and the rules are the same, so this links the tracked one.
7 7
8 Available here: page (.title .url .source .date .date_iso .tags .excerpt .toc 8 Available here: page (.title .url .source .date .date_iso .tags .excerpt .toc
9 .keywords), site, nav, root, stylesheet. See the org-ssg guide on Templates. #} 9 .keywords), site, nav, root, stylesheet. See the orgo guide on Templates. #}
10{#- The table of contents, in the shape Emacs exports it. `page.toc` is a tree of 10{#- The table of contents, in the shape Emacs exports it. `page.toc` is a tree of
11 {title, anchor, level, number, children}, and it is empty when the page has no 11 {title, anchor, level, number, children}, and it is empty when the page has no
12 headings or says `#+OPTIONS: toc:nil` — so pages that opt out render nothing here. 12 headings or says `#+OPTIONS: toc:nil` — so pages that opt out render nothing here.
@@ -78,7 +78,7 @@
78<p>{% for tag in page.tags %}<a href="{{ root }}tags/{{ tag }}.html">#{{ tag }}</a> {% endfor %}</p> 78<p>{% for tag in page.tags %}<a href="{{ root }}tags/{{ tag }}.html">#{{ tag }}</a> {% endfor %}</p>
79{%- endif %} 79{%- endif %}
80{#- Blog posts add a reply footer inside this block; see post.html, which the 80{#- Blog posts add a reply footer inside this block; see post.html, which the
81 [[pages]] rule in org-ssg.toml selects for everything under blog/. #} 81 [[pages]] rule in orgo.toml selects for everything under blog/. #}
82<div> 82<div>
83{{- toc(page.toc) }} 83{{- toc(page.toc) }}
84{% block content %}{{ body | safe }}{% endblock %}</div> 84{% block content %}{{ body | safe }}{% endblock %}</div>