From f700b2af8e874c586e6996b8311c3983203c6637 Mon Sep 17 00:00:00 2001 From: Gabriel Schneider Date: Thu, 1 Oct 2026 13:05:10 -0300 Subject: Builtins are chips that link to a glossary generated from the registry, and 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 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 --- tools/gen_builtins_json.zig | 14 ++++++++++++++ 1 file changed, 14 insertions(+) create mode 100644 tools/gen_builtins_json.zig (limited to 'tools') diff --git a/tools/gen_builtins_json.zig b/tools/gen_builtins_json.zig new file mode 100644 index 00000000..71df5307 --- /dev/null +++ b/tools/gen_builtins_json.zig @@ -0,0 +1,14 @@ +//! Writes every builtin as JSON to the path given (docs/typ/builtins-.json, +//! by way of `zig build builtins-json`). +const std = @import("std"); +const pardes = @import("pardes"); + +pub fn main(init: std.process.Init) !void { + const args = try init.minimal.args.toSlice(init.arena.allocator()); + var file = try std.Io.Dir.cwd().createFile(init.io, args[1], .{}); + defer file.close(init.io); + var buf: [4096]u8 = undefined; + var w = file.writer(init.io, &buf); + try pardes.builtins_json.write(&w.interface); + try w.interface.flush(); +} -- cgit v1.3