No description
Find a file
randogoth 0d7e98a0d9 feat: make smolnet usable by a site that is not randogoth.com
Three changes, each found by pointing it at zonetoast, which files by tag
rather than category and writes its links by hand.

A single-bucket taxonomy is dropped. Pelican gives every uncategorised article
its DEFAULT_CATEGORY, so a tag-filed site still has one category holding
everything, and offering "misc, 14" as the only way in is worse than offering
nothing at all. Below SMOLNET_MIN_SECTIONS the whole section index goes.
randogoth.com still gets its six areas.

Links written against the HTML build are rewritten. {filename} is the portable
form, but content predating that knowledge hardcodes the output URL instead,
and zonetoast is full of ](/go-west.html). A capsule has no .html and the
daemon resolves a name carrying an extension literally, so all seventeen of
them 404'd. They now map onto the flat capsule slug, /pages/glossary.html
included, and a target matching no document is reported rather than silently
rewritten into a second broken link.

The line under an article title is a setting. Date and category is the right
default, but a site whose category is always `misc` has something better to
say: zonetoast carries `era`, which is what it is actually organised around,
so its articles read "17 May 2026 · 1996".

Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
2026-10-06 12:21:46 +03:00
flux.vision fix: recover one hotlinked image, retire the other eleven 2026-10-06 11:04:28 +03:00
plugins feat: make smolnet usable by a site that is not randogoth.com 2026-10-06 12:21:46 +03:00
randogoth.com fix: recover one hotlinked image, retire the other eleven 2026-10-06 11:04:28 +03:00
tobias.raayoni-last.com fix: recover one hotlinked image, retire the other eleven 2026-10-06 11:04:28 +03:00
.gitignore
justfile feat: add justfile recipe to kill backgrounded preview servers 2026-10-06 08:45:13 +03:00
README.md

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.