No description
Find a file
randogoth e025f32f61 Fix rewrite_html_links for sites whose URL isn't a bare {slug}.html
It derived the slug to match against by stripping ".html" off a
hardcoded link's basename, which only equals the real slug on a site
whose ARTICLE_URL/PAGE_URL *is* "{slug}.html" -- true for randogoth.com,
where this was first written and verified, false for sublunar.space's
ARTICLE_URL ("{date:%Y}-{date:%m}-{slug}.html": "chaxiraxi"'s real link
target is "2018-06-chaxiraxi.html", whose basename-minus-extension is
"2018-06-chaxiraxi", never equal to the slug "chaxiraxi"). Every such
article-to-article link passed smolnet's own "no match" branch and
reached the capsule unrewritten, pointing at a path itsybitsy has no
document for.

Matches against each document's own rendered .url instead, which is
correct for any ARTICLE_URL/PAGE_URL shape rather than one specific
one. Verified against sublunar.space's full content: the reported
broken link and 160+ others like it across the corpus now resolve;
every remaining unrewritten .html link left in the capsule traces to a
target genuinely absent from it (a tag-index page, a draft, a hidden
page) or to a pre-existing dead link already broken on the live HTML
site, unrelated to this fix.

Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>
2026-10-10 15:39:26 +03:00
flux.vision fix: recover one hotlinked image, retire the other eleven 2026-10-06 11:04:28 +03:00
plugins Fix rewrite_html_links for sites whose URL isn't a bare {slug}.html 2026-10-10 15:39:26 +03:00
randogoth.com feat: make the capsule subscribable over Gemini 2026-10-09 17:19:50 +03:00
tobias.raayoni-last.com pruned, moved mutantenkino 2026-10-07 16:51:17 +03:00
.gitignore Three sites, one directory each 2026-10-05 20:54:45 +03:00
justfile feat: add justfile recipe to kill backgrounded preview servers 2026-10-06 08:45:13 +03:00
README.md Three sites, one directory each 2026-10-05 20:54:45 +03:00

sites

Three domains, one directory each, one audience each.

Directory Domain Subject Audience
flux.vision/ flux.vision Kiritan Flux: media arts, VJ, performance, installations, 2003-2021 festival and art world
tobias.raayoni-last.com/ tobias.raayoni-last.com client work, portfolio, CV clients, employers, galleries
randogoth.com/ randogoth.com the technical work, six areas devs, retro and small-net readers

They were one site until October 2026. The split is the fix: four audiences were being handed one page, and a page that serves four audiences collapses into the only format that can hold unrelated things, which is a dated list.

sublunar.space is deliberately not here. It is a working blog with nine years and 440 commits of its own voice, and it keeps its own repo.

Building

All three are Pelican, with no shared build. Each stands alone:

cd flux.vision        # or tobias.raayoni-last.com, or randogoth.com
uv run --quiet --with pelican --with markdown -- pelican content -o output -s pelicanconf.py

Each directory has its own README covering its theme, its taxonomy and the traps specific to it.

articles theme notes
flux.vision/ 90 flux recovered from the Wayback Machine; closed, maintained not updated
tobias.raayoni-last.com/ 97 raayoni grid of tiles, light and dark
randogoth.com/ 41 bbs an ANSI bulletin board, 80 columns; mc-pelican is the fallback

Deployment

Built and served on bucur. A push triggers a webhook that builds the changed site and rsyncs it into place. Content does not trigger a system activation: the site derivations are flake packages, so a typo costs a Pelican run rather than a nixos-rebuild switch.

Shared conventions

  • No em dashes. Commas, colons, full stops or ·.
  • Flat slugs. {slug}.html on all three. Categories get reworked; slugs should not move.
  • No nl2br. The recovered bodies are hard wrapped at about 70 characters, so it turns every source line into a forced break. This has been fixed twice; do not add it back.
  • Lost images are handled at build time, not in the browser. The references stay in the Markdown because the reference records what was there; plugins/lostimages.py strips them from the output.
  • Check the built output, not the source. Several bugs here were invisible at a glance and obvious to a counter: forced line breaks that fell near the natural wrap, box drawing a column short, a config change that silently emptied every hotkey.

The working material

The inventory, the recovery pipelines, the pruned articles, the source archives and REFACTOR.md live outside this repo, at /mnt/data/Backup/sites-restructure-2026-10-05/. A clone is the three sites, not the argument that produced them.

That backup is worth keeping: the sort is not reproducible from the sites alone. inventory.tsv records why each of 266 articles went where it did, and _pruned/ is the only record of what was taken out.