From 3c1668e02395d41bb83a4df3d85bf47a7bbdbef4 Mon Sep 17 00:00:00 2001 From: Gabriel Schneider Date: Thu, 1 Oct 2026 12:41:34 -0300 Subject: The landing leads with live text and plays terminal casts first; the Themes page gets a gallery; install starts at the clone The landing's own words sit in one `landing` record in site.typ: a lead on the core idea (any text is live: right-click looks, middle-click runs), where it runs, and a status line whose version is read from build.zig.zon. Recordings come in two shelves: "In a terminal", asciicast players from docs/site/casts/casts.toml (the first autoplays; all loop and fit the width; data inline, so they play from file://), then "In its own window", the GUI clips. asciinema-player 3.17.0 is vendored in docs/site/player with its Apache-2.0 licence, from `npm pack`. The Themes page shows #theme-gallery() from media/themes/themes.toml, a thumbnail per theme opening the full picture; on paper it is nothing. Both shelves and the gallery show placeholders until their files exist. `project` in style.typ lists the mirrors (sourcehut, git.0x4200.cafe); install.typ clones from the first and names them all, and the footer links each. The README clones before it builds. The scripting interface is a virtual filesystem served over 9P, never just a filesystem, in the tagline, captions and README. Co-Authored-By: Claude Opus 5.5 --- docs/typ/style.typ | 39 ++++++++++++++++++++++++++++++++++----- 1 file changed, 34 insertions(+), 5 deletions(-) (limited to 'docs/typ/style.typ') diff --git a/docs/typ/style.typ b/docs/typ/style.typ index ed713537..065cc210 100644 --- a/docs/typ/style.typ +++ b/docs/typ/style.typ @@ -59,8 +59,8 @@ (id: "building", title: "Building, for contributors", file: "building.typ"), ) -/// The one-line pitch: the A4 sheet's header and the site's landing page. -#let tagline = "acme's tags and three buttons, helix's keys, terminals as panes, the editor as a 9P filesystem" +/// The one-line pitch: the A4 sheet's header and the book's title page. +#let tagline = "acme's tags and three buttons, helix's keys, terminals as panes, the editor as a virtual filesystem over 9P" /// The tutor, shown as it is in the editor (`Tutor`), from the repo root. #let tutor-path = "/src/tutor.txt" @@ -254,9 +254,16 @@ } } -/// Where pardes lives and under what licence, for the site's footer (and -/// any output that wants them). none until decided. -#let project = (source: "https://git.0x4200.cafe/pardes", license: "ISC") +/// Where pardes lives and under what licence: install.typ, the site's +/// landing and its footer all read it. Every mirror holds the same tree; +/// the first is the one the install line clones. A new mirror is one line. +#let project = ( + mirrors: ( + (name: "sourcehut", web: "https://git.sr.ht/~gbrls/pardes", clone: "https://git.sr.ht/~gbrls/pardes"), + (name: "git.0x4200.cafe", web: "https://git.0x4200.cafe/pardes", clone: "https://git.0x4200.cafe/pardes.git"), + ), + license: "ISC", +) /// A glossary: like #pairs, under its own heading. On paper the heading /// and the table; in HTML a
that starts closed, its summary the @@ -270,3 +277,25 @@ [#heading(title) #lbl] pairs(..cells) } + +/// Every theme as a picture, on the site's Themes page; nothing on paper, +/// where forty-odd screenshots would only add weight. Reads +/// docs/site/media/themes/themes.toml: `ready` (absent means true) and a +/// [[theme]] per theme, in NextColor's order, with `name`, `file` (under +/// media/themes/) and `kind` ("light" or "dark"). +#let theme-gallery() = context if html-out() { + let g = toml("../site/media/themes/themes.toml") + let ready = g.at("ready", default: true) + heading[Every theme] + html.elem("div", attrs: (class: "gallery"), for t in g.theme { + let src = "media/themes/" + t.file + html.elem("figure", attrs: (class: "shot " + t.kind), { + if ready { + html.elem("a", attrs: (href: src), html.elem("img", attrs: (src: src, alt: t.name + " (" + t.kind + ")", loading: "lazy"))) + } else { + html.elem("div", attrs: (class: "pending"), "screenshot to come") + } + html.elem("figcaption", raw(t.name)) + }) + }) +} -- cgit v1.3