summaryrefslogtreecommitdiff
path: root/docs/typ/style.typ
Commit message (Collapse)AuthorAge
* Release Pardes 0.24HEADrelease-0.24mainGabriel Schneider4 hours
| | | | Co-Authored-By: Claude Opus 5.5 <[email protected]>
* The site's downloads are rebuilt from the round-38 fixes: new sizes and ↵Gabriel Schneider8 hours
| | | | | | checksums Co-Authored-By: Claude Opus 5.5 <[email protected]>
* The site's downloads are rebuilt from the acme-gaps line: new sizes and ↵Gabriel Schneider10 hours
| | | | | | checksums Co-Authored-By: Claude Opus 5.5 <[email protected]>
* The guide shows the where-commands-run, columns and search clips in place of ↵Gabriel Schneider14 hours
| | | | | | | | | | | | their TODOs #clip takes `wide: true` for a recording that needs the page's full width; the columns clip (80 columns split three ways) uses it, the others keep the 640 px inline width. An inline video takes its own shape from its poster rather than a fixed ratio. where-commands-run's caption is trimmed to eleven words. Co-Authored-By: Claude Opus 5.5 <[email protected]>
* The guide's glossary is a definition list, and the site's tutor links its ↵Gabriel Schneider14 hours
| | | | | | | | | | | | pointers into the guide On the site the glossary is a <dl> of terms and meanings inside its <details>, with no stray count, so a text browser reads each term then its meaning. The tutor page links docs/typ/<chapter>.typ to that page, each "-> Guide: <section>" to the guide's section of that title (read from guide.typ's headings), and URLs; the tutor itself keeps its text. Co-Authored-By: Claude Opus 5.5 <[email protected]>
* A chapter can show a recording: #clip(name), used once for the chords in the ↵Gabriel Schneider15 hours
| | | | | | | | | | | | guide's mouse section #clip reads docs/site/media/clips.toml. On the site it is the landing's video (poster, autoplay muted loop playsinline, controls) with its caption, and the in-view script that plays it now runs on every page; in the book it is the poster at 7 cm with the caption. The guide shows the chords clip under its mouse table, in place of the TODO. Co-Authored-By: Claude Opus 5.5 <[email protected]>
* The landing's words jump to their recordings, the casts open on their ↵Gabriel Schneider15 hours
| | | | | | | | | | | | | | | | | | | | | | | telling frame, and #mode-box draws the box Each recording on the landing has an anchor (rec-<name>); the "What's in it" words jump to theirs (Terminals, PDFs, Images, Diff review, Scripting) and the recording's caption ends in a link to the docs; Language servers and Themes, with no recording, link to the docs. A cast's `poster_at` in casts.toml picks the frame it shows until it plays: live-text at the error, terminals at the copied line, petscii on the Mandelbrot; the casts wait for the in-view script to play them. A caption may hold markup: the 9P clip links 9ns to setup. The downloads give their size, read from project.download, and the footer links the changes (project.changes). The guide's annotated pane has alt text, pin 1 beside the workspace tag rather than on Changelog, and pin 5 on the body's text; pin positions are written with repr, since str puts a U+2212 minus CSS cannot read. #mode-box(mark, unsaved:) draws a pane's box as it looks, in print and HTML. Co-Authored-By: Claude Opus 5.5 <[email protected]>
* Install offers the built pardes 0.23 binaries first, each with its checksum, ↵Gabriel Schneider16 hours
| | | | | | | | | | | | then building from source `project.download` in style.typ holds the version, the SHA256SUMS link and a file per program (the static terminal build and the window build, with what each needs); install.typ shows, for each, the curl, the sha256sum -c of its own checksum and the move into ~/.local/bin, then the clone and the build as the alternative. Co-Authored-By: Claude Opus 5.5 <[email protected]>
* The landing shows each thing once, lists what is in pardes, and the guide ↵Gabriel Schneider16 hours
| | | | | | | | | | | | | | | | | | | | | | | | | opens on an annotated pane The window shelf drops terminals-are-panes (`landing = false` in clips.toml; the casts show it) and keeps the PDF, image, make, diff and 9P clips. Captions say what happens: the live-text cast renames a variable, runs make and lands on the error; the 9P clip is a shell under 9ns where the session is a directory. Casts stack one per row at the page's width, each showing a frame of itself until it plays. Under the lead, a row of linked chips names what is in pardes: terminals, PDFs, images, language servers, diff review, scripting, themes. Install says how long the first build takes (62 s from a clean cache on 16 cores, measured with the dependencies already fetched), and `project` in style.typ has a `download` slot (url, sha256, arch) install.typ shows once a binary exists. #annotated draws a screenshot with numbered pins and their labels as text beside it; the guide opens with one of the orchard theme's shot: the workspace tag, a column's tag, a pane's tag, the box, the body and the scrollbar, before its glossary. Co-Authored-By: Claude Opus 5.5 <[email protected]>
* Builtins are chips that link to a glossary generated from the registry, and ↵Gabriel Schneider17 hours
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | the virtual filesystem is drawn as a tree #word draws a builtin as a chip on the tag's ground over a rule (Look and Exec in acme's look green and exec red), a <code class="word"> in HTML, and links it to its entry in a new Builtins chapter wherever that chapter is in the same output (the book, the site). The chapter is drawn from docs/typ/builtins-tty.json and builtins-gui.json, which `zig build builtins-json -Dplatform=tty|gui` writes from the registry and the Help rows (src/builtins_json.zig, tools/gen_builtins_json.zig; summaryOf in ninep/ctl.zig is now pub); style.typ merges them, marking the window-only words. The doc steps refresh their build's file first, and each build's unit-test fails when its file is stale. Everyday words first (`everyday` in style.typ), then groups by leader prefix as Help has them, then settings, the words with no path, debugging and internals, and last an A-Z index of every word. `zig build book` joins the doc steps. #fstree draws a directory tree with its connectors, a description column and links to the sections that document each file; reference.typ draws the served tree with it, each pane, pty and column file on its own line, and a test in config.zig checks it against ninep/tree.zig's files both ways. The cheatsheet has a two-level version. On the site the tree reads as `tree` text in w3m and wraps descriptions under the names on a phone. The site's tutor draws its B1, B2, B3 and 1-2 chords as mouse glyphs; the landing credits Plan 9 and acme, as does the book's title page; install.typ no longer lists the mirrors (the footer does). Co-Authored-By: Claude Opus 5.5 <[email protected]>
* The landing leads with live text and plays terminal casts first; the Themes ↵Gabriel Schneider18 hours
| | | | | | | | | | | | | | | | | | | | | | | | 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]>
* The landing shows the four recordings, pardes is ISC-licensed, and the ↵Gabriel Schneider18 hours
| | | | | | | | | | | | | | | | | install lines fit a phone clips.toml names the recordings (text-is-the-interface, terminals-are-panes, scripting-over-9p, diff-review), each ready, its caption checked against what the clip shows. The first ready clip plays at the top, full width and on its own (autoplay, muted, looping), and the grid below shows the others, three across. Videos and posters keep the recordings' 960x700 shape. The footer links the source at git.0x4200.cafe/pardes and names the ISC license, from `project` in style.typ. LICENSE holds the ISC text, and the README names it and says the libraries keep their own (MuPDF, on by default, is AGPL). The install lines put their comments on lines of their own, and on a phone a shell line wraps rather than scroll its end away. Co-Authored-By: Claude Opus 5.5 <[email protected]>
* The docs become a website: a page per chapter, a landing page with ↵Gabriel Schneider18 hours
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | recordings, one Typst bundle run docs/site/site.typ writes every page in one bundle compile: the landing page (the tagline, the recordings listed in media/clips.toml, links to start from), a page per entry of `chapters` in style.typ, and the tutor. Every page shares a tag-line header with the chapter words; #doc links resolve to the right page and anchor; a chapter with four or more sections gets an "On this page" list. Links are relative and pages flat, so it reads from file:// or any static server. `zig build site` installs it to <prefix>/share/doc/pardes/site and fails plainly without typst. The look is 0x4200.cafe's lapis layout (framed panels, hard shadows, a tag-line trail, Departure Mono headings over Crimson Pro) in orchard's greens and amber, forestbones_light when the reader prefers light; both fonts are OFL and shipped. In HTML a key is one pill with its + and ›, and a mouse button is an inline SVG in currentColor. The tagline lives once in style.typ for the sheet, the book and the site, and the single page html.typ gives way to the site. The landing leads with one plain sentence (columns of panes, click to run or open, helix keys, scripts through files), then the tagline and a line on where it runs; a hero image is the first ready clip's poster; "Start: the guide" leads the links, "Hands on: the tutor" next, the rest a plain row; the captions use no undefined words. docs/typ/install.typ holds the install lines once: setup.typ has an Install section that includes it, and the landing includes it too. Building says up front it is for contributors and points at setup to install. In HTML the guide's glossary is a closed <details> (#glossary, the same heading and table on paper), each drawn mouse carries hidden text (left-click, hold left, click middle) for screen readers, w3m and copying, and the footer takes a source link and a licence from `project` in style.typ once decided. Co-Authored-By: Claude Opus 5.5 <[email protected]>
* The book and the HTML gain "Setting up your environment" after the guideGabriel Schneider30 hours
| | | | | | | | | chapters lists setup.typ second and #doc takes a setup id. Shell lines (#cmd) follow the density too: roomy in the book and the HTML, with a tint and space around them, tight on the A4 sheet; the book sets code blocks on the same tint. Co-Authored-By: Claude Opus 5.5 <[email protected]>
* The book and the HTML set #pairs tables roomy, the A4 sheet tightGabriel Schneider30 hours
| | | | | | | | | A pairs-density state, set to tight by cheatsheet-a4.typ and roomy otherwise, gives book and HTML tables more row padding and room between the key and the meaning. The book sets its body at 10pt with more space around sections and between paragraphs and list items. Co-Authored-By: Claude Opus 5.5 <[email protected]>
* The book and the HTML hold every topic, and #doc links to its chapter or sectionGabriel Schneider30 hours
| | | | | | | | | | | | | chapters now names guide, cheatsheet, scripting, reference, themes and building. #doc takes the chapter ids, keeps the old ones mapped onto them (tags and fs to the guide and the reference, config, keys and detached to their guide sections), and links in the book and the HTML, where a doc-links state says every chapter is there; on the A4 sheet it names the chapter and section. The reference points at the scripting and building chapters by #doc instead of in words, and the guide heading for pardes FILE and --wait keeps its two dashes. Co-Authored-By: Claude Opus 5.5 <[email protected]>
* docs/typ gets book and HTML wrappers over one chapter listGabriel Schneider30 hours
| | | | | | | | | | | style.typ lists the chapters in reading order (guide, cheatsheet, scripting, reference, building), each with its content file or none while unwritten. book.typ sets them as an A4 book with a title page and contents, the tutor read from src/tutor.txt last; html.typ sets them as one HTML page with a nav of anchors. An unwritten chapter shows a placeholder, so both compile before the topics exist. Co-Authored-By: Claude Opus 5.5 <[email protected]>
* The cheatsheet draws mouse buttons as a mouse, keys as chips, and pairs as ↵Gabriel Schneider30 hours
| | | | | | | | | | | | | | | | | | | | | | | | tables #btn and #chord draw a mouse (left button, wheel, right button) with the pressed part filled; the wheel is a narrow slot on a paper halo, hollow or filled, so it never reads as a button. A chord is the held button, then for each click the held one and that one down, with arrows between; #btn(.., shift: true) adds a ⇧. HTML gets a span with an aria-label. A key is one soft pill with no border: a combination (Ctrl-w) reads Ctrl + w and a sequence (g g, SPC f c) g › g, separators muted inside it; #keys("h", "j", ...) sets alternatives as separate pills. The drift test reads every key a #keys call names. #pairs sets key | meaning content as a two-column table on alternating tints; split: 2 sets the leader map as two such tables side by side. The mouse chords get their own table: cut, paste, copy (B1-B2 then B1-B3, one B1 hold, as mouse.zig says), 2-1 with an argument, 2-3 cancelling. The A4 page draws its own title and drops the content's level-1 heading. docs/typ/README is the function contract for content files. Co-Authored-By: Claude Opus 5.5 <[email protected]>
* A one-page A4 cheatsheet, the first file of a Typst docs corpus in docs/typGabriel Schneider30 hours
docs/typ/cheatsheet.typ holds the facts as semantic calls (#key, #btn, #chord, #word, #tag, #addr, #file, #cmd, #doc); docs/typ/style.typ defines those once, drawing them for paged output and emitting HTML elements under --features html; docs/typ/cheatsheet-a4.typ is the page. `zig build cheatsheet` renders it when typst is on PATH. A config.zig test reads every .typ in docs/typ and fails when one names a builtin, key binding or default tag pardes no longer has. Co-Authored-By: Claude Opus 5.5 <[email protected]>