T48a Docs · Frame passes review; an id-less heading fails the build, protocol-relative links stay native

This commit is contained in:
ZacharyZhang-NY committed 2026-10-01 12:08:02 -04:00
1 parent 30dc94f44c
commit 264a9e3232
5 files changed
+7 -4

No files matched your search

+1 -1
View File
@@ -164,7 +164,7 @@ Per-component lines live in `tasks/`. Tags there:
- [x] T46a Site · Owner's notes: the city title whole, header icons on one line, less space above a story, no visible scroll bars, each story named by its first component, every page laid out at phone, tablet and desktop widths
- [x] T47 Ship: GitHub repo (public), CI, Cloudflare deploy through `npx wrangler`
- [ ] T48 Docs: a Docs tab after gpui-kit.com/docs, a rail of guides, an on-this-page list, previous and next; every claim checked against the code, every full Rust sample an example `scripts/check.sh` compiles and the page imports as text
- [ ] T48a Docs · Frame: the Docs tab, `/docs/` and `/docs/$page/`, Markdown pages, the rail, the on-this-page list, previous and next, code blocks, light and dark, phone to desktop
- [x] T48a Docs · Frame: the Docs tab, `/docs/` and `/docs/$page/`, Markdown pages, the rail, the on-this-page list, previous and next, code blocks, light and dark, phone to desktop
- [ ] T48b Docs · Introduction: what Ely is, the order to read, what is stable, a first example, license
- [ ] T48c Docs · Installation: Rust, the git dependencies, gpui_platform's fonts, runtime shaders, the gallery as a check, what `init` refuses
- [ ] T48d Docs · Getting started: an app from `init` to a window under a root `FocusScope`, with a Button
+1
View File
@@ -50,6 +50,7 @@ function read(file: string, files: string[]): Guide {
}
const html = this.parser.parseInline(tokens);
const id = slugify(words);
if (!id) throw new Error(`docs: ${file}.md has a heading with no id: ${words}`);
if (ids.has(id)) throw new Error(`docs: ${file}.md repeats heading ${id}`);
ids.add(id);
if (depth === 2) toc.push({ id, text: words });
+1 -1
View File
@@ -35,7 +35,7 @@ export function Docs() {
const target = e.target as HTMLElement;
const button = target.closest<HTMLButtonElement>("button.copy");
if (button) return void copy(button);
const link = target.closest<HTMLAnchorElement>("a[href^='/']");
const link = target.closest<HTMLAnchorElement>("a[href^='/']:not([href^='//'])");
if (!link || e.metaKey || e.ctrlKey || e.shiftKey || e.button !== 0) return;
e.preventDefault();
const url = new URL(link.href);
+1 -2
View File
@@ -190,8 +190,7 @@ img.shot { display: block; max-width: 100%; height: auto; }
.prose td { color: color-mix(in srgb, var(--fg) 82%, var(--bg)); }
.code { position: relative; margin: 28px 0; background: var(--code); border-radius: 12px; }
.code figcaption { padding: 14px 88px 0 20px; font: 400 12px/18px var(--mono); color: var(--faint); overflow-wrap: anywhere; }
.code pre { margin: 0; padding: 14px 20px 20px; overflow-x: auto; }
.code button + pre { padding-top: 20px; }
.code pre { margin: 0; padding: 16px 20px 20px; overflow-x: auto; }
.code code { display: block; font: 400 13.5px/22px var(--mono); background: none; padding: 0; color: var(--fg); }
.code .copy { position: absolute; top: 10px; right: 12px; padding: 4px 8px; font-size: 12px; color: var(--muted); transition: color 160ms ease-out; }
.code .copy:hover { color: var(--fg); }
+3
View File
@@ -327,3 +327,6 @@
| T46 | 1 | FAIL | the typing test passed without typing; two home tests passed with no frame mounted; full screen and window captures checked by class and srcset only |
| T46 | 2 | PASS | |
| T46a | 1 | PASS | notes fixed after: the hero title fits its column at every width, the icon comment, AGENTS.md's wording |
| T48a | 1 | FAIL | escaped entities in titles and the list; section links broke under the trailing slash; long inline code widened 280px; no guide list under 1024px |
| T48a | 2 | FAIL | the rail and list clipped the focus ring's left side |
| T48a | 3 | PASS | rendering moved to build time first: a bad guide fails the build; notes fixed after (an id-less heading fails, protocol-relative links stay native, dead padding rule gone) |