From 37989a1f885d2a324330f736424b013b4f64a64a Mon Sep 17 00:00:00 2001 From: Timothee Guerin Date: Thu, 19 Mar 2026 15:08:36 -0400 Subject: [PATCH 1/4] Move release notes --- packages/astro-utils/src/sidebar/index.ts | 3 +- website/astro.config.mjs | 19 ++++-- .../src/components/release-notes-list.astro | 61 ++++++++++++++++++ .../src/components/release-notification.astro | 2 +- .../starlight-overrides/Sidebar.astro | 34 ++++++++++ website/src/content/current-sidebar.ts | 7 -- .../release-notes/cadl-typespec-migration.md | 0 .../images/tspconfig-completion.png | Bin .../src/content/docs/release-notes/index.mdx | 9 +++ .../release-notes/release-2022-07-08.md | 0 .../release-notes/release-2022-08-10.md | 0 .../release-notes/release-2022-09-07.md | 0 .../release-notes/release-2022-10-12.md | 0 .../release-notes/release-2022-12-07.md | 0 .../release-notes/release-2023-01-12.md | 0 .../release-notes/release-2023-02-07.md | 0 .../release-notes/release-2023-03-13.md | 0 .../release-notes/release-2023-04-11.md | 0 .../release-notes/release-2023-05-10.md | 0 .../release-notes/release-2023-06-06.md | 0 .../release-notes/release-2023-07-11.md | 0 .../release-notes/release-2023-08-08.md | 0 .../release-notes/release-2023-09-12.md | 0 .../release-notes/release-2023-10-11.md | 0 .../release-notes/release-2023-11-07.md | 0 .../release-notes/release-2023-12-06.md | 0 .../release-notes/release-2024-01-23.md | 0 .../release-notes/release-2024-02-06.md | 0 .../release-notes/release-2024-03-05.md | 0 .../release-notes/release-2024-04-02.md | 0 .../release-notes/release-2024-05-07.md | 0 .../release-notes/release-2024-06-10.md | 0 .../release-notes/release-2024-07-16.md | 0 .../release-notes/release-2024-08-06.md | 0 .../release-notes/release-2024-09-10.md | 0 .../release-notes/release-2024-10-09.md | 0 .../release-notes/release-2024-11-05.md | 0 .../release-notes/release-2024-12-10.md | 0 .../release-notes/release-2025-01-15.md | 0 .../release-notes/release-2025-02-11.md | 0 .../release-notes/release-2025-03-04.md | 0 .../release-notes/release-2025-03-18.md | 0 .../release-notes/release-2025-04-02.md | 0 .../release-notes/release-2025-04-22.md | 0 .../release-notes/release-2025-05-06.md | 0 .../release-notes/release-2025-06-10.md | 0 .../release-notes/release-2025-07-15.md | 0 .../release-notes/release-2025-08-06.md | 0 .../release-notes/release-2025-09-09.md | 0 .../release-notes/release-2025-10-08.md | 0 .../release-notes/release-2025-11-11.md | 0 .../release-notes/release-2025-12-09.md | 0 .../release-notes/release-2026-01-13.md | 0 .../release-notes/release-2026-02-10.md | 0 .../release-notes/release-2026-03-10.md | 0 .../release-notes/signature-help.png | Bin website/src/content/release-notes-sidebar.ts | 12 ++++ website/src/pages/docs/[...slug].md.ts | 2 +- 58 files changed, 134 insertions(+), 15 deletions(-) create mode 100644 website/src/components/release-notes-list.astro create mode 100644 website/src/components/starlight-overrides/Sidebar.astro rename website/src/content/docs/{docs => }/release-notes/cadl-typespec-migration.md (100%) rename website/src/content/docs/{docs => }/release-notes/images/tspconfig-completion.png (100%) create mode 100644 website/src/content/docs/release-notes/index.mdx rename website/src/content/docs/{docs => }/release-notes/release-2022-07-08.md (100%) rename website/src/content/docs/{docs => }/release-notes/release-2022-08-10.md (100%) rename website/src/content/docs/{docs => }/release-notes/release-2022-09-07.md (100%) rename website/src/content/docs/{docs => }/release-notes/release-2022-10-12.md (100%) rename website/src/content/docs/{docs => }/release-notes/release-2022-12-07.md (100%) rename website/src/content/docs/{docs => }/release-notes/release-2023-01-12.md (100%) rename website/src/content/docs/{docs => }/release-notes/release-2023-02-07.md (100%) rename website/src/content/docs/{docs => }/release-notes/release-2023-03-13.md (100%) rename website/src/content/docs/{docs => }/release-notes/release-2023-04-11.md (100%) rename website/src/content/docs/{docs => }/release-notes/release-2023-05-10.md (100%) rename website/src/content/docs/{docs => }/release-notes/release-2023-06-06.md (100%) rename website/src/content/docs/{docs => }/release-notes/release-2023-07-11.md (100%) rename website/src/content/docs/{docs => }/release-notes/release-2023-08-08.md (100%) rename website/src/content/docs/{docs => }/release-notes/release-2023-09-12.md (100%) rename website/src/content/docs/{docs => }/release-notes/release-2023-10-11.md (100%) rename website/src/content/docs/{docs => }/release-notes/release-2023-11-07.md (100%) rename website/src/content/docs/{docs => }/release-notes/release-2023-12-06.md (100%) rename website/src/content/docs/{docs => }/release-notes/release-2024-01-23.md (100%) rename website/src/content/docs/{docs => }/release-notes/release-2024-02-06.md (100%) rename website/src/content/docs/{docs => }/release-notes/release-2024-03-05.md (100%) rename website/src/content/docs/{docs => }/release-notes/release-2024-04-02.md (100%) rename website/src/content/docs/{docs => }/release-notes/release-2024-05-07.md (100%) rename website/src/content/docs/{docs => }/release-notes/release-2024-06-10.md (100%) rename website/src/content/docs/{docs => }/release-notes/release-2024-07-16.md (100%) rename website/src/content/docs/{docs => }/release-notes/release-2024-08-06.md (100%) rename website/src/content/docs/{docs => }/release-notes/release-2024-09-10.md (100%) rename website/src/content/docs/{docs => }/release-notes/release-2024-10-09.md (100%) rename website/src/content/docs/{docs => }/release-notes/release-2024-11-05.md (100%) rename website/src/content/docs/{docs => }/release-notes/release-2024-12-10.md (100%) rename website/src/content/docs/{docs => }/release-notes/release-2025-01-15.md (100%) rename website/src/content/docs/{docs => }/release-notes/release-2025-02-11.md (100%) rename website/src/content/docs/{docs => }/release-notes/release-2025-03-04.md (100%) rename website/src/content/docs/{docs => }/release-notes/release-2025-03-18.md (100%) rename website/src/content/docs/{docs => }/release-notes/release-2025-04-02.md (100%) rename website/src/content/docs/{docs => }/release-notes/release-2025-04-22.md (100%) rename website/src/content/docs/{docs => }/release-notes/release-2025-05-06.md (100%) rename website/src/content/docs/{docs => }/release-notes/release-2025-06-10.md (100%) rename website/src/content/docs/{docs => }/release-notes/release-2025-07-15.md (100%) rename website/src/content/docs/{docs => }/release-notes/release-2025-08-06.md (100%) rename website/src/content/docs/{docs => }/release-notes/release-2025-09-09.md (100%) rename website/src/content/docs/{docs => }/release-notes/release-2025-10-08.md (100%) rename website/src/content/docs/{docs => }/release-notes/release-2025-11-11.md (100%) rename website/src/content/docs/{docs => }/release-notes/release-2025-12-09.md (100%) rename website/src/content/docs/{docs => }/release-notes/release-2026-01-13.md (100%) rename website/src/content/docs/{docs => }/release-notes/release-2026-02-10.md (100%) rename website/src/content/docs/{docs => }/release-notes/release-2026-03-10.md (100%) rename website/src/content/docs/{docs => }/release-notes/signature-help.png (100%) create mode 100644 website/src/content/release-notes-sidebar.ts diff --git a/packages/astro-utils/src/sidebar/index.ts b/packages/astro-utils/src/sidebar/index.ts index 904f76f70ab..4569954ccf3 100644 --- a/packages/astro-utils/src/sidebar/index.ts +++ b/packages/astro-utils/src/sidebar/index.ts @@ -53,7 +53,8 @@ export async function processSidebar( function getSlugFromPath(directory: string, path: string) { const name = parse(path).name.toLocaleLowerCase(); const normalizedName = name === "index" ? "" : name; - return prefix(join(directory, normalizedName)) + const joined = join(directory, normalizedName); + return prefix(joined === "." ? "" : joined) .replaceAll("$", "") .replaceAll(" ", "-") .toLowerCase(); diff --git a/website/astro.config.mjs b/website/astro.config.mjs index ea4a1ad8e76..cc92c70ac6b 100644 --- a/website/astro.config.mjs +++ b/website/astro.config.mjs @@ -10,6 +10,7 @@ import { resolve } from "pathe"; import rehypeMermaid from "rehype-mermaid"; import remarkHeadingID from "remark-heading-id"; import current from "./src/content/current-sidebar"; +import releaseNotes from "./src/content/release-notes-sidebar"; const base = process.env.TYPESPEC_WEBSITE_BASE_PATH ?? "/"; @@ -22,16 +23,24 @@ export default defineConfig({ astroExpressiveCode(), starlight({ title: "TypeSpec", - sidebar: await processSidebar( - resolve(import.meta.dirname, "src/content/docs"), - "docs", - current, - ), + sidebar: [ + ...(await processSidebar( + resolve(import.meta.dirname, "src/content/docs"), + "docs", + current, + )), + ...(await processSidebar( + resolve(import.meta.dirname, "src/content/docs"), + "release-notes", + releaseNotes, + )), + ], favicon: "/img/favicon.svg", customCss: ["./src/css/custom.css"], components: { Header: "./src/components/header/header.astro", PageFrame: "./src/components/starlight-overrides/PageFrame.astro", + Sidebar: "./src/components/starlight-overrides/Sidebar.astro", }, expressiveCode: false, // defined directly above head: [ diff --git a/website/src/components/release-notes-list.astro b/website/src/components/release-notes-list.astro new file mode 100644 index 00000000000..a9e0f0a5589 --- /dev/null +++ b/website/src/components/release-notes-list.astro @@ -0,0 +1,61 @@ +--- +import { getCollection } from "astro:content"; +import Link from "@typespec/astro-utils/components/link.astro"; + +const releaseNotes = await getCollection("docs", (x) => + x.id.startsWith("release-notes/") && x.id !== "release-notes", +); +releaseNotes.sort((a, b) => b.id.localeCompare(a.id)); +--- + + + + diff --git a/website/src/components/release-notification.astro b/website/src/components/release-notification.astro index 54e312cd976..26858181756 100644 --- a/website/src/components/release-notification.astro +++ b/website/src/components/release-notification.astro @@ -1,6 +1,6 @@ --- import { getCollection } from "astro:content"; -const releaseNotes = await getCollection("docs", (x) => x.id.startsWith("docs/release-notes")); +const releaseNotes = await getCollection("docs", (x) => x.id.startsWith("release-notes/")); releaseNotes.sort((a, b) => a.id.localeCompare(b.id)); const last = releaseNotes[releaseNotes.length - 1]; const releaseDate = last.data.releaseDate; diff --git a/website/src/components/starlight-overrides/Sidebar.astro b/website/src/components/starlight-overrides/Sidebar.astro new file mode 100644 index 00000000000..2de3e9a6965 --- /dev/null +++ b/website/src/components/starlight-overrides/Sidebar.astro @@ -0,0 +1,34 @@ +--- +import MobileMenuFooter from "@astrojs/starlight/components/MobileMenuFooter.astro"; +import SidebarPersister from "@astrojs/starlight/components/SidebarPersister.astro"; +import SidebarSublist from "@astrojs/starlight/components/SidebarSublist.astro"; + +const { sidebar } = Astro.locals.starlightRoute; +const pathname = Astro.url.pathname; + +type SidebarEntry = (typeof sidebar)[number]; + +function isReleaseNotesRoute(path: string): boolean { + return path.startsWith("/release-notes"); +} + +function hasReleaseNotesLink(entry: SidebarEntry): boolean { + if (entry.type === "link") { + return entry.href.startsWith("/release-notes"); + } + return entry.entries.some(hasReleaseNotesLink); +} + +const isReleaseNotes = isReleaseNotesRoute(pathname); +const filtered = sidebar.filter((entry) => + isReleaseNotes ? hasReleaseNotesLink(entry) : !hasReleaseNotesLink(entry), +); +--- + + + + + +
+ +
diff --git a/website/src/content/current-sidebar.ts b/website/src/content/current-sidebar.ts index 44893d8f8bc..b6e8393692f 100644 --- a/website/src/content/current-sidebar.ts +++ b/website/src/content/current-sidebar.ts @@ -249,13 +249,6 @@ const sidebar: SidebarItem[] = [ "extending-typespec/writing-scaffolding-template", ], }, - { - label: "🚀 Release Notes", - autogenerate: { - order: "desc", - directory: "release-notes", - }, - }, ]; export default sidebar; diff --git a/website/src/content/docs/docs/release-notes/cadl-typespec-migration.md b/website/src/content/docs/release-notes/cadl-typespec-migration.md similarity index 100% rename from website/src/content/docs/docs/release-notes/cadl-typespec-migration.md rename to website/src/content/docs/release-notes/cadl-typespec-migration.md diff --git a/website/src/content/docs/docs/release-notes/images/tspconfig-completion.png b/website/src/content/docs/release-notes/images/tspconfig-completion.png similarity index 100% rename from website/src/content/docs/docs/release-notes/images/tspconfig-completion.png rename to website/src/content/docs/release-notes/images/tspconfig-completion.png diff --git a/website/src/content/docs/release-notes/index.mdx b/website/src/content/docs/release-notes/index.mdx new file mode 100644 index 00000000000..52b704b1166 --- /dev/null +++ b/website/src/content/docs/release-notes/index.mdx @@ -0,0 +1,9 @@ +--- +title: Release Notes +sidebar: + hidden: true +--- + +import ReleaseNotesList from "@site/src/components/release-notes-list.astro"; + + diff --git a/website/src/content/docs/docs/release-notes/release-2022-07-08.md b/website/src/content/docs/release-notes/release-2022-07-08.md similarity index 100% rename from website/src/content/docs/docs/release-notes/release-2022-07-08.md rename to website/src/content/docs/release-notes/release-2022-07-08.md diff --git a/website/src/content/docs/docs/release-notes/release-2022-08-10.md b/website/src/content/docs/release-notes/release-2022-08-10.md similarity index 100% rename from website/src/content/docs/docs/release-notes/release-2022-08-10.md rename to website/src/content/docs/release-notes/release-2022-08-10.md diff --git a/website/src/content/docs/docs/release-notes/release-2022-09-07.md b/website/src/content/docs/release-notes/release-2022-09-07.md similarity index 100% rename from website/src/content/docs/docs/release-notes/release-2022-09-07.md rename to website/src/content/docs/release-notes/release-2022-09-07.md diff --git a/website/src/content/docs/docs/release-notes/release-2022-10-12.md b/website/src/content/docs/release-notes/release-2022-10-12.md similarity index 100% rename from website/src/content/docs/docs/release-notes/release-2022-10-12.md rename to website/src/content/docs/release-notes/release-2022-10-12.md diff --git a/website/src/content/docs/docs/release-notes/release-2022-12-07.md b/website/src/content/docs/release-notes/release-2022-12-07.md similarity index 100% rename from website/src/content/docs/docs/release-notes/release-2022-12-07.md rename to website/src/content/docs/release-notes/release-2022-12-07.md diff --git a/website/src/content/docs/docs/release-notes/release-2023-01-12.md b/website/src/content/docs/release-notes/release-2023-01-12.md similarity index 100% rename from website/src/content/docs/docs/release-notes/release-2023-01-12.md rename to website/src/content/docs/release-notes/release-2023-01-12.md diff --git a/website/src/content/docs/docs/release-notes/release-2023-02-07.md b/website/src/content/docs/release-notes/release-2023-02-07.md similarity index 100% rename from website/src/content/docs/docs/release-notes/release-2023-02-07.md rename to website/src/content/docs/release-notes/release-2023-02-07.md diff --git a/website/src/content/docs/docs/release-notes/release-2023-03-13.md b/website/src/content/docs/release-notes/release-2023-03-13.md similarity index 100% rename from website/src/content/docs/docs/release-notes/release-2023-03-13.md rename to website/src/content/docs/release-notes/release-2023-03-13.md diff --git a/website/src/content/docs/docs/release-notes/release-2023-04-11.md b/website/src/content/docs/release-notes/release-2023-04-11.md similarity index 100% rename from website/src/content/docs/docs/release-notes/release-2023-04-11.md rename to website/src/content/docs/release-notes/release-2023-04-11.md diff --git a/website/src/content/docs/docs/release-notes/release-2023-05-10.md b/website/src/content/docs/release-notes/release-2023-05-10.md similarity index 100% rename from website/src/content/docs/docs/release-notes/release-2023-05-10.md rename to website/src/content/docs/release-notes/release-2023-05-10.md diff --git a/website/src/content/docs/docs/release-notes/release-2023-06-06.md b/website/src/content/docs/release-notes/release-2023-06-06.md similarity index 100% rename from website/src/content/docs/docs/release-notes/release-2023-06-06.md rename to website/src/content/docs/release-notes/release-2023-06-06.md diff --git a/website/src/content/docs/docs/release-notes/release-2023-07-11.md b/website/src/content/docs/release-notes/release-2023-07-11.md similarity index 100% rename from website/src/content/docs/docs/release-notes/release-2023-07-11.md rename to website/src/content/docs/release-notes/release-2023-07-11.md diff --git a/website/src/content/docs/docs/release-notes/release-2023-08-08.md b/website/src/content/docs/release-notes/release-2023-08-08.md similarity index 100% rename from website/src/content/docs/docs/release-notes/release-2023-08-08.md rename to website/src/content/docs/release-notes/release-2023-08-08.md diff --git a/website/src/content/docs/docs/release-notes/release-2023-09-12.md b/website/src/content/docs/release-notes/release-2023-09-12.md similarity index 100% rename from website/src/content/docs/docs/release-notes/release-2023-09-12.md rename to website/src/content/docs/release-notes/release-2023-09-12.md diff --git a/website/src/content/docs/docs/release-notes/release-2023-10-11.md b/website/src/content/docs/release-notes/release-2023-10-11.md similarity index 100% rename from website/src/content/docs/docs/release-notes/release-2023-10-11.md rename to website/src/content/docs/release-notes/release-2023-10-11.md diff --git a/website/src/content/docs/docs/release-notes/release-2023-11-07.md b/website/src/content/docs/release-notes/release-2023-11-07.md similarity index 100% rename from website/src/content/docs/docs/release-notes/release-2023-11-07.md rename to website/src/content/docs/release-notes/release-2023-11-07.md diff --git a/website/src/content/docs/docs/release-notes/release-2023-12-06.md b/website/src/content/docs/release-notes/release-2023-12-06.md similarity index 100% rename from website/src/content/docs/docs/release-notes/release-2023-12-06.md rename to website/src/content/docs/release-notes/release-2023-12-06.md diff --git a/website/src/content/docs/docs/release-notes/release-2024-01-23.md b/website/src/content/docs/release-notes/release-2024-01-23.md similarity index 100% rename from website/src/content/docs/docs/release-notes/release-2024-01-23.md rename to website/src/content/docs/release-notes/release-2024-01-23.md diff --git a/website/src/content/docs/docs/release-notes/release-2024-02-06.md b/website/src/content/docs/release-notes/release-2024-02-06.md similarity index 100% rename from website/src/content/docs/docs/release-notes/release-2024-02-06.md rename to website/src/content/docs/release-notes/release-2024-02-06.md diff --git a/website/src/content/docs/docs/release-notes/release-2024-03-05.md b/website/src/content/docs/release-notes/release-2024-03-05.md similarity index 100% rename from website/src/content/docs/docs/release-notes/release-2024-03-05.md rename to website/src/content/docs/release-notes/release-2024-03-05.md diff --git a/website/src/content/docs/docs/release-notes/release-2024-04-02.md b/website/src/content/docs/release-notes/release-2024-04-02.md similarity index 100% rename from website/src/content/docs/docs/release-notes/release-2024-04-02.md rename to website/src/content/docs/release-notes/release-2024-04-02.md diff --git a/website/src/content/docs/docs/release-notes/release-2024-05-07.md b/website/src/content/docs/release-notes/release-2024-05-07.md similarity index 100% rename from website/src/content/docs/docs/release-notes/release-2024-05-07.md rename to website/src/content/docs/release-notes/release-2024-05-07.md diff --git a/website/src/content/docs/docs/release-notes/release-2024-06-10.md b/website/src/content/docs/release-notes/release-2024-06-10.md similarity index 100% rename from website/src/content/docs/docs/release-notes/release-2024-06-10.md rename to website/src/content/docs/release-notes/release-2024-06-10.md diff --git a/website/src/content/docs/docs/release-notes/release-2024-07-16.md b/website/src/content/docs/release-notes/release-2024-07-16.md similarity index 100% rename from website/src/content/docs/docs/release-notes/release-2024-07-16.md rename to website/src/content/docs/release-notes/release-2024-07-16.md diff --git a/website/src/content/docs/docs/release-notes/release-2024-08-06.md b/website/src/content/docs/release-notes/release-2024-08-06.md similarity index 100% rename from website/src/content/docs/docs/release-notes/release-2024-08-06.md rename to website/src/content/docs/release-notes/release-2024-08-06.md diff --git a/website/src/content/docs/docs/release-notes/release-2024-09-10.md b/website/src/content/docs/release-notes/release-2024-09-10.md similarity index 100% rename from website/src/content/docs/docs/release-notes/release-2024-09-10.md rename to website/src/content/docs/release-notes/release-2024-09-10.md diff --git a/website/src/content/docs/docs/release-notes/release-2024-10-09.md b/website/src/content/docs/release-notes/release-2024-10-09.md similarity index 100% rename from website/src/content/docs/docs/release-notes/release-2024-10-09.md rename to website/src/content/docs/release-notes/release-2024-10-09.md diff --git a/website/src/content/docs/docs/release-notes/release-2024-11-05.md b/website/src/content/docs/release-notes/release-2024-11-05.md similarity index 100% rename from website/src/content/docs/docs/release-notes/release-2024-11-05.md rename to website/src/content/docs/release-notes/release-2024-11-05.md diff --git a/website/src/content/docs/docs/release-notes/release-2024-12-10.md b/website/src/content/docs/release-notes/release-2024-12-10.md similarity index 100% rename from website/src/content/docs/docs/release-notes/release-2024-12-10.md rename to website/src/content/docs/release-notes/release-2024-12-10.md diff --git a/website/src/content/docs/docs/release-notes/release-2025-01-15.md b/website/src/content/docs/release-notes/release-2025-01-15.md similarity index 100% rename from website/src/content/docs/docs/release-notes/release-2025-01-15.md rename to website/src/content/docs/release-notes/release-2025-01-15.md diff --git a/website/src/content/docs/docs/release-notes/release-2025-02-11.md b/website/src/content/docs/release-notes/release-2025-02-11.md similarity index 100% rename from website/src/content/docs/docs/release-notes/release-2025-02-11.md rename to website/src/content/docs/release-notes/release-2025-02-11.md diff --git a/website/src/content/docs/docs/release-notes/release-2025-03-04.md b/website/src/content/docs/release-notes/release-2025-03-04.md similarity index 100% rename from website/src/content/docs/docs/release-notes/release-2025-03-04.md rename to website/src/content/docs/release-notes/release-2025-03-04.md diff --git a/website/src/content/docs/docs/release-notes/release-2025-03-18.md b/website/src/content/docs/release-notes/release-2025-03-18.md similarity index 100% rename from website/src/content/docs/docs/release-notes/release-2025-03-18.md rename to website/src/content/docs/release-notes/release-2025-03-18.md diff --git a/website/src/content/docs/docs/release-notes/release-2025-04-02.md b/website/src/content/docs/release-notes/release-2025-04-02.md similarity index 100% rename from website/src/content/docs/docs/release-notes/release-2025-04-02.md rename to website/src/content/docs/release-notes/release-2025-04-02.md diff --git a/website/src/content/docs/docs/release-notes/release-2025-04-22.md b/website/src/content/docs/release-notes/release-2025-04-22.md similarity index 100% rename from website/src/content/docs/docs/release-notes/release-2025-04-22.md rename to website/src/content/docs/release-notes/release-2025-04-22.md diff --git a/website/src/content/docs/docs/release-notes/release-2025-05-06.md b/website/src/content/docs/release-notes/release-2025-05-06.md similarity index 100% rename from website/src/content/docs/docs/release-notes/release-2025-05-06.md rename to website/src/content/docs/release-notes/release-2025-05-06.md diff --git a/website/src/content/docs/docs/release-notes/release-2025-06-10.md b/website/src/content/docs/release-notes/release-2025-06-10.md similarity index 100% rename from website/src/content/docs/docs/release-notes/release-2025-06-10.md rename to website/src/content/docs/release-notes/release-2025-06-10.md diff --git a/website/src/content/docs/docs/release-notes/release-2025-07-15.md b/website/src/content/docs/release-notes/release-2025-07-15.md similarity index 100% rename from website/src/content/docs/docs/release-notes/release-2025-07-15.md rename to website/src/content/docs/release-notes/release-2025-07-15.md diff --git a/website/src/content/docs/docs/release-notes/release-2025-08-06.md b/website/src/content/docs/release-notes/release-2025-08-06.md similarity index 100% rename from website/src/content/docs/docs/release-notes/release-2025-08-06.md rename to website/src/content/docs/release-notes/release-2025-08-06.md diff --git a/website/src/content/docs/docs/release-notes/release-2025-09-09.md b/website/src/content/docs/release-notes/release-2025-09-09.md similarity index 100% rename from website/src/content/docs/docs/release-notes/release-2025-09-09.md rename to website/src/content/docs/release-notes/release-2025-09-09.md diff --git a/website/src/content/docs/docs/release-notes/release-2025-10-08.md b/website/src/content/docs/release-notes/release-2025-10-08.md similarity index 100% rename from website/src/content/docs/docs/release-notes/release-2025-10-08.md rename to website/src/content/docs/release-notes/release-2025-10-08.md diff --git a/website/src/content/docs/docs/release-notes/release-2025-11-11.md b/website/src/content/docs/release-notes/release-2025-11-11.md similarity index 100% rename from website/src/content/docs/docs/release-notes/release-2025-11-11.md rename to website/src/content/docs/release-notes/release-2025-11-11.md diff --git a/website/src/content/docs/docs/release-notes/release-2025-12-09.md b/website/src/content/docs/release-notes/release-2025-12-09.md similarity index 100% rename from website/src/content/docs/docs/release-notes/release-2025-12-09.md rename to website/src/content/docs/release-notes/release-2025-12-09.md diff --git a/website/src/content/docs/docs/release-notes/release-2026-01-13.md b/website/src/content/docs/release-notes/release-2026-01-13.md similarity index 100% rename from website/src/content/docs/docs/release-notes/release-2026-01-13.md rename to website/src/content/docs/release-notes/release-2026-01-13.md diff --git a/website/src/content/docs/docs/release-notes/release-2026-02-10.md b/website/src/content/docs/release-notes/release-2026-02-10.md similarity index 100% rename from website/src/content/docs/docs/release-notes/release-2026-02-10.md rename to website/src/content/docs/release-notes/release-2026-02-10.md diff --git a/website/src/content/docs/docs/release-notes/release-2026-03-10.md b/website/src/content/docs/release-notes/release-2026-03-10.md similarity index 100% rename from website/src/content/docs/docs/release-notes/release-2026-03-10.md rename to website/src/content/docs/release-notes/release-2026-03-10.md diff --git a/website/src/content/docs/docs/release-notes/signature-help.png b/website/src/content/docs/release-notes/signature-help.png similarity index 100% rename from website/src/content/docs/docs/release-notes/signature-help.png rename to website/src/content/docs/release-notes/signature-help.png diff --git a/website/src/content/release-notes-sidebar.ts b/website/src/content/release-notes-sidebar.ts new file mode 100644 index 00000000000..4cb263abe18 --- /dev/null +++ b/website/src/content/release-notes-sidebar.ts @@ -0,0 +1,12 @@ +import type { SidebarItem } from "@typespec/astro-utils/sidebar"; + +const sidebar: SidebarItem[] = [ + { + autogenerate: { + order: "desc", + directory: ".", + }, + }, +]; + +export default sidebar; diff --git a/website/src/pages/docs/[...slug].md.ts b/website/src/pages/docs/[...slug].md.ts index 13884a9b872..06a61b18c3b 100644 --- a/website/src/pages/docs/[...slug].md.ts +++ b/website/src/pages/docs/[...slug].md.ts @@ -8,7 +8,7 @@ export async function getStaticPaths() { return docs .filter((doc) => { // Exclude release notes - if (doc.id.includes("/release-notes/")) return false; + if (doc.id.startsWith("release-notes/")) return false; return true; }) .map((doc) => ({ From 8d4a5e4c33815bd4fcedd75b4ac61bdc58ee0ab5 Mon Sep 17 00:00:00 2001 From: Timothee Guerin Date: Thu, 19 Mar 2026 15:13:12 -0400 Subject: [PATCH 2/4] tweaks --- website/astro.config.mjs | 4 ++++ .../starlight-overrides/Sidebar.astro | 18 ++++++++---------- website/src/content/release-notes-sidebar.ts | 2 ++ 3 files changed, 14 insertions(+), 10 deletions(-) diff --git a/website/astro.config.mjs b/website/astro.config.mjs index cc92c70ac6b..817a84c2b9e 100644 --- a/website/astro.config.mjs +++ b/website/astro.config.mjs @@ -29,6 +29,10 @@ export default defineConfig({ "docs", current, )), + { + label: "🚀 Release Notes", + link: "/release-notes/", + }, ...(await processSidebar( resolve(import.meta.dirname, "src/content/docs"), "release-notes", diff --git a/website/src/components/starlight-overrides/Sidebar.astro b/website/src/components/starlight-overrides/Sidebar.astro index 2de3e9a6965..c314b35cb8d 100644 --- a/website/src/components/starlight-overrides/Sidebar.astro +++ b/website/src/components/starlight-overrides/Sidebar.astro @@ -8,20 +8,18 @@ const pathname = Astro.url.pathname; type SidebarEntry = (typeof sidebar)[number]; -function isReleaseNotesRoute(path: string): boolean { - return path.startsWith("/release-notes"); -} +const isReleaseNotes = pathname.startsWith("/release-notes"); -function hasReleaseNotesLink(entry: SidebarEntry): boolean { - if (entry.type === "link") { - return entry.href.startsWith("/release-notes"); - } - return entry.entries.some(hasReleaseNotesLink); +/** Returns true for sidebar groups that contain release notes entries. */ +function isReleaseNotesGroup(entry: SidebarEntry): boolean { + if (entry.type !== "group") return false; + return entry.entries.some( + (e) => e.type === "link" && e.href.startsWith("/release-notes/"), + ); } -const isReleaseNotes = isReleaseNotesRoute(pathname); const filtered = sidebar.filter((entry) => - isReleaseNotes ? hasReleaseNotesLink(entry) : !hasReleaseNotesLink(entry), + isReleaseNotes ? isReleaseNotesGroup(entry) : !isReleaseNotesGroup(entry), ); --- diff --git a/website/src/content/release-notes-sidebar.ts b/website/src/content/release-notes-sidebar.ts index 4cb263abe18..01c1b11052f 100644 --- a/website/src/content/release-notes-sidebar.ts +++ b/website/src/content/release-notes-sidebar.ts @@ -2,6 +2,8 @@ import type { SidebarItem } from "@typespec/astro-utils/sidebar"; const sidebar: SidebarItem[] = [ { + label: "🚀 Release Notes", + expanded: true, autogenerate: { order: "desc", directory: ".", From 336721bea4a1fdb185c7fb86f92b5635ff41efa9 Mon Sep 17 00:00:00 2001 From: Timothee Guerin Date: Thu, 19 Mar 2026 15:26:56 -0400 Subject: [PATCH 3/4] simplify --- website/astro.config.mjs | 10 ++++------ .../components/starlight-overrides/Sidebar.astro | 11 ++++++++--- website/src/content/release-notes-sidebar.ts | 14 -------------- 3 files changed, 12 insertions(+), 23 deletions(-) delete mode 100644 website/src/content/release-notes-sidebar.ts diff --git a/website/astro.config.mjs b/website/astro.config.mjs index 817a84c2b9e..499511cff9a 100644 --- a/website/astro.config.mjs +++ b/website/astro.config.mjs @@ -10,7 +10,6 @@ import { resolve } from "pathe"; import rehypeMermaid from "rehype-mermaid"; import remarkHeadingID from "remark-heading-id"; import current from "./src/content/current-sidebar"; -import releaseNotes from "./src/content/release-notes-sidebar"; const base = process.env.TYPESPEC_WEBSITE_BASE_PATH ?? "/"; @@ -33,11 +32,10 @@ export default defineConfig({ label: "🚀 Release Notes", link: "/release-notes/", }, - ...(await processSidebar( - resolve(import.meta.dirname, "src/content/docs"), - "release-notes", - releaseNotes, - )), + { + label: "🚀 Release Notes", + autogenerate: { directory: "release-notes" }, + }, ], favicon: "/img/favicon.svg", customCss: ["./src/css/custom.css"], diff --git a/website/src/components/starlight-overrides/Sidebar.astro b/website/src/components/starlight-overrides/Sidebar.astro index c314b35cb8d..b3d3ab2ab38 100644 --- a/website/src/components/starlight-overrides/Sidebar.astro +++ b/website/src/components/starlight-overrides/Sidebar.astro @@ -13,14 +13,19 @@ const isReleaseNotes = pathname.startsWith("/release-notes"); /** Returns true for sidebar groups that contain release notes entries. */ function isReleaseNotesGroup(entry: SidebarEntry): boolean { if (entry.type !== "group") return false; - return entry.entries.some( - (e) => e.type === "link" && e.href.startsWith("/release-notes/"), - ); + return entry.entries.some((e) => e.type === "link" && e.href.startsWith("/release-notes/")); } const filtered = sidebar.filter((entry) => isReleaseNotes ? isReleaseNotesGroup(entry) : !isReleaseNotesGroup(entry), ); + +// Reverse release notes entries so newest appear first. +for (const entry of filtered) { + if (entry.type === "group" && isReleaseNotesGroup(entry)) { + entry.entries.reverse(); + } +} --- diff --git a/website/src/content/release-notes-sidebar.ts b/website/src/content/release-notes-sidebar.ts deleted file mode 100644 index 01c1b11052f..00000000000 --- a/website/src/content/release-notes-sidebar.ts +++ /dev/null @@ -1,14 +0,0 @@ -import type { SidebarItem } from "@typespec/astro-utils/sidebar"; - -const sidebar: SidebarItem[] = [ - { - label: "🚀 Release Notes", - expanded: true, - autogenerate: { - order: "desc", - directory: ".", - }, - }, -]; - -export default sidebar; From 1f9b5170b14fd6e505b1e9a0ed2c09c51d64f10f Mon Sep 17 00:00:00 2001 From: Timothee Guerin Date: Fri, 20 Mar 2026 08:25:43 -0400 Subject: [PATCH 4/4] format --- website/src/components/release-notes-list.astro | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) diff --git a/website/src/components/release-notes-list.astro b/website/src/components/release-notes-list.astro index a9e0f0a5589..929c5214523 100644 --- a/website/src/components/release-notes-list.astro +++ b/website/src/components/release-notes-list.astro @@ -2,8 +2,9 @@ import { getCollection } from "astro:content"; import Link from "@typespec/astro-utils/components/link.astro"; -const releaseNotes = await getCollection("docs", (x) => - x.id.startsWith("release-notes/") && x.id !== "release-notes", +const releaseNotes = await getCollection( + "docs", + (x) => x.id.startsWith("release-notes/") && x.id !== "release-notes", ); releaseNotes.sort((a, b) => b.id.localeCompare(a.id)); ---