diff options
| author | Gabriel Schneider <[email protected]> | 2026-10-01 12:41:34 -0300 |
|---|---|---|
| committer | Gabriel Schneider <[email protected]> | 2026-10-01 12:41:34 -0300 |
| commit | 3c1668e02395d41bb83a4df3d85bf47a7bbdbef4 (patch) | |
| tree | 93c25d9365a0800703f5f9ec2d81fe6acec59b3a /docs/typ | |
| parent | 9a7830c62d25d83754bd58d0e705501f71656c69 (diff) | |
| download | pardes-3c1668e02395d41bb83a4df3d85bf47a7bbdbef4.tar.gz pardes-3c1668e02395d41bb83a4df3d85bf47a7bbdbef4.zip | |
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 <[email protected]>
Diffstat (limited to 'docs/typ')
| -rw-r--r-- | docs/typ/install.typ | 11 | ||||
| -rw-r--r-- | docs/typ/style.typ | 39 | ||||
| -rw-r--r-- | docs/typ/themes.typ | 4 |
3 files changed, 45 insertions, 9 deletions
diff --git a/docs/typ/install.typ b/docs/typ/install.typ index 37e07d1a..6d853f3f 100644 --- a/docs/typ/install.typ +++ b/docs/typ/install.typ @@ -1,6 +1,11 @@ -// Installing pardes, in three lines: included by setup.typ and by the -// site's landing page, so it is written once. -#import "style.typ": cmd +// Installing pardes: the clone and the build, included by setup.typ and by +// the site's landing page, so it is written once. The mirrors come from +// `project` in style.typ. +#import "style.typ": cmd, project + +#let first = project.mirrors.first() +#cmd("git clone " + first.clone + " && cd pardes") +Every mirror holds the same tree: #project.mirrors.map(m => link(m.web, m.name)).join(", "). With Zig 0.16 (the build fetches everything else): #cmd("# pardes, in a terminal\nzig build -Dplatform=tty --prefix ~/.local") 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 <details> 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)) + }) + }) +} diff --git a/docs/typ/themes.typ b/docs/typ/themes.typ index dc81bfdf..a85abb23 100644 --- a/docs/typ/themes.typ +++ b/docs/typ/themes.typ @@ -1,6 +1,6 @@ // Themes: choosing one, the native palettes and the faithful ports, and // the roles a theme file sets. -#import "style.typ": key, keys, btn, chord, word, tag, addr, file, cmd, doc, pairs +#import "style.typ": key, keys, btn, chord, word, tag, addr, file, cmd, doc, pairs, theme-gallery #word("Themes") (#key("SPC t t")) lists every theme as a word to click; `Theme <name>` sets one anywhere, and the same line in the startup file @@ -11,6 +11,8 @@ default. `lapis` draws its ornament in the GUI; `lapis_plain` is the same theme on flat grounds, keeping its framed and shadowed tags and its file-name shadow. +#theme-gallery() + = The native themes #pairs( |
