nimbus-docs 0.2.0
Minor Changes
-
24113e0Thanks @MohamedH1998! - Clear the Node and pnpm version gates that broke a fresh scaffold- Node floor raised to
>=22.12.0. Astro requires Node ≥ 22.12; the old>=20.0.0promise was a floor a scaffolded site could not actually build on (Node 20 is EOL and failsastro buildwithNode.js v20.x is not supported by Astro!). CI now runs Node 24 everywhere. pnpm installno longer hard-fails under modern pnpm. pnpm ≥ 10 gates dependency install scripts and pnpm ≥ 11 turns an ignored build into a hard error (ERR_PNPM_IGNORED_BUILDS, exit 1). Scaffolded projects now ship apnpm-workspace.yamlthat declines exactly the packages with install scripts —esbuildandsharp(plusworkerdon the Cloudflare target, which pullswrangler) — never a blanket approval. All three ship working prebuilds, so the site still builds while the supply-chain surface stays minimal. Verified green on pnpm 9, 10, 11, and npm.
- Node floor raised to
create-nimbus-docs 0.8.1
Patch Changes
-
#135
1ee21b9Thanks @dependabot! - Update the interactive prompts to @clack/prompts 1.8. -
#290
9ae48e4Thanks @dependabot! - New projects start on Astro 7.3.3, which includes a security fix in its SVG optimizer.
create-nimbus-docs 0.8.0
Minor Changes
-
#273
352a245Thanks @MohamedH1998! - A redesigned API reference:- The API home lists every endpoint, grouped by
x-tagGroups, with a filter; large specs load in parts as you scroll. The API route serves the later parts at/api/index/2/and on,noindexand left out of the sitemap and search; it takes the part size ashomeChunkSizein bothgetApiStaticPathsandgetApiRoute(without it, the home is one page), andgetApiRoutereturns the parts ashome. - Section pages list their endpoints name first, with the method and path beneath.
- The API version picker sits in the header, at every width.
- Code rail lines sit on whole pixels, with quieter line numbers; section titles are in full ink.
- The API sidebar’s rows match the docs sidebar’s.
- Section page operations gain
method,path,descriptionanddeprecated, and the root page gains anindexof every endpoint. getApiRootreads an API version’s root page from any route;chunkApiIndexandapiIndexRowssplit and flatten its index.
nimbus-docs migratelists the optional steps to adopt it. - The API home lists every endpoint, grouped by
-
#274
961e85dThanks @MohamedH1998! - - New sites’ share cards show the site’s logo, the page’s section and its title, on white. A long title shrinks before it’s cut and stays within three lines.- The card’s look lives in the site’s
src/pages/og/_card.ts; the logo is drawn once, insrc/components/logo.ts, for the header and the cards. @cloudflare/nimbus-docs/ogfits text by measuring it and renders cards to PNG. It needssatoriand@resvg/resvg-js, optional peers.getPageSection(page)returns the label of a page’s nearest parent, from the sidebar for docs pages and from the spec for API pages.
- The card’s look lives in the site’s
-
#274
91eb2e9Thanks @MohamedH1998! - -Cardtakeshref: the whole card becomes the link.- Diagram buttons and controls keep their 32px height inside prose.
- PUT and PATCH method chips meet 4.5:1 contrast in light mode.
- The version picker and the API field toggle are named by their visible text.
-
#272
9a65f9fThanks @MohamedH1998! - New sites start on the redesigned starter:- A fill-in Introduction as the home page, a Writing pages guide and a Components page replace the sample pages and the landing page.
- A new type scale, steel accent, code blocks, sidebar and header logo.
- One pagination bar for the previous and next pages; with focus in the bar,
[and]move between them. - Every component part has a
data-slotto style it by, except sidebar rows, which stay bare so large sidebars stay light. - Components wrap long words, URLs and labels instead of overflowing on phones.
- Text meets 4.5:1 contrast in light mode, Steps are a real list, manual Tabs render one tab list and pair each tab with its panel.
- Pages mirror correctly in right-to-left languages; code stays left to right.
- On phones, sites with several sections show them as tabs under the header.
- Thin, theme-coloured scrollbars.
PageActionsrenders extra actions passed as children; the layout passes the Copy MCP URL action that way.
Existing sites keep their look.
nimbus-docs migratelists optional steps to adopt it, the lighter sidebar rows, and the new favicons and asset caching. The registry adds avariantslib that Badge and Button install with them. -
#278
b6d4837Thanks @MohamedH1998! - - Route files say how they render.nimbus-docs checkreports each route Nimbus manages whose file disagrees withrendering, andcheck --fixrewrites it: theprerenderline, getStaticPaths on built routes only, and the collection name in a collection route’s page helper. Withoutrendering, Nimbus builds every one of these routes ahead of time, a collection route such assrc/pages/sdk/[...slug].astroincluded.renderingstill wins at build, which now warns once and lists the files.- A built dynamic route with no getStaticPaths fails the build, naming the file; Astro can’t build it.
- The page helpers take the collection as a second argument, such as
getCollectionPage(Astro, "sdk")orgetApiRoute(Astro, "api", { homeChunkSize }), so a request-rendered route needs no getStaticPaths to say which collection it serves. A route whose getStaticPaths and helper name different collections fails withnimbus/collection-route-mismatch. add adapter-*updates route files after settingrendering, and its recipes runcheck --fix.outdatedanddiffcompare starter route files in the site’s own mode, so a routecheck --fixedited doesn’t read as a local change.- The starter’s Markdown,
llms.txtand docs page routes dropexport const prerender = true; the site’soutputandrenderingdecide how they render. A scaffold with a server adapter writes its route files in the mode itsrenderinggives them.
-
#284
f256109Thanks @MohamedH1998! - - A new site can include an API reference:--apiadds one at/api, from your OpenAPI 3.x file (--api ./openapi.yaml) or a sample, and--template apimakes it the whole site, at/. Without flags, the scaffolder asks what the site includes, and it refuses a spec that isn’t OpenAPI 3.x before writing anything.AGENT.mdin a site with an API reference says where its spec and route are; a site that is only the reference has no docs-writing sections.- The starter’s header shows Docs and API reference tabs when a site has an API reference beside its docs.
Patch Changes
-
#282
e983040Thanks @MohamedH1998! - - The package READMEs describe Nimbus as the authoring tool for docs, with the CLI by task and the scaffolder’s options. -
#244
17bf1ceThanks @MohamedH1998! - -NIMBUS_BUILD_ONLY=docs-esbuilds one collection, or a comma-separated set, and leaves the others empty;dev,syncandcheckignore it with one notice.- A slice without the
docscollection writes its sitemap, search bundle, stylesheet, assets andllms-full.txtunder its prefix, and drops the root files the root slice serves. - The root slice’s
llms.txtlists every collection’sllms.txt, and search merges the other slices’ indexes at runtime. nimbus-docs lintchecks links into other slices against the previous build’s routes, as warnings.- A slice build fails on an unknown collection, and on docs version collections split across slices. Slices work under Astro’s
base: every URL a slice serves and advertises is under it. - The route list
nimbus-docs lintchecks against reads_redirectswhere the Cloudflare adapter moves it when the site has abase, so redirects stay known to link checking. searchIndexinvirtual:nimbus/confignames the search bundles as served URLs, base included. The starter’s search provider loads its slice’s bundle and merges the others.- A guide, “Build one locale or one part”, with the Worker and zone routes per slice and a workflow that builds the slice a pull request touched.
- A slice without the
-
#285
d45764dThanks @MohamedH1998! - -migrate’s redesigned-starter step listssrc/components/logo.ts, which the newLogo.astroimports.- Search results for API pages keep an operation’s name, method and path apart, and no longer index the API home filter’s Retry button.
-
#287
8758eebThanks @MohamedH1998! - -lintandcheckaccept relative links between a content source’s pages, which the build turns into page URLs.- Search in a slice of several collections skips the other collections’ bundles instead of failing.
@cloudflare/nimbus-docs/clientexportsmergeSearchIndexes, which the starter’s search provider uses. - API operation pages keep field names, types and labels apart in search, and leave the expand controls out.
- The search button’s accessible name starts with its visible label, and API pages name their sidebars.
- Search in a slice of several collections skips the other collections’ bundles instead of failing.
-
#243
5604125Thanks @MohamedH1998! - -agents: { mcp: true }serves a remote MCP server at/mcpwithlist_pagesandget_pageover the published Markdown, plus a Server Card at/mcp/server-card, a line inllms.txtand an entry in the AI catalog. It needs a server adapter and@modelcontextprotocol/server;nimbus-docs checkreports a missing SDK.- Docs pages in the starter show a “Copy MCP URL” page action that copies the server URL when the server is on. On an existing site, run
nimbus-docs diff src/components/ConnectMcp.astro --applyandnimbus-docs diff src/components/connect-mcp.client.ts --apply, then pass{capabilities.mcpUrl && <ConnectMcp />}to<PageActions>insrc/layouts/DocsLayout.astro, as the Remote MCP server guide shows.
- Docs pages in the starter show a “Copy MCP URL” page action that copies the server URL when the server is on. On an existing site, run
-
#287
8758eebThanks @MohamedH1998! - -add adapter-cloudflareon a pnpm site declines workerd’s build script first, so the install no longer fails.- A slice’s Markdown images are published under its prefix, and Markdown images load in
astro dev. - WebMCP search covers every slice, like the search dialog. On an existing site, pass
searchIndexto it as the starter’sWebMCP.astrodoes. - Search excerpts for request-rendered pages read as text, not Markdown syntax.
add --overwritenames the files that carry your edits.
- A slice’s Markdown images are published under its prefix, and Markdown images load in
-
#260
0c31e84Thanks @MohamedH1998! - -add --overwritewithout a terminal keeps components you’ve edited and exits 1;--overwrite --yesreplaces them and says how many carried edits.add a binstalls both; an unknown slug stops before anything is installed.checksays an optional upgrade stays listed untilmigraterecords the version as reviewed.- New pnpm sites build pages with local images:
sharpis a starter dependency. astro build --root <site>from another folder finds the social-card font.
create-nimbus-docs 0.7.13
Patch Changes
-
#225
6832653Thanks @MohamedH1998! - Use the matching PR registry in on-demand preview scaffolds. -
#257
e9a4360Thanks @MohamedH1998! - - New Cloudflare projects, andnimbus-docs add adapter-cloudflarewhenwrangler.jsonchas no valid date, get acompatibility_datethe installed Workers runtime supports instead of today’s date, so local dev starts.
create-nimbus-docs 0.7.12
Patch Changes
-
#229
a04304cThanks @MohamedH1998! - - A page or reusable snippet with only frontmatter builds, and its Markdown version is just its title and source.- A snippet included inside a list item or quote keeps that structure in the page’s Markdown version.
llms.txtnames each section for its index page’s title, such as “Guides” instead ofguides.- Documentation search results link to the page itself instead of a URL ending in
#, and excerpts no longer include the page actions. - The Markdown version of an API page names each field as the page does, with its full coordinate beside it for citing.
-
#232
d655e86Thanks @MohamedH1998! - - API pages link to the previous and next page in sidebar order, even when a group is collapsed.- Error responses start collapsed; a link to one, or to a field inside it, opens it.
- A sidebar link to an API or docs-version mount, such as
/api, no longer warns. - Operations that fall back to a coordinate route print one summary line, so other warnings stay visible.
- Samples and the endpoint card keep a server URL’s query after the path.
- Response toggles meet 4.5:1 contrast in light mode, field anchors work on touch screens, and “Authorisation” reads “Authorization”.
-
#211
4a841cbThanks @MohamedH1998! - - Addbundle: falseto anapientry to serve a very large or many-version API from static assets instead of the server bundle. Unchanged pages are shared across versions, and unchanged versions aren’t prepared again on rebuild. Needssrc/live.config.tsregisteringapiPagesLoaderfrom@cloudflare/nimbus-docs/live; the build shows the snippet. The build suggests the option when an API’s bundled page data passes 16 MiB.- Add
getVersionSwitchUrlandgetApiVersionHeadfor version pickers and heads in every rendering mode; the starter’s picker and API layout use them.
- Add
-
#212
94ebe52Thanks @MohamedH1998! - API pages show the sidebar filter. Withsidebar: "on-demand"it also finds pages the sidebar hasn’t loaded. -
#214
825ffcfThanks @MohamedH1998! - API reference pages show the version picker for versioned APIs, in the sidebar and the mobile navigation. -
#240
381b37aThanks @MohamedH1998! - -og:image:widthandog:image:heightdescribe the image: generated cards stay 1200 × 630, asocialImagefile inpublic/is measured at build time, and any other image gets no size tags.NimbusHeadtakessocialImageSizeto set them for an image Nimbus can’t measure.- The sitemap has
<lastmod>on every documentation page, from frontmatterlastUpdatedor the page’s last commit, and/sitemap.xmlis a copy ofsitemap-index.xmlunless the site serves its own. - The starter’s
BaseLayoutpassessocialImageSizethrough toNimbusHead, and the 404 page recipe writes the new title andnoindex. - On a shallow clone, pages get no git dates instead of the wrong one, and the build says how to fetch the history.
- The 404 page’s title is
Page not found | <site>and the page isnoindex.
- The sitemap has
-
#233
1f2ce43Thanks @MohamedH1998! - - New sites open content images at full size on click. On an existing site, runnimbus-docs add image-zoomand render<ImageZoom />insrc/layouts/DocsLayout.astro. -
#224
79b05efThanks @MohamedH1998! - - Newmarkdown.featuresoption turns on Sätteri syntax, such as{ headingAttributes: true }for## Install {#install}or{ math: true }. Pages, generated Markdown, reusable snippets and lint all follow it. New sites start with heading ids on.- Generated Markdown drops
{/* comments */}. - Invalid MDX reports the file, line and fix instead of an internal error.
- Generated Markdown drops
-
#236
fb759c5Thanks @MohamedH1998! - - With the section route atsrc/pages/[...section]/llms.txt.ts, each sub-folder gets its ownllms.txt, and its parent’s index links to it under “Sections”. New sites have this route; a[section]route keeps today’s one index per top-level section.- An
llms-full.txtover 25 MiB becomes an index of onellms-full.txtper section, split further where a section is still too big, so the site deploys to Cloudflare. LlmsEndpointReference(from@cloudflare/nimbus-docs/agent-endpoints) addssurface: "full"on section references, for the per-sectionllms-full.txtfiles.
- An
-
#216
647471aThanks @sansynx! - Keep version-switcher entries exposed as navigation links, with the current page identified byaria-current, instead of listbox options -
#230
25d21cfThanks @MohamedH1998! - - Server scaffolds for Node, Vercel, and Netlify render docs pages on request, so Markdown negotiation works on them.- Scaffold into
.or an empty folder, including a freshly cloned repository. - New repositories get a first commit; scaffolding inside an existing repository no longer creates a nested one.
npm createinstalls a handful of packages instead of the whole framework.- A missing package manager fails before anything is written, and a mistyped flag suggests the right one.
- Yarn sites ignore
.yarn/the way Yarn recommends, and pin Yarn inside a folder that pins another package manager. - The starter’s
AGENT.mdexplains sidebar groups, order, and links. nimbus-docs checkand--helpshow commands for your package manager.
- Scaffold into
-
#224
79b05efThanks @MohamedH1998! - Starter fixes:- The theme toggle no longer submits a surrounding form, reports its state to screen readers, and still switches when storage is blocked.
- Closing a dialog no longer releases another overlay’s scroll lock.
- “Copy page” works in Safari, and a failed command copy shows it failed.
- In search, Enter on the close button closes the dialog, and status messages are announced.
<Render>params can’t replace registered components; small fixes to breadcrumbs and the mobile table of contents.- Banner content is rendered as written, like the rest of the site’s content.
-
#223
c39fdfcThanks @MohamedH1998! - The docs version picker no longer appears on pages outside the docs versions, such as API reference and blog pages.
create-nimbus-docs 0.7.11
Patch Changes
-
#204
a8e0d02Thanks @MohamedH1998! - - Agent files follow the rendering policy: a page’sindex.md/index.mdxrenders in its collection’s mode, a section’sllms.txtin the mode of the collection it lists,llms.txt/llms-full.txtinrendering.default, and homepage Markdown in the root collection’s mode. Mounted collections get their own agent routes, copied starter routes keep working unchanged, and static sites don’t change. -
#201
855091cThanks @MohamedH1998! - Addsamples.generateto choose which languages Nimbus generates code samples in, and fix generated samples and examples that sent different values from the page.samples.generate: setsamples: { generate: ["curl"] }on anapientry to generate only a cURL request, instead of cURL, TypeScript, and Python, on every operation.[]generates none, so operations show only their authoredx-codeSamples. The default is unchanged: all three.samples.keepGeneratedstill picks the generated languages shown next to authored samples; each of its languages must now also be ingenerate.- Python and TypeScript bodies: in Python, a string containing a newline, carriage return, or tab no longer breaks the sample with a
SyntaxError, and object keys with quotes or backslashes stay valid. In both languages, a backslash is no longer read as an escape (C:\\temp\\newwas sent with a tab and a newline), including in text bodies such astext/plain. A JSON body offalse,0, or""is now sent instead of dropped. - cURL bodies: a body containing
'was passed through an unquoted heredoc, so the shell collapsed backslashes and ran$NAMEand backticks in the example when the sample was pasted. The heredoc is now quoted. - Form bodies:
application/x-www-form-urlencodedbodies were dropped from every sample and are now sent in all three languages. A property with anencodingentry follows OpenAPI:style,explode, orallowReservedselect query-style serialization, and an entry without them sends the value as itscontentType, so an object is sent as JSON. A property without an entry nests objects in brackets (metadata[plan]=pro), repeats the name for each item of a scalar array (tags=a&tags=b), and indexes arrays of objects (items[0][price]=p_1). A string example is read as an encoded form; a form example with no fields sends no body.multipart/form-databodies are still omitted. - Form encoding: explicit JSON content types serialize scalar values as JSON before form encoding.
allowReserved: truepreserves valid percent-encoded triples and safe reserved characters without double encoding; form delimiters and unsafe characters remain encoded. - cURL text bodies: a body starting with
@is sent as text instead of uploading the file it names. - Joined form values: a
,,|, or space inside an array item no longer reads as a separator withexplode: false, unlessallowReserved: trueleaves a,unencoded. - Empty form field names: cURL now sends
=valuelike the other languages. - Request example: an operation without code samples, such as with
samples.generate: [], shows its request example on the page. - Swagger 2.0: a Swagger 2.0 document now fails the build with
Swagger 2.0 isn't supported. Convert it to OpenAPI 3.x first.and the document’s path, instead of building pages with no server URL,unknownparameter types, and missing response schemas. The API reference docs show how to convert one before each build.
If the installed httpsnippet writes a body differently from the layout Nimbus corrects, that language’s sample is left out rather than shown with an unescaped body. Authored
x-codeSamplesare unchanged. New sites scaffolded bycreate-nimbus-docsuse this release. -
#207
d77ff08Thanks @MohamedH1998! - - A request-rendered API family can setversionMode: "query": one URL per operation, the version in?api-version=(absent means the default, unknown is 404, hidden versions reachable by query only). Generated same-version links carry the query; discovery covers the default version at version-free URLs; non-default pages arenoindexwith the default counterpart as canonical. Path mode stays the default and is unchanged.- API version ids may contain dots, and must start and end with a letter or digit. An id like
-v1orv1-now fails validation; rename it.
- API version ids may contain dots, and must start and end with a letter or digit. An id like
-
#195
b685092Thanks @MohamedH1998! - - Add discovery files, homepage Markdown, and Link headers to all sites.- Add editable Content Signals to the starter’s robots.txt.
-
#205
7b76521Thanks @MohamedH1998! - - Sidebar groups are nativedetails/summarywith one class per row type, a CSS caret, and no animation; a group’s landing page lists as an “Overview” child row. Each page renders one sidebar tree, shared by the desktop rail and the mobile drawer, and a large sidebar’s page HTML drops by roughly 80%. The state scripts drive the old copied markup too. -
#203
62d7956Thanks @MohamedH1998! - - Only collections made with Nimbus’s helpers (docsCollection(),componentsCollection(),withNimbusMarkdown()) become pages; every other collection is plain Astro data with no naming rule, and the_prefix convention is removed. Ifrenderingis set, a site’s own page collection with a catch-all route now needs an entry inrendering.collections. -
#196
2e200ceThanks @MohamedH1998! - - The starter registers asearch_documentationWebMCP tool, backed by the site’s Pagefind index. -
#200
c17a945Thanks @MohamedH1998! - - On server output, a request-rendered page returns its Markdown when the request preferstext/markdown; the URL stays canonical and both forms sendVary: Accept.- The starter homepage renders on request when a collection already does under server output, so it negotiates too. All-build homepages remain prerendered in production.
- Preserve owner static-header rules while adding discovery fields, and support prose request rendering and published Markdown negotiation through Astro adapters and standard HTTP on non-Cloudflare deployments.
- Recreate the isolated browser-agent Pagefind instance after observable search failures and give accurate connection/reload guidance. Pagefind’s swallowed index-chunk failures remain a documented upstream limitation.
- Include a release-matched agent-interface guide in the framework package and point generated project instructions to it.
-
Updated dependencies [
a8e0d02,855091c,d77ff08,86b573a,b8a8dbd,b685092,7b8c3e8,7b76521,62d7956,2e200ce,c17a945,bcc1b1e,bcfe446]:- @cloudflare/nimbus-docs@0.17.0
create-nimbus-docs 0.7.10
Patch Changes
-
#191
11ebb39Thanks @MohamedH1998! - Theapi-code-railcomponent keys its sample picker by sampleid, so several samples in one language each get their own option. It remembers the reader’s language, not the exact sample: a saved language opens that language’s first sample, and the choice syncs across open tabs.?lang=accepts a sample id or a language. With packages before 0.16.0, which give samples noid, the picker keys by language as before.api-code-railis distributed through the registry, not the scaffolded template. Existing sites update it withnimbus-docs add api-code-rail, choosing Overwrite forApiCodeRail.astroandcode-rail.client.ts. -
#189
5c96da8Thanks @MohamedH1998! - Refinements to the starter’s API reference components:- Status and method colours are retuned. Method chips use a tint and a 25% line from the same palette (
--nb-m-*-tint,--nb-m-*-line). - Field rows fold like code. A collapsed row ends in
{ 4 properties }; an open row shows{on its signature and}under its children, centred on the guide line. “required” sits before the brace and never wraps away from it. - Union fields drop the variant list from their type text, since the list below names each variant. The full names show as a tooltip on the field name.
- Constraints and default share one line. Field rows no longer show examples, because the code rail’s request and response examples already include them. Long values wrap instead of widening the page.
- The code rail’s response toggle is a compact segmented control, and the header and response rows share 8px insets.
LayerCardtakesorientation="horizontal", whichApiEndpointCarduses.Badgegains anoutlinevariant.- Medium weight replaces semibold, letter-spacing is removed, and hover states no longer animate colour.
- Status and method colours are retuned. Method chips use a tint and a 25% line from the same palette (
-
#181
71ff242Thanks @MohamedH1998! - Addsidebartoapientries, so large API references stop putting the whole navigation tree in every page."full"(the default) keeps today’s behavior."on-demand"includes top-level items plus the current page’s branch. A collapsed group opens in place and loads its rows from its own page, where the sidebar lists them open; a group without a page, such as anx-tagGroupscategory, loads them from the API overview. Without JavaScript, a collapsed group’s label still links to its page. The mode is read from theapientry in the Nimbus config, including for sites that pass their entry toapiCollection({ … }).api: [{ collection: "api", spec: "./src/api/openapi.yaml", sidebar: "on-demand" }],ApiNavItemgains optionaldeferredandchildrenHreffields.@cloudflare/nimbus-docs/clientaddsinitNavSidebar(), and@cloudflare/nimbus-docs/runtimeaddsnavStateScript, an inline script, andnavBuildId, which a sidebar renders asdata-nb-nav-build. Together they keep a sidebar’s open groups, loaded rows, and scroll position from page to page for the session, restored before the page paints and without replaying animations. Cached rows are tied to the build that rendered the page, so rows cached before a deployment are never shown after it, including on client-side navigation.apiCollection({ … })warns when it sets asidebarthe config doesn’t match.A tag’s
x-displayNamenow sets its label in the sidebar, page title, and breadcrumbs, while itsnamestill decides its coordinate and route. This lets a spec group hundreds of flat tags under readable parents.Group pages now list their subsections (
ApiSectionPage.sections), in HTML and Markdown, so every page stays reachable without the sidebar. The API overview no longer links anx-tagGroupscategory to itself: it lists the category’s member sections instead. Both changes apply in every sidebar mode.Starter components:
ApiSidebarItemrenders a deferred group as a closed group with an empty panel, andApiLayoutmountsinitNavSidebarand the restore script for both the desktop rail and the mobile drawer. The API sidebar now keeps the groups a reader opened and its scroll position from page to page in every mode, and no longer fades or replays group animations during navigation. The mobile drawer moved ahead of the desktop rail inApiLayout, so one inline script restores both before the page paints.ApiBodylists a group page’s subsections.Existing sites keep working unchanged with the default
sidebar: "full"."on-demand"needs the new API components: with older ones, the build fails and names the outdated files. Update them withnimbus-docs add api-layout, choosing Overwrite forapi-layoutandapi-sidebar.nimbus-docs addnow warns when the registry serves components from a different release than the project’s@cloudflare/nimbus-docs. -
#182
9d2051cThanks @MohamedH1998! - - Cloudflare server scaffolds depend on@astrojs/cloudflare@~14.3.0, matchingcheck. -
Updated dependencies [
11e6d85,18b0005,9f54406,71ff242,a14c58f,278a3ff,e5fe9f3,aff3e9f,9d2051c]:- @cloudflare/nimbus-docs@0.16.0
create-nimbus-docs 0.7.9
Patch Changes
- #179
8ded65bThanks @MohamedH1998! - - Yarn 2+ scaffolds install. A site scaffolded withyarn dlxoryarn createpins that Yarn inpackage.jsonpackageManager, and the install runs withoutyarn dlx’s Plug’n’Play hooks. Before, corepack ran Yarn 1, the install failed withCannot find module 'pnpapi', and the suggestedyarn installmade a Yarn 1 project.--package-manager yarnpins Yarn too, whenyarnin the new directory runs Yarn 2+.- A Yarn site created inside another Yarn project that doesn’t list it as a workspace gets its own empty
yarn.lockand installs, instead of failing with “doesn’t seem to be part of the project”. A workspace member still installs as a member. - When Yarn holds back a release published in the last day (
YN0016, itsnpmMinimalAgeGatesetting), the install failure says so. - Yarn sites ignore
.yarn/install-state.gz. - Search works on sites whose Astro
basehas no trailing slash, such asbase: "/docs". Before, the dialog loaded/pagefind/pagefind.jsinstead of/docs/pagefind/pagefind.jsand said “Search is available after a production build.” Existing sites can take the fix withnpx @cloudflare/nimbus-docs diff src/components/ui/search/providers/pagefind.ts --apply. - The empty starter’s home page no longer adds a second H1 under its title.
- The starter’s
AGENT.md:- Its upgrade steps now pull in starter fixes with
outdatedanddiff --apply. - Feature recipes run with
add <feature-slug> --print. - The Cloudflare audit is split into static and server output (server sites have no
assets.directory). - It says a server site’s
checkstayspartialafter a build, and what to do about an error with no fix.
- Its upgrade steps now pull in starter fixes with
- The welcome page names
@cloudflare/nimbus-docs/content.
- A Yarn site created inside another Yarn project that doesn’t list it as a workspace gets its own empty
- Updated dependencies [
8ded65b]:- @cloudflare/nimbus-docs@0.15.2
create-nimbus-docs 0.7.8
Patch Changes
-
#176
3b3d33fThanks @MohamedH1998! - New Cloudflare server sites install@astrojs/cloudflare14.3, which fixes a crash on the firstastro devwith a cold cache (“Dev server process exited before becoming ready”). -
#177
adb8efeThanks @MohamedH1998! - Add thecopy-promptregistry component. Runnimbus-docs add copy-promptto installCopyPrompt, a one-line prompt with a Copy prompt button for readers to paste into an AI coding agent. New sites don’t include it by default. -
#173
60d0af3Thanks @MohamedH1998! - - Templates used without the scaffolder includenimbus.jsonwith the reviewed Nimbus version, so their builds no longer fail with “Nimbus has no reviewed upgrade baseline”.- npm, yarn, and bun sites no longer include
pnpm-workspace.yaml. - Yarn sites get a
.yarnrc.ymlwithnodeLinker: node-modules. Before, Yarn 2+ installed in Plug’n’Play mode, and the site failed to build or start the dev server. - Unknown
--contentand--package-managervalues are rejected with the valid choices. Before, a typo such as--package-manager pnmpscaffolded a site with no install and still printed “Done”. - Without a terminal, the scaffolder lists every question it can’t ask, each with the flag that answers it, and suggests
--yes, instead of failing withuv_tty_init returned EINVAL. Flags that answer every question, including--gitor--no-git, work without--yes. - The starter’s
AGENT.mdpoints at theIconcomponent the starter uses,@cloudflare/nimbus-docs/components/Icon.astro, instead ofastro-icon, and at@cloudflare/nimbus-docs/contentfor the docs schema. Its commands usenpx @cloudflare/nimbus-docs, which runs the project’s installed version with any package manager. - The starter’s Getting Started page shows the create command.
- npm, yarn, and bun sites no longer include
-
#178
7d606e3Thanks @MohamedH1998! - Behavior changes- A failed dependency install exits
1. The scaffolder keeps the project and prints the commands that finish the setup. Before, it printed “Done” and exited0, so CI treated the site as ready. - Unknown flags, such as
--output server, stop the scaffolder with the list of valid flags. Before, they were ignored and the site was scaffolded without them. --gitwith--no-git, and--deploywith--adapter, stop the scaffolder. Before,--no-gitwon and--deploywas ignored with a warning.- A second directory argument stops the scaffolder. A leading
--, as pnpm passes it through, is accepted, sopnpm dlx … -- my-docs --yesno longer ignores--yes.
First run
yarn dlxwith Yarn 2+ can scaffold from a PR preview. Yarn now extracts the package instead of keeping it in a zip, where the preview’s bundled templates couldn’t be read.- Pressing Enter at the directory prompt uses
my-docs, as shown. Before, it failed with “Directory is required”. - bun’s install output no longer shows in the scaffolder’s output, and “Next steps” no longer has an empty line where the install command would be. An install’s own output shows only when it fails.
- The empty starter ships one home page,
src/content/docs/index.mdx, so its firstnimbus-docs checkno longer warns about a duplicate route at/. Before, a landing page shadowed it and linked to pages the empty starter doesn’t have. - The starter’s home page links to its pages through their entries, so the links follow
trailingSlashand a card whose page you delete disappears instead of linking to a 404. - The starter’s
AGENT.mdsays to setsitebefore runningcheckin a loop, and ends the loop when only fixes that need input remain, so an agent no longer loops on the placeholdersite. It also says components can be imported in the.mdxfile that uses them instead of registered.
- A failed dependency install exits
-
Updated dependencies [
adb8efe,41376dd,fd53431,6637381,ae346f0]:- @cloudflare/nimbus-docs@0.15.1
create-nimbus-docs 0.7.7
Patch Changes
-
#165
05efc7aThanks @MohamedH1998! - The API reference components show whether a request body is required, and its description, beside the request body heading. A response with several media types shows one body per media type, each labeled with its type and with its own example, in the same stacked layout as additional request bodies.ApiFieldListaccepts optionalrequiredanddescriptionHtmlprops for this. -
#164
b8f4d05Thanks @MohamedH1998! - The starter’s page route takesmarkdownUrlandogImageUrlfromgetDocsPage(), its OG route builds cards fromgetOgImagePages(), and its threellms.txtroutes callllmsRoute(),llmsFullRoute(), andllmsSectionRoute().src/utils/agent-endpoint-response.tsis removed. Built output is unchanged. -
#161
b45ca22Thanks @MohamedH1998! - The starter’ssrc/pages/[...slug]/index.md.tsandindex.mdx.tsroutes now usemarkdownRoute()andmarkdownSourceRoute(), so they serve the Markdown and source versions of every collection. Generated files are unchanged. -
Updated dependencies [
982a47d,c26b52b,05efc7a,2223c45,9eef696,b8f4d05,b45ca22]:- @cloudflare/nimbus-docs@0.15.0