improvement(docs): clean up leftovers from the code-block alignment PR - #6825
Conversation
A cleanup pass over the final state. Every finding was residue from an approach this PR tried and abandoned, or a claim that stopped being true when it did. - Delete the copy-button svg sizing rule: a later rule sets `display: none` on that same element ungated, so sizing it was never observable. Superseded by the mask approach. - Drop the paragraph in page.tsx arguing about a custom Shiki factory. The factory was deleted; nothing configures one now. - Correct shiki-curl-json.ts, which still claimed the grammar "reaches the client path too". It does not — that was the justification for choosing a grammar over a transformer, so leaving it stated the opposite of the truth. Now records where it applies, where it does not, and why not to retry. - Correct the global.css section header, which claimed the component owns the shell while the next rule defines it here. - Qualify the `--copy-glyph` declarations with `:has(> svg[class*="lucide"])`, which the group's own comment asserts of every rule in it. - Correct `getCode`'s TSDoc: the gutter is a `::before`, and pseudo-element content never reaches `textContent`, so line numbers were never what the clone guards. It guards transformer-emitted `.nd-copy-ignore` nodes. - Compose `chipGeometryClass` and emcn's `ChipChevronDown` in the API example selector instead of restating their literals. - Merge the duplicated `div[role="region"]` rule. The tablist pair stays split: biome's `noDuplicateProperties` reads a nested `@variant` setting the same property as a duplicate and fails the build — recorded so it is not remerged. - Note that fumadocs ships its own gutter for `lines`-meta fences, which cannot be suppressed from here and would paint a second column.
fumadocs-openapi calls `renderCodeBlock` with a hard-coded `"json"` from both of
its call sites (`request-tabs.js:76`, `response-tabs.js:48`), so the docs
`CodeBlock` it routes through never receives a shell language. The
`getHighlighter('js', { langs: [curlJsonBodyGrammar] })` registering the
shell-scoped JSON-body injection therefore did nothing but await on every API
sample render, and the docblock claiming the grammar covers those samples was
wrong.
- Delete the call and its imports.
- State the grammar's real coverage: prose fences only, via `langs`. Both API
reference paths are unreachable — samples are JSON, and the cURL usage tabs
highlight client-side off fumadocs' own factory.
- Correct `code-block.tsx`'s TSDoc, which still said API samples come from
fumadocs' own renderer. They come through this component; `UsageTab` is the
renderer that bypasses it.
- Re-home a comment orphaned when two CSS rules merged — it had drifted onto
the rule below and read as documenting it.
- Drop a `.nd-copy-ignore` claim about transformers emitting those nodes;
nothing here does, and upstream parity is the reason the clone exists.
|
The latest updates on your projects. Learn more about Vercel for GitHub.
|
PR SummaryLow Risk Overview
Reviewed by Cursor Bugbot for commit 7741da6. Configure here. |
Greptile SummaryThe PR removes unreachable highlighter registration and consolidates documentation code-block cleanup without intended rendering changes.
Confidence Score: 5/5The PR appears safe to merge. No blocking failure remains.
|
| Filename | Overview |
|---|---|
| apps/docs/app/[lang]/[[...slug]]/page.tsx | Removes the unused highlighter import, grammar import, and registration call from API code-block rendering. |
| apps/docs/app/global.css | Consolidates duplicate viewport declarations, removes dead SVG sizing, narrows copy-glyph selectors, and updates explanatory comments. |
| apps/docs/components/ui/api-example-selector.tsx | Replaces re-derived chip geometry and chevron styling with shared EMCN exports. |
| apps/docs/components/ui/code-block.tsx | Updates documentation to reflect the current render paths and clipboard behavior. |
| apps/docs/lib/shiki-curl-json.ts | Clarifies that the custom grammar applies only to prose fences and documents API-renderer constraints. |
Reviews (2): Last reviewed commit: "fix(docs): drop a highlighter registrati..." | Re-trigger Greptile
|
@cursor review |
There was a problem hiding this comment.
✅ Bugbot reviewed your changes and found no new issues!
Comment @cursor review or bugbot run to trigger another review on this PR
Reviewed by Cursor Bugbot for commit 7741da6. Configure here.
Summary
Follow-up to #6810. That PR went through several revisions and a couple of reverted approaches; this clears the residue they left behind. No rendering changes — comments, one dead CSS rule, one dead call, and two emcn reuses.
renderCodeBlockwith a hard-coded"json"from both call sites (request-tabs.js:76,response-tabs.js:48), so the docsCodeBlocknever receives a shell language and the shell-scoped JSON-body injection could never apply there. ThegetHighlightercall was pure overhead on every API sample render.langs. Both API reference paths are unreachable — request/response samples are JSON, and the cURL usage tabs highlight client-side off fumadocs' own factory.display: noneon, ungated. Superseded by the mask approach.page.tsxstill argued about a Shiki factory that was deleted;global.css's section header claimed the component owns the shell while the next rule defines it there;code-block.tsxsaid API samples bypass it when they route through it;getCode's TSDoc gave a reason (line numbers leaking into the clipboard) that cannot happen, since the gutter is a::beforeand pseudo-element content never reachestextContent.--copy-glyphrules with the:has(> svg[class*="lucide"])the group's own comment asserts of every rule in it.chipGeometryClassandChipChevronDownfrom@sim/emcninstead of restating their literals, perchip-chrome.ts's "never re-derive the literal; import it".lines-meta fences that cannot be suppressed from here, and biome'snoDuplicatePropertiesis why the tablist hover rule stays a separate block rather than a nested@variant.Type of Change
Testing
Production build passes (
EXIT=0, 4366 pages).bun run lint:check,bun run type-check, andcheck:audits(29 audits) all pass. Client bundle unchanged from the state Vercel accepted on #6810 —json-schema-tsin 0 chunks.Every claim in the new comments was verified against source rather than assumed: the
renderCodeBlockcall sites, theClientCodeBlockProviderexport map, the biome rule behaviour, and the--code-surface/--code-gutterconsumer counts.Checklist