flux.vision, tobias.raayoni-last.com and randogoth.com. They were one site until October 2026, serving four audiences from a single dated list, which is the only format that can hold unrelated things at once. flux.vision is recovered from the Wayback Machine, where it had sat since being deleted in 2021: 90 articles, closed and maintained rather than updated. tobias.raayoni-last.com is the professional record, 97 articles back to 1999. randogoth.com is the technical work, 41 articles across six areas, served as an ANSI bulletin board. History starts here deliberately. The development history, the 266-row inventory that records why each article went where it did, the Wayback pipelines, the pruned articles, the source archives and the full-size images are kept beside the repo rather than in it, so a clone is the web presence and not the argument that produced it. REFACTOR.md is gitignored for the same reason. See README.md for where that material lives, and keep it: the sort is not reproducible from these three directories alone. Each site documents itself in its own README, including the traps that cost time and look like nothing when you get them wrong.
70 lines
3 KiB
Markdown
70 lines
3 KiB
Markdown
# tobias.raayoni-last.com, the professional record
|
|
|
|
Client work, portfolio, CV. 97 articles and 4 pages, running back to 1999.
|
|
|
|
The audience is clients, employers and galleries, which is the whole reason this is its own domain:
|
|
it was sharing a page with a media-arts archive and a devlog, and a page that serves three audiences
|
|
serves none of them.
|
|
|
|
## Building
|
|
|
|
```sh
|
|
uv run --quiet --with pelican --with markdown -- pelican content -o output -s pelicanconf.py
|
|
```
|
|
|
|
No blog, no feed. This is a record, not a stream.
|
|
|
|
## Disciplines
|
|
|
|
| Discipline | n | |
|
|
|---|---|---|
|
|
| `web` | 38 | sites, shops, interfaces |
|
|
| `live` | 15 | events run, produced or managed |
|
|
| `motion` | 14 | film, trailers, titles |
|
|
| `design` | 12 | identity, print, covers |
|
|
| `consulting` | 9 | advisory and strategy |
|
|
| `interactive` | 6 | installations and interfaces with a public |
|
|
| `cv` | 3 | employment history |
|
|
|
|
The URLs do not carry the discipline. `ARTICLE_URL` is `{slug}.html` because this taxonomy has
|
|
already been reworked once, and every reassignment would have moved a URL. Slugs are stable;
|
|
categories are not.
|
|
|
|
## Theme
|
|
|
|
`raayoni`, written for this site. Every Pelican theme is a blog theme and this is not a blog.
|
|
|
|
A single Muuri grid over everything, filterable and sortable client side, which is why
|
|
`DEFAULT_PAGINATION` is off: paginating would break both. Light and dark, with `THEME_DEFAULT` set
|
|
to dark rather than following the system, and an explicit toggle persisted in `localStorage`.
|
|
|
|
`SUMMARY_MAX_LENGTH` is 18 because most entries have no `Summary` and Pelican derives one from the
|
|
body. The median entry is 34 words, so a tile caption is a first clause rather than an excerpt.
|
|
|
|
## Plugins
|
|
|
|
| | |
|
|
|---|---|
|
|
| `assetcheck.py` | flags `Thumb:`/`Background:` whose file did not survive, so the template renders a typographic card rather than a broken image |
|
|
| `lostimages.py` | the same for images inside article bodies: 22 of 410 point at files no archive holds |
|
|
|
|
`lostimages.py` is shared: `flux.vision` loads it from here via its own `PLUGIN_PATHS`.
|
|
|
|
Both resolve at build time on purpose. Doing it in the browser with an error handler means a visible
|
|
flash of broken image on a third of the grid.
|
|
|
|
## Traps
|
|
|
|
**Do not add `nl2br`.** The recovered bodies are hard wrapped at about 70 characters, so it turns
|
|
every source line into a forced break: 29 across the site, each one mid-sentence. They fall near the
|
|
natural wrap, so at desktop width they are invisible and on a phone the paragraph shatters. This was
|
|
found by counting `<br>` in the built output, not by looking at the site.
|
|
|
|
**The references to lost images stay in the Markdown.** The reference records what was there. The
|
|
plugins remove them from the output; nothing should remove them from the source.
|
|
|
|
## Assets
|
|
|
|
`content/library/` 239 files, `content/images/` 97. Images are stored at 1600px; the full-size
|
|
originals are in the backup named in the repo README, along with the inventory that records why each
|
|
article is here rather than on one of the other two sites.
|