<feed xmlns='http://www.w3.org/2005/Atom'>
<title>cleberg.net.git/content/robots.txt, branch migrate-to-orgo</title>
<subtitle>My personal web garden &amp; blog.
</subtitle>
<id>http://git.krz.sh/cmc/cleberg.net.git/atom?h=migrate-to-orgo</id>
<link rel='self' href='http://git.krz.sh/cmc/cleberg.net.git/atom?h=migrate-to-orgo'/>
<link rel='alternate' type='text/html' href='http://git.krz.sh/cmc/cleberg.net.git/'/>
<updated>2026-08-11T20:31:39+00:00</updated>
<entry>
<title>Publish theme/static directly instead of copying it into content</title>
<updated>2026-08-11T20:31:39+00:00</updated>
<author>
<name>Christian Cleberg</name>
<email>hello@cleberg.net</email>
</author>
<published>2026-08-11T20:31:39+00:00</published>
<link rel='alternate' type='text/html' href='http://git.krz.sh/cmc/cleberg.net.git/commit/?id=4d3f7fe4d19b0bff06f53d11f34746b421c7c042'/>
<id>urn:sha1:4d3f7fe4d19b0bff06f53d11f34746b421c7c042</id>
<content type='text'>
org-ssg can read asset directories outside its source now, so the four files
copied in — gpg.txt, robots.txt, salary.csv and styles.css — go back to having
one home. `[build] assets = ["../theme/static"]` publishes that directory at /,
which is where weblorg serves it from too.

That also removes the note asking whoever comes next to keep two stylesheets
identical, and picks up styles.min.css as a side effect.
</content>
</entry>
<entry>
<title>Bring the org-ssg templates to parity with the live site</title>
<updated>2026-08-11T18:41:18+00:00</updated>
<author>
<name>Christian Cleberg</name>
<email>hello@cleberg.net</email>
</author>
<published>2026-08-11T18:41:18+00:00</published>
<link rel='alternate' type='text/html' href='http://git.krz.sh/cmc/cleberg.net.git/commit/?id=ad2d5934148e17efa20e77879ddd45950209852b'/>
<id>urn:sha1:ad2d5934148e17efa20e77879ddd45950209852b</id>
<content type='text'>
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
  &lt;title&gt; 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, &lt;main id="main-content"&gt;,
  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 &lt;description&gt; 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>
</entry>
</feed>
