62 lines
3 KiB
Markdown
62 lines
3 KiB
Markdown
|
|
# 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.
|