create-nimbus-docs 0.7.6
Patch Changes
-
#157
cde0751Thanks @MohamedH1998! - Render authored OpenAPI request examples as selectable examples in API reference pages and generated Markdown. -
#154
f9aecd8Thanks @sansynx! - Keep footnote targets visible below the sticky header when following note and return links. -
Updated dependencies [
08b963b,cde0751,9f024b0]:- @cloudflare/nimbus-docs@0.14.2
create-nimbus-docs 0.7.5
Patch Changes
create-nimbus-docs 0.7.4
Patch Changes
-
#129
3fd7d15Thanks @MohamedH1998! - Add a versioned breaking-change manifest, explicit reviewed upgrade baselines, agent-readable migration plans, sharedcheckandoutdateddiagnostics, safe starter drift updates, starter agent upgrade guidance, and automatic migration guidance during Astro configuration. -
#122
4b51ebbThanks @MohamedH1998! - Allow user-owned Astro pages and scaffolded Markdown andllms.txtendpoints to use native rendering semantics while retaining entrypoint-aware checks for active Nimbus contracts and composing with unrelated integration routes. These dynamic endpoints now resolve their payloads when rendered on request. Endpoint helpers now live at@cloudflare/nimbus-docs/agent-endpoints; the existing@cloudflare/nimbus-docs/publicationentrypoint remains supported. Sub-path sitemaps now list the deployment root once. -
#141
7790b7cThanks @MohamedH1998! - Reduce repeated API field-icon markup by sharing SVG paint settings in the existing field-list stylesheet. Preserve icon shapes, field content, links, and disclosure behavior. Existing sites can apply the owned component and stylesheet changes together; framework upgrades do not overwrite owned files. -
#139
ea8cd46Thanks @MohamedH1998! - Render MDX admonitions with Sätteri’s native directive parser, preserving nested content, code examples, plain titles, aliases, and scoped opt-outs. Usemarkdown.mdastPluginsandmarkdown.hastPluginsfor native extensions. Explicit incompatible processors must disable Nimbus admonitions, while Astro MDX options continue to pass through unchanged. Native admonitions now apply to.mdxonly; review existing admonition directives in.mdfiles. Astro 7.2.6 or newer is required. -
#137
728e753Thanks @MohamedH1998! - Update generated projects to Astro 7.2.8 and align the Node adapter with Astro’s updated runtime API. -
#140
a6ccf99Thanks @MohamedH1998! - Reserve the desktop API code-rail column before streamed rail HTML arrives, preventing the main content from shifting sideways. Preserve mobile stacking, no-rail layouts, and custom rail width. Existing sites can copy the updated owned ApiLayout component if desired; updating the framework does not overwrite it. This prevents layout shift without making the rail arrive sooner. -
Updated dependencies [
3fd7d15,4b51ebb,5343933,3f7c16a,ea8cd46,728e753]:- @cloudflare/nimbus-docs@0.14.0
create-nimbus-docs 0.7.3
Patch Changes
create-nimbus-docs 0.7.2
Patch Changes
-
#114
3c0d794Thanks @MohamedH1998! - Generate deterministic Markdown versions for every public page, prepared MDX source versions for authored pages,llms.txtindexes,llms-full.txt, and merged partial headings at build time. Request-rendered pages now consume compact prepared heading data, and custom component transforms and partial resolvers are configured throughmarkdown.componentMapandmarkdown.partialResolver. Worker bundles no longer include partial-expansion parsers. Calls torenderEntryAsMarkdownorgetEntryMarkdownthat still pass<Render>partials now fail instead of attempting runtime expansion; migrate custom Markdown routes to the prepared helpers exported by@cloudflare/nimbus-docs/build.Rename prepared publication APIs without compatibility aliases:
TwinSurfacebecomesPreparedMarkdownSurface,PreparedTwin*becomesPreparedMarkdown*,PreparedCorpus*becomesPreparedLlms*,getPreparedTwin*becomesgetPreparedMarkdown*,getPreparedCorpus*becomesgetPreparedLlms*, andrenderCorpusMarkdownbecomesrenderLlmsFullMarkdown. Move integration customization fromtwins.componentMapandtwins.partialResolvertomarkdown.componentMapandmarkdown.partialResolver.Keep framework assets, metadata, starter navigation, and generated API links inside Astro’s configured deployment base path. Replace the removed
withBaseRouteruntime export withwithBase; site-relative inputs towithBasemust be logical, unbased paths.Keep generated
.nimbusbuild data out of source control, deduplicate sitemap roots on subpath deployments, and advertise prepared MDX source responses astext/mdxconsistently across static and request rendering. -
Updated dependencies [
3c0d794]:- @cloudflare/nimbus-docs@0.13.0
create-nimbus-docs 0.7.1
Patch Changes
- #106
2c08dceThanks @MohamedH1998! - Install@cloudflare/nimbus-docsas a runtime dependency so the CLI can load its adapter helpers.
create-nimbus-docs 0.7.0
Minor Changes
-
#93
43c161aThanks @MohamedH1998! - Add first-party OpenAPI reference support to Nimbus.- Configure local or inline OpenAPI specs as routed, version-aware collections with operations, schemas, tags, webhooks, generated samples, and every declared request-body media type.
- Install an editable
api-layoutUI that shares Nimbus’s docs shell, navigation, breadcrumbs, banners, mobile behavior, and deep-linkable field and code-sample controls. The copiedApiFieldListfield iterator is explicitly typed so the scaffolded UI type-checks cleanly under a consumer’s strict TypeScript. - Publish per-page Markdown, agent indexes, corpus entries, coordinate manifests, and
api.ref:citations across local and cross-site documentation. - Harden generated-consumer delivery with exact registry dependencies, working pnpm installs from scaffold roots, and base-aware canonical, Markdown, sitemap, and agent URLs through the new public
withBasehelper. - Control how operation pages are addressed, and stay resilient to messy specs. By default, operations that lack a usable
operationIdno longer abort the build — they warn and fall back to a path-derived coordinate, so real-world specs (e.g. Cloudflare’sbrand-protectionoperations) build; setapi[].requireOperationId: trueon specs you own to keep that fatal, while route-hostile paths and coordinate collisions stay fatal regardless. For readable, path-derived URLs, opt into theresource-action-v1route convention: setapi[].routes: { convention: "resource-action-v1" }(per version in a family) to derive slugs likecharges/listfrom an operation’s method and path, decoupled fromoperationIdso route-hostile identifiers no longer poison URLs. Trim shared bases withstripPathPrefixes(e.g.["/v1"]), pin individual pages with anoperations(operationId→ slug) map, and inspect how each slug resolved (override/derived/fallback) via the newgetApiRouteProvenanceexport. Derivation collisions, reserved-route segments, unused overrides, cross-version slug drift, and unknown config keys (e.g. astripPrefixestypo forstripPathPrefixes) are reported with pointed messages; the default (noroutes) keeps the legacyoperationIdslugs unchanged.
-
#103
f372a4eThanks @MohamedH1998! - Add a--adapter <vercel|node|netlify|cloudflare>scaffold flag for server output.Passing
--adapterselectsoutput: "server"and wires the chosen adapter at scaffold time: it flips the generatedastro.configat the// nimbus:adaptermarker, appends the adapter’s platform build dir to.gitignore, and for Cloudflare writes a serverwrangler.jsonc. Node scaffolds include a productionstartscript.--deployis ignored with--adapter(server output owns its target). Config discovery follows Astro’s own resolution order and supported set (.mjs/.js/.ts/.mts), matching thenimbus-docs add adapter-*opt-in. Copied templates are rejected if they contain symlinks so transformations cannot escape the project root.Static scaffolds now preserve the
// nimbus:adaptermarker so the laternimbus-docs add adapter-*opt-in can reliably rewrite generated projects.Reject destinations whose existing symlinked parent resolves outside the current directory, quote paths with spaces in next-step commands, and keep generated components compatible with adapter-defined
Astro.localstypes. -
#104
862df4aThanks @MohamedH1998! - Add Cloudflare request rendering for canonical content collections.Nimbus now supports collection-level build and request rendering policies with validated defaults and per-collection overrides. Request-rendered prose and API routes use response-aware page helpers, prepared API models, request-safe partial headings, 404 responses, and build-derived syntax-highlighting assets without shipping source OpenAPI specs to Workers. Cloudflare server scaffolds enable request rendering by default, and generated pnpm configuration installs Satteri’s WASI fallback alongside the current architecture.
Preserve sitemap, Pagefind, Markdown, and agent-index discovery for request-rendered routes. Pin the tested sitemap integration, clean up synthetic Pagefind staging files transactionally, and generate cross-collection Open Graph images in new starters.
Patch Changes
-
#89
deddca5Thanks @sansynx! - Remove the deprecatedbaseUrloption from generated TypeScript configuration so Nimbus sites continue to pass type checks on TypeScript 6 while preserving the@/import alias. -
#99
2965d9fThanks @MohamedH1998! - Guard thePackageManagersrestore script’stextContentaccess with optional chaining so the starter passes a strictastro check(part of the CJK/type-safety fixes).
create-nimbus-docs 0.6.6
Patch Changes
-
#86
b4b0dc3Thanks @MohamedH1998! - Starter accessibility, layout-stability, and no-flash navigation fixes:- Skip link now lands focus —
<main>getsid="main-content"andtabindex="-1"on the 404, home, and docs layouts. - Closed sidebar groups leave the tab order (
inert), including the pre-hydration restore path. - “On this page” no longer reflows when an item becomes active (width-reserving ghost).
- Focus rings no longer flash on first focus (base-layer outline default so the ring color/width/offset never animate).
- Client-side navigation via
<ClientRouter />with a blocking (is:inline) theme bootstrap to remove the first-paint theme flash, a page-content view transition, and a navigation-safe sidebar-state restore that keeps the active item visible.
- Skip link now lands focus —
create-nimbus-docs 0.6.5
Patch Changes
-
#76
acfac20Thanks @mvvmm! - Replaceastro-iconwith a built-in icon system. This is a breaking change for any project usingastro-icondirectly.Why:
astro-iconstamped a generatedlastModifiedtimestamp into its virtual module on every build, invalidating thousands of cached pages in Astro’s incremental build cache. The package is unmaintained so an upstream fix isn’t coming.What’s new: Nimbus now provides
virtual:nimbus/icons(a Vite plugin) and@cloudflare/nimbus-docs/components/Icon.astro. The plugin auto-detects installed@iconify-json/*packages and loads local SVGs fromsrc/icons/. The component API is compatible withastro-icon(name,size,width,height,is:inline,title,desc, and all<svg>attributes). SVG bodies are passed throughreplaceIDsso internal IDs (clipPath, mask, gradient defs) are unique per render — preventing collisions when the same icon appears more than once on a page.Breaking changes:
- Remove
astro-iconfrom yourpackage.jsonandastro.config.ts - Replace
import { Icon } from "astro-icon/components"withimport Icon from "@cloudflare/nimbus-docs/components/Icon.astro" - SVG output structure changed: SVGs are always inlined; the previous
<symbol>/<use>pattern produced duplicate DOM IDs when the same icon was used more than once on a page, so it has been removed. Any CSS or JS targetingsymboloruseelements will need updating.
Migration:
- import { Icon } from "astro-icon/components"; + import Icon from "@cloudflare/nimbus-docs/components/Icon.astro";Starter templates updated: removed
astro-icondependency andicon()integration fromastro.config.ts; all component imports updated to the new path. - Remove
-
#70
b9620bcThanks @MohamedH1998! - Fix search dialog results not scrolling. The results wrapper now lays out as a flex column, so the results list gets a bounded height and itsoverflow-y-autoengages — long result sets scroll within the dialog instead of being clipped, while the search input stays in view above the scroll region. -
#71
4d6815fThanks @MohamedH1998! - Make pkg.pr.new preview builds scaffold from bundled PR templates and pin generated projects to the matching@cloudflare/nimbus-docspreview.Generated starters are now pinned to the verified Astro 7.0.x line while the upstream Astro 7.1.x static build regression is open.
create-nimbus-docs 0.6.4
Patch Changes
-
#64
d551fa2Thanks @MohamedH1998! - Stop shipping the.nimbus/build directory into scaffolded projects.nimbus/holds build artifacts materialized byastro build(routes.json,lint.json). It had leaked into the starter source and was being copied into new projects, so a freshly scaffolded app carried stale route and lint truth from the template rather than its own..nimbusis now excluded by both the template-copy script and the runtime scaffolder, and removed from the starter source; a new project starts with no build artifacts and generates its own on first build. -
#64
e1e4e8dThanks @MohamedH1998! - Point the scaffolded AGENT.md atnimbus-docs checkThe generated
AGENT.mdnow documents the one-command model: a “Check it builds” row in the actions table (env + structure + authoring + types), and an “Audit this site” section that leads withnimbus-docs check --jsonbefore the manual walk of whatcheckdoesn’t cover yet (route-file existence, registry hygiene, AI surface, post-build search, Cloudflare config).It teaches an agent the honest result contract: the primary signals are
status(passed|failed|partial) andreadiness(buildable|blocked|unknown), withokkept only for back-compat; a check that couldn’t be evaluated yet (e.g. types before a build) is anoteunderscopes[].notes[]— never a finding, never afix— so the fix loop terminates onstatus !== "failed" && summary.fixable === 0rather than spinning on a coverage gap it cannot repair.