# Thylacine -- all articles > Notes on an operating system. Complete text of every article on https://aip.treeso.net, newest first. Index: https://aip.treeso.net/llms.txt --- # Type specimen - URL: https://aip.treeso.net/articles/specimen/ - Markdown: https://aip.treeso.net/articles/specimen/index.md - Published: 2026-08-17 - Author: Michal Frdlik > Every element the templates render, on one page. Once the real articles land, set hidden = true rather than deleting it -- it is the page you check a CSS change against. This page exists to be looked at, not read. It exercises every element the templates render, so a change to `sass/style.scss` can be checked against one page instead of against a memory of what the site used to look like. The palette is **Bonfire**, committed in the Thylacine tree at `docs/UTOPIA-VISUAL.md` §1. Its background is `#0e0c0c` -- not red, not warm grey, but near-black with a barely perceptible red cast, the way darkness looks when a fire a few hundred metres away cannot illuminate anything and only shifts the colour temperature of the air. ## Prose Body text is `fg`, `#e4ddd8`. *Emphasis* and **strong** carry the usual weight. Inline code such as `burrow_attach` sits on the lifted `surface` tone. Links [look like this](https://www.getzola.org/) and underline on hover. > A blockquote takes the ember rule on its left edge. The shell yields commands > to the kernel; every invocation is a derivation, which is what the mark means. Footnotes work and land at the bottom of the article.[^1] [^1]: Like so. The return arrow is generated by the markdown renderer. ### A third-level heading Every heading gets an anchor link, so a paragraph deep in a long article stays addressable. Hover a heading to see it. 1. Ordered lists number themselves. 2. And nest: - like this, - and this. ## Code Highlighting comes from a Bonfire theme in `extra/bonfire.json`, rendered as CSS classes rather than inline styles. The colours are the committed palette, so a code block here and the same code in `nora` are the same colours -- not an approximation of them. ```rust /// The client half of the graphics protocol. pub struct Surface { weave: Fd, slots: usize, generation: u32, } impl Surface { pub fn present(&mut self, rect: Rect) -> Result<(), TapError> { let tag = self.ring.submit(Op::Present { rect, slot: self.slot })?; loop { match self.ring.reap()? { Some(cqe) if cqe.tag == tag => break, Some(cqe) => self.pending.push(cqe), None => continue, } } self.slot = (self.slot + 1) % self.slots; Ok(()) } } ``` ```c /* Extinction Level Event -- the thematic name for a kernel panic. */ void extinction(const char *msg) { int cpu = cpu_id(); if (g_extinction_depth[cpu]++ > 0) _hang(); uart_puts("\nEXTINCTION: "); uart_puts(msg); uart_puts("\n"); halls_dump(); _hang(); } ``` ```toml [markdown.highlighting] style = "class" theme = "bonfire" extra_themes = ["extra/bonfire.json"] ``` ```sh # The SMP soundness gate. Single boots lie. tools/ci-smp-gate.sh SMP_GATE_CONFIGS="default-smp4 ubsan-smp4" tools/ci-smp-gate.sh ``` A block with no language declared falls back to plain text: ``` Thylacine v0.1-dev booting... arch: arm64 cpus: 4 Thylacine boot OK ``` ## Tables | Role | Hex | Use | |---|---|---| | `bg` | `#0e0c0c` | Warm near-black | | `fg` | `#e4ddd8` | Primary text | | `ember` | `#e07840` | The prompt glyph, the cursor, the fire | | `slate` | `#8a9ac8` | Keywords, control flow | | `dusk` | `#a898c8` | String literals | | `smoke` | `#7a8a7a` | Comments | Wide tables scroll inside their own container rather than pushing the page sideways. --- A horizontal rule above. Below it, the end of the specimen. --- # Colophon - URL: https://aip.treeso.net/articles/colophon/ - Markdown: https://aip.treeso.net/articles/colophon/index.md - Published: 2026-08-16 - Author: Michal Frdlik > How this site is built, and the one thing about it that is not a stylistic choice. This site is [Zola](https://www.getzola.org/) — a static site generator that is a single Rust binary with no runtime, no plugin ecosystem and no dependency tree. There is nothing to install, nothing to keep patched, and a checkout in five years still builds. For a site whose entire job is to serve a few articles about an operating system, that is the correct amount of machinery. It is served from Cloudflare, built from a pinned Zola binary that the build script downloads itself rather than one the platform provides. ## The palette is not a stylistic choice The colours are **Bonfire**, and they are not chosen to suit a website. They are transcribed from `docs/UTOPIA-VISUAL.md` in the Thylacine tree, where they are committed scripture governing the shell, the editor and the terminal configuration the system ships. The background is `#0e0c0c`: near-black with a barely perceptible red cast — the way darkness looks when a fire a few hundred metres away cannot illuminate anything and only shifts the colour temperature of the air. The prompt glyph `⊢` in `#e07840` belongs to that air rather than contrasting against it. The syntax highlighting matters more than it looks. Zola 0.22 replaced its highlighter with [giallo](https://github.com/getzola/giallo), which consumes VSCode-format themes, so the seven Bonfire syntax hues are a theme file rather than an approximation in CSS: | Role | Hex | Used for | |---|---|---| | `slate` | `#8a9ac8` | keywords, control flow, storage | | `sage` | `#8ab8a8` | types, structs, imports | | `sand` | `#c8a882` | members, attributes, fields | | `moss` | `#b8d098` | constants, macros, enum variants | | `ash` | `#b07060` | function names, identifiers | | `dusk` | `#a898c8` | string literals | | `smoke` | `#7a8a7a` | comments | A code block on this page is therefore rendered in the same values as the same code in the system's own editor. Not similar values — the same ones, checked at build time out of one file. ## What is deliberately absent No webfonts, no analytics, no third-party requests of any kind. The recommended Utopia typeface is PragmataPro, which is commercial and not bundled, so the stylesheet asks for it and falls through to a system monospace for everyone who does not own it. Nothing here phones home, and the page works with JavaScript disabled because there is none.