docs: fix broken links and outdated content - #488
Merged
Conversation
Ports nuxt/ui `c6a756c5` (#6867) — everything applicable, by maintainer decision. Upstream touches 101 files, mixing broken-link fixes, front-matter `keywords` for docs search, corrections where the documented API had drifted from the code, and editorial rewording. **Method.** Applying the patch whole fails — our docs diverge too far. It went hunk by hunk instead: 154 hunks tried individually, **47 applied cleanly** and 107 were rejected. A hunk that applies proves our text equalled upstream's pre-image, which is the only case where copying is safe by construction; the rejects were then judged on intent rather than text. The 15 files we lack were excluded up front. **Applying cleanly is not sufficient.** A hunk can replace text we shared with text describing *upstream's* reality, and three did: the contribution page's directory tree listed a `blog/` this fork does not have, that same file was left with mixed ```sh / ```bash fences because only some of its hunks applied, and the Content page gained a sentence saying "Nuxt UI ships helpers". All three corrected. One auto-applied hunk is a genuine bug fix here — the Vue color-mode example set `colorMode.preference` while the getter three lines above reads `colorMode.value`. **API accuracy was verified against our source, not copied.** `use-toast.md` took 8 fixes, each confirmed in `useToast.ts` / `Toast.vue`: the `StringOrVNode` title and description, `close: boolean | Omit<ButtonProps, LinkPropsKeys>`, `progress: boolean | Pick<ProgressProps, 'color' | 'b24ui'>`, the generated id and its merge-on-reuse behaviour, `duration` defaulting to 5000 with `0` keeping the toast open, and `update()`'s `Omit<Partial<Toast>, 'id'>`. One value deliberately diverges: upstream documents the colour default as `primary`, ours is **`air-secondary`**, and that is what the page now says. `define-shortcuts.md` gained the `meta`/`command` and `alt`/`option` aliases, four more special keys, and the event-receiving `handler` — all checked against `defineShortcuts.ts`. `use-overlay.md` needed nothing; it already matched upstream's post-fix text. Three of upstream's six link fixes are broken here too and were applied. The integrations-link split does not apply: one page already uses the direct form and on the other the bare paths redirect rather than break. 18 component pages gained the `keywords` block. **One regression caught by a guard.** Upstream drops `title:` from front matter, deriving it from the filename. That hunk applied to `error.md`, and `skill-manifest.spec.ts` went red — this fork's skill index resolves rows through `title`, so the page became unreachable. Restored. The page still built fine; only the guard noticed. Verified with `CI=true`: `lint` · `typecheck` · `test` (7168 passed, 6 skipped, 314 files) · `docs:generate` (1262 routes). Ledger: cursor → `c6a756c5` (upstream HEAD), parity snapshot refreshed.
3 tasks
IgorShevchik
added a commit
that referenced
this pull request
Aug 25, 2026
The entry was written with `pending-merge` because the PR carrying it had not merged yet; it now points at #488 and its squash SHA `bfaf4dfe`. No entry in the ledger is left unreconciled, and the cursor `c6a756c5` is upstream HEAD. Bookkeeping only — no source, test or docs change. Co-authored-by: Shevchik Igor <noreply@anthropic.com>
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Linked issue
Sync with
nuxt/ui@v4—c6a756c5(nuxt/ui#6867). After this the cursor is at upstream HEAD.Type of change
Description
Upstream touches 101 files, mixing four different things: broken-link fixes, front-matter
keywordsfor docs search and the MCPsearch-componentstool, corrections where the documented API had drifted from the code, and editorial rewording. Scope was everything applicable, by maintainer decision.Method
Applying the patch whole fails — our docs diverge too far. It went hunk by hunk instead: 154 hunks tried individually.
The 15 files we lack (Carousel, Marquee, PricingTable, ChangelogVersion, Icon, blog, migration v3/v4, MCP page,
figma.yml,community.yml,Carousel.vue) were excluded up front.Applying cleanly is not sufficient
A hunk can replace text we shared with text describing upstream's reality. Three did, and were corrected:
blog/this fork does not have — rewritten to our actual layout, naming our landing pages.```shto```bash, but only some hunks applied here, leaving the page mixed. Normalised the remaining four.One auto-applied hunk is a genuine bug fix here: the Vue color-mode example set
colorMode.preferencewhile the getter three lines above readscolorMode.value.API accuracy — verified against our source, not copied
use-toast.mdtook 8 fixes, each confirmed inuseToast.ts/Toast.vue:title/description:string | VNode | (() => VNode)StringOrVNodeclose:boolean | Omit<ButtonProps, LinkPropsKeys>progress:boolean | Pick<ProgressProps, 'color' | 'b24ui'>ui→b24uiper §1generateId()+ the_duplicatebranchdurationdefaults to5000,0keeps it openToaster.vue:70and the prop's jsDocupdate()takesOmit<Partial<Toast>, 'id'>One value deliberately diverges: upstream documents the toast colour default as
primary; ours isair-secondary(theme/toast.ts), and that is what the page now says. Copying upstream's default would have been wrong.define-shortcuts.mdgained themeta/commandandalt/optionaliases (defineShortcuts.ts:295,298), four more special keys (the key map at:59-64carriesspace,tab,backspace,delete), and the event-receivinghandler. Thespacenote aboutlayoutIndependentholds becauseuseCode = layoutIndependent || e.altKey(:144). Our page had already been corrected ahead of upstream on the signature andMaybeRefconfig.use-overlay.mdneeded nothing — already matched upstream's post-fix text on all three points.Links and keywords
Three of upstream's six link fixes are broken here too and were applied:
tiptap.dev/.../floating-menu→floatingmenu, and twoai-sdk.dev/docs/guides/providers/*→providers/ai-sdk-providers/*. The rest are absent or already current. Upstream's split of the integrations links does not apply:0.index.mdalready uses the direct form, and in1.index.mdthe bare paths redirect rather than break (nuxt.config.ts:361-362), where the bullet list deliberately carries one link per feature.18 component pages gained the
keywordsblock, inserted aftercategory:to match the existing convention.One regression caught by a guard
Upstream drops
title:from front matter, deriving it from the filename. That hunk applied toerror.mdandskill-manifest.spec.tswent red — this fork's skill index resolves rows throughtitle, so the page became unreachable (B24Error -> error.md (no such page)). Restored. Worth flagging: the page still built fine, and only the guard noticed.Verification
Gate with
CI=true:lint·typecheck·test(7168 passed, 6 skipped, 314 files) ·docs:generate(1262 routes). 54 files changed, +195/−85.Ledger: cursor →
c6a756c5, one entry with its.sync/log/journal, parity snapshot refreshed (zero package differences).Checklist
Generated by Claude Code