From 75e4297ea48b9f5fa91bf57c95fa78a89e52a6c7 Mon Sep 17 00:00:00 2001 From: Tony Narlock Date: Mon, 9 Nov 2026 16:40:30 -0600 Subject: [PATCH] ci(docs) Refine the pages and list the new ports why: A workspace or MCP API reference page drew its section headings larger than a core page's, because its body sat inside the prose column, and repeated each member as a full bordered entry under a bordered bar. The reference of a product listed every declaration in one A to Z list that mixed types, functions, constants and enums, so a reader could not find a tool, a URI constant or an error type without scanning it. On a cold load the Core player was drawn at its last call and the script reset it to the first a moment later, and the controls bar appeared and pushed the player down, so the page jumped. The MCP replay did the same: the whole chat with every result open, then the bare prompt, and the page grew when the controls appeared. Pages told a reader how they were made (the revision, sandbox and generator of a recording, a library revision under an example, a generator under an API page), which belongs in the commit that refreshed the data. The headings "Worked example" and "Try a preset" did not say what a reader gets: tmux driven through MCP tools and tmux layouts and workspaces to try. The Core player's Error handling and Cleanup toggles took a row of their own above the code, and its step dots were spread across the controls bar, so on a tight bar a long program's dots crowded until a finger could not tell them apart. The MCP replay's step dots crowded the same way on a tight bar. Chrome on iOS shrinks the window height under the on-screen keyboard, so the API reference sidebar and the sticky member bars shrank when a reader focused the search field. The site header's port picker and the ports list offered only the ports that had documentation before OCaml, Haskell, Perl, Clojure, Common Lisp and Erlang. The port build ran GitHub actions by floating tag, so a retagged release would have changed what builds this port's pages. what: - Draw the workspace and MCP API reference pages in the core API presentation: section headings at the size of a core page's, the body outside the prose column, and a type's members listed once, as its table and then linked rows, where each was also a full entry (`ProductApiPage.astro`, `ApiMemberList.astro`, `DocsLayout.astro`) - Group the MCP API reference into sections in the sidebar, the documentation navigation and the reference index: Tools, Prompts, Resources and URIs, Views and results, Server and setup, Configuration and environment, Errors and Utilities, leaving out a section with nothing in it (`product-api-sections.ts`, `product-api.ts`, `ProductApiIndex.astro`); a section's row in the sidebar links to the page of its first entry, and a breadcrumb through it does too (`sidebar.ts`) - Group the workspace API reference the same way: Workspace files, Building and freezing, Command line, Plugins and shell, Errors and Utilities, URLs unchanged (`product-api-sections.ts`, `product-api.ts`, `ProductApiIndex.astro`) - Draw the Core player on the server at the frame its script first shows, the tmux before the first call, with its controls bar in place at its first count, so binding the script moves nothing; a reader with no script, and one who asked for less motion until the script binds, see the finished frame (`CorePlayer.astro`, `ReplayControls.astro`, `core-player.css`) - Draw the MCP replay on the server at the prompt alone, the calls out of view marked and its head and controls bar in place, so binding the script moves nothing; the same finished fallbacks for no script and for reduced motion (`McpReplay.astro`, `mcp-replay.css`) - Name the MCP overview's replay "tmux through MCP", where it was "Worked example" (links to the old anchor, worked-example, still land), and drop the paragraph under it on how the recording was made: its revision, sandbox, generation and shortened values (`McpReplay.astro`, `mcp-showcase.ts`) - Drop the Core player's info button, its popover and its no-script note on how the run was recorded; the controls bar keeps its other buttons (`CorePlayer.astro`, `ReplayControls.astro`) - Drop the "Library revision" line from an example's setup details and the "Generated from the source" line under the API pages that had one (`HomeExample.astro`, `[...slug].astro`) - Head the workspace overview's preset picker "Explore tmux layout / workspace possibilities", where it was "Try a preset" (links to the old anchor, try-a-preset, still land) (`WorkspacePicker.astro`, `DocPage.astro`) - Put the Core player's Error handling and Cleanup toggles in a toolbar row at the bottom of its code panel, below the code and outside the part that scrolls, where they sat in a row above it, so toggling moves no edge of the player; and let the step dots of its controls bar scroll inside a rail with a button at each end to page them, where they were spread across the bar and crowded on a tight one (`HomeExample.astro`, `core-player.css`, `ReplayControls.astro`, `replay-player.ts`, `mcp-replay.css`) - Let the MCP replay's step dots scroll inside a rail with a button at each end to page them, keeping the shown call's dot in view, where they were spread across the bar and crowded on a tight one (`ReplayControls.astro`, `replay-player.ts`, `mcp-replay.css`) - Keep the API reference sidebar and the sticky member bars at their height when an on-screen keyboard opens, where Chrome on iOS shrank the window under it and the sidebar and the bars shrank with it: while a field has focus the pages measure the tallest height seen at this width (`stable-viewport.ts`, `api-tree.ts`, `ApiPageContents.astro`) - List OCaml among the ports of the site: in the port picker of the site header and in the Compiled & native group of the ports list; OCaml's own pages are published by its own repository, not by this caller (`shell.js`, `ports.ts`, `port-families.ts`) - List Haskell among the ports of the site: in the port picker of the site header and in the Compiled & native group of the ports list; Haskell's own pages are published by its own repository, not by this caller (`shell.js`, `ports.ts`, `port-families.ts`) - List Perl among the ports of the site: in the port picker of the site header and in the Scripting & web group of the ports list; Perl's own pages are published by its own repository, not by this caller (`shell.js`, `ports.ts`, `port-families.ts`) - Pin the port build's GitHub actions to commits of the releases it used by tag (checkout v7.0.1, setup-node v7, pnpm/action-setup v6), and have the build ask the registry whether a port excludes MCP before it generates MCP data, which no existing port does (`port-docs.yml`, `build-site.sh`) - List Clojure among the ports of the site: in the port picker of the site header and in the JVM group of the ports list; Clojure's own pages are published by its own repository, not by this caller (`shell.js`, `ports.ts`, `port-families.ts`) - List Common Lisp among the ports of the site: in the port picker of the site header and in the Compiled & native group of the ports list; Common Lisp's own pages are published by its own repository, not by this caller (`shell.js`, `ports.ts`, `port-families.ts`) - List Erlang among the ports of the site: in the port picker of the site header and in the BEAM group of the ports list; Erlang's own pages are published by its own repository, not by this caller (`shell.js`, `ports.ts`, `port-families.ts`) Shared source: libtmux/docs From: c5b56f2b90002281adb95616a3e523e0a192937c To: 8245169584882f09e302881f136512df41aba2a4 --- .github/workflows/docs.yml | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/.github/workflows/docs.yml b/.github/workflows/docs.yml index 8076fd2db..6f0f6b738 100644 --- a/.github/workflows/docs.yml +++ b/.github/workflows/docs.yml @@ -51,7 +51,7 @@ permissions: jobs: build-libtmux-org: - uses: libtmux/docs/.github/workflows/port-docs.yml@c5b56f2b90002281adb95616a3e523e0a192937c + uses: libtmux/docs/.github/workflows/port-docs.yml@8245169584882f09e302881f136512df41aba2a4 with: port: py source-ref: ${{ inputs.source-ref }} @@ -75,7 +75,7 @@ jobs: permissions: contents: read id-token: write - uses: libtmux/docs/.github/workflows/reusable-deploy.yml@c5b56f2b90002281adb95616a3e523e0a192937c + uses: libtmux/docs/.github/workflows/reusable-deploy.yml@8245169584882f09e302881f136512df41aba2a4 with: path-prefix: py/${{ matrix.version }} artifact: docs-py-${{ matrix.version }}