# 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: ```sh 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.