Skip to content

Latest commit

 

History

History
124 lines (103 loc) · 5.74 KB

File metadata and controls

124 lines (103 loc) · 5.74 KB

Changelog

Notable changes per Nimbus release. Two packages publish from this monorepo: nimbus-docs (the framework) and create-nimbus-docs (the scaffolder). Their versions move independently.

Frozen. New release notes are no longer added to this file. Per-package changelogs are now generated by Changesets: packages/nimbus-docs/CHANGELOG.md and packages/create-nimbus-docs/CHANGELOG.md. The history below is preserved as-is. Nothing between the newest entries here (nimbus-docs@0.0.2 / create-nimbus-docs@0.0.3) and the first Changesets-managed release was changelogged; everything since lives in the per-package changelogs linked above.


nimbus-docs@0.0.2 · create-nimbus-docs@0.0.3

The polish-focused release. v1 is still pre-stable — breaking changes are intentional, undocumented impact is not.

Breaking

  • getSidebar(slug, options?)getSidebar(slug). The mode parameter is gone. The helper always returns the scoped tree (current section only). Callers that previously needed the full un-scoped tree (e.g. header section tabs) should switch to getSidebarSections(slug).
  • SidebarConfig.mode removed from NimbusConfig. Config files carrying sidebar: { mode: "full" } keep validating (passthrough schema) but the field has no effect; remove it.

Added

  • getSidebarSections(slug) returns one SidebarSection ({ label, href, isActive }) per top-level group in the sidebar tree. Used by Header.astro to render the section-tab strip. New public type SidebarSection exported from nimbus-docs/types. Replaces the user-owned lib/sections.ts derivation, which is deleted from all shipped templates (-64 lines per starter).
  • getLastUpdated(entry) runs git log -1 --format=%aI -- <filePath> and returns the most recent author date as a Date. Author date rather than committer date so rebases of unchanged content keep their dates. Returns undefined silently on any failure (shallow clone, untracked file, no .git, git not on PATH). Wired into the starter's [...slug].astro as entry.data.lastUpdated ?? await getLastUpdated(entry) — frontmatter wins, git fallback, no mtime lie when git can't answer.
  • defaultCodeTransformers() returns the canonical Shiki transformer chain (six from @shikijs/transformers plus the Nimbus-owned titleAndLangTransformer). Wired into shikiConfig.transformers for fenced MDX blocks and into the starter's Code.astro for the <Code> component (and anything composing it, like <CodeGroup>).
  • Premium code-block features ship automatically on every fenced block and every <Code> invocation:
    • Filename title bar via ```ts title="src/foo.ts"
    • Visible language tag (inside title bar when present, top-right of pre otherwise; auto-hides on hover so the copy button takes over)
    • Line highlighting via {1,3-5} meta or // [!code highlight]
    • Diff via // [!code ++] / // [!code --]
    • Focus mode via // [!code focus] (dims surrounding lines; clears on hover)
    • Error / warning lines via // [!code error] / // [!code warning]
    • Word highlighting via // [!code word:foo] or meta /pattern/
  • Animated page transitions ship by default via <ClientRouter /> in BaseLayout.astro. 180ms cross-fade plus 4px upward rise on the incoming page; respects prefers-reduced-motion: reduce (skips animation, keeps SPA swap). Components were already transition-aware via mount()'s astro:before-swap / astro:page-load lifecycle.
  • AGENT.md audit brief ships at the root of every scaffolded project. Replaces the earlier nimbus check CLI idea — coding agents read it automatically and apply judgment to edge cases a rule engine couldn't.

Improved

  • Aside / Banner / Callout use the same color-mix type-tinted border pattern. Banner converted from Tailwind border-info/bg-* utilities to the banner-card CSS class for consistency with Aside.
  • Mobile sidebar toggle auto-hides on pages without a sidebar dialog via body:not(:has([data-mobile-sidebar])) [data-menu-btn]. Landing pages and custom pages no longer show a hamburger button that does nothing.
  • Registry generator output is deterministic. Removed the generatedAt field from RegistryIndex (nothing reads it; it caused a 1-line diff on every regen).
  • Code.astro premium chrome propagates through <CodeGroup> automatically because the transformers are applied at component level, not just markdown level.

Fixed

  • The 0.0.1 scaffolder published with nimbus-docs: "workspace:*" leaking into the tarball was already fixed in create-nimbus-docs@0.0.2. The pinning script (pinNimbusDocsVersion in copy-template.mjs) now follows the published nimbus-docs version automatically — a bump to nimbus-docs cascades into a fresh template pin on next copy-template.mjs run.

Production note

CI/CD systems do shallow clones by default (Vercel, Cloudflare Pages, GitHub Actions checkout@v4 at fetch-depth: 1). For getLastUpdated to produce real dates in deployed builds, configure full history on the checkout step:

- uses: actions/checkout@v4
  with:
    fetch-depth: 0

Without this, the helper returns undefined and the layout falls back to frontmatter lastUpdated or hides the line entirely.


nimbus-docs@0.0.1 · create-nimbus-docs@0.0.2

Initial productionization release. Closes Row 8 (AGENT.md audit brief), fixes the workspace:* leak into the shipped tarball, ships the Cloudflare-first deployment shape with Markdown for Agents support.

See git history for the full set: git log v0.0.1.