| Commit message (Collapse) | Author | Age | Files | Lines |
| |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
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.
|
| |
|
|
|
|
| |
Transcribing theme/templates/index.html into home.html turned "I've" into
"I’ve", so the org-ssg build rendered a curly apostrophe where the live
page has an ASCII one — the only character that differed between them.
|
| |
|
|
|
|
|
|
|
|
|
| |
The reply-by-email and Bubbles lines were emitted from base.html behind a test
on the page's URL, because org-ssg had no way for a page to pick a layout. It
does now, so they live in a post.html that extends the shared one — the same
split weblorg has between theme/templates/base.html and post.html — selected by
a [[pages]] rule for blog/.
All 169 posts carry the footer; /blog/ itself does not, being a generated
listing rather than a post.
|
| |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
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.
|
| |
|
|
|
|
|
|
| |
Salary rendered before Blog and Garden because the two section indexes are
generated by collections, and an explicit nav could only name source files —
generated pages were appended after everything listed. org-ssg now accepts a
generated page's output path in `nav.pages`, so listing all three puts them in
the order the live site uses. /tags/ stays unlisted and lands last.
|
| |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
Builds the same site with org-ssg instead of weblorg, reproducing all 182 URLs the
current .build output has, plus 13 per-tag pages it does not.
org-ssg serve content -o /tmp/preview # write, with live reload
org-ssg build content -o _site --strict # build, failing on broken links
content/ is the source because it is the URL root: content/blog/post.org publishes at
/blog/post.html. Pointing at the repository root instead would prefix every URL with
/content/ and copy build.py, publish.el and LICENSE into the site as assets.
Added:
- content/org-ssg.toml — site metadata, an explicit nav, and four generated pages:
the home page, the blog index, the garden index, and tag pages with an index. URLs
come from #+SLUG:, which is why 2018-11-28-aes-encryption.org still publishes at
/blog/aes-encryption.html.
- content/templates/ — base, home, list and tags. Plain layouts using the .post-list
classes styles.css already defines, not a port of theme/templates/, which are
templatel and a different language.
- content/styles.css — a verbatim copy of theme/static/styles.css, because org-ssg
publishes assets from inside its source directory. `diff` between the two should stay
empty; consolidate them if this migration goes further.
Removed content/index.org. It held only #+title and #+description, both now [site]
settings, and a generated home page cannot share a URL with an authored one — org-ssg
fails that build rather than picking a winner. Restore with
`git checkout content/index.org`, but then the home collection needs a different output.
Nothing in the weblorg setup changed. publish.el, theme/ and build.py still work as
before, so both builds coexist until one is chosen.
Known difference: the nav renders Home, Salary, Blog, Garden, Tags — explicit source
pages come before generated ones, where the live site orders Salary last.
|
| | |
|
| |
|
|
|
|
|
|
| |
Correct a https:/// typo in the tumblr post org source that produced a
404ing cross-origin image URL. Because the extra slash meant the string
no longer matched, rewrite_img_urls() skipped it and shipped the broken
URL. Make the rewrite pattern tolerate stray slashes so a source typo
can't silently pass through un-rewritten again.
|
| |
|
|
|
|
|
| |
Drop the third-party vote.js script and its mount div so posts no longer
auto-fetch from bubbles.town (174 pages), completing onion
self-containment. The opt-in 'comment on Bubbles' link stays. Remove the
now-orphaned .bubbles-vote CSS rule.
|
| | |
|
| |
|
|
|
|
|
|
|
| |
Rewrite absolute img.cleberg.net URLs to /img/ in production builds so the
onion serves images from its own origin instead of fetching them off-onion.
Dev builds keep the absolute URLs so local previews still load images.
Requires the server to serve /var/www/img/ at /img/ on the cleberg.net
vhost (ln -s /var/www/img /var/www/cleberg.net/img).
|
| |
|
|
|
|
|
| |
Emit /styles.min.css instead of the prod-absolute
https://cleberg.net/styles.min.css so the onion renders standalone
without fetching its stylesheet off-onion. Drop the now-dead build.py
replace that rewrote the same string.
|
| | |
|
| | |
|
| | |
|
| | |
|
| | |
|
| | |
|
| | |
|
| | |
|
| | |
|
| | |
|
| | |
|
| | |
|
| | |
|
| | |
|
| | |
|
| | |
|
| | |
|
| | |
|
| | |
|
| | |
|
| | |
|
| | |
|
| | |
|
| | |
|
| | |
|
| | |
|
| | |
|
| | |
|
| | |
|
| | |
|
| | |
|
| | |
|
| | |
|
| | |
|
| | |
|
| | |
|
| | |
|
| | |
|