| Commit message (Collapse) | Author | Age | Files | Lines |
| |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
Remove what the migration left behind, then cut build.py down to the work
orgo does not do: 443 lines to 168.
- Delete publish.el and theme/templates/, superseded by content/orgo.toml
and content/templates/. theme/static/ stays; orgo publishes it as assets.
- Drop the tag builder, the org-source copy, and the helpers that only fed
them. orgo generates /tags/ and a page per tag from a collection.
- Rewrite the README and the migration-era comments that explained the
config by pointing at what weblorg used to do.
- Serve styles.css as authored. Minifying 1KB of CSS saved 52 bytes over
the wire once compressed, which did not pay for a build step and a
toolchain dependency.
- Stop wiping the output directory. The .orgo-cache.json inside it is what
makes a build incremental, and orgo already prunes outputs whose source
is gone and re-emits any that are missing. Production keeps .build/ and
development gets .build-dev/, because production rewrites image URLs in
the output and a shared directory would let one environment reuse pages
rendered for the other.
An incremental build is byte-identical to a clean one, and the site output
is unchanged apart from the /uses/ stack row.
|
| |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
Two of the differences the page-by-page diff against the live site turned up.
The TOC was the larger one: live has one on 171 pages and the org-ssg build had
none. `[html] toc = true` only *exposes* `page.toc` — rendering it is the
layout's job, and base.html never did. It now emits the same
`div#table-of-contents` Emacs does, from a recursive macro over the tree. The
anchors already matched, so every link lands where the live one does. Pages that
say `#+OPTIONS: toc:nil` get an empty tree and render nothing, which is why
/uses/, /now/ and /salary/ have no TOC here either — the same three as live.
/blog/ now breaks its list under year headings, as the live index does, using
`page.year` and minijinja's groupby. `group_by_year` at the top of blog.html
turns it off for one flat list.
After both, /blog/ matches the live page's content exactly, and 171 of 171 TOCs
are accounted for.
|
|
|
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
<title> 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.
|