Something went wrong. Try again.
Monorepo for Tangled tangled.org
Something went wrong. Try again.
TypeScript
1234567891011121314151617181920212223import { defineRouteMiddleware } from "@astrojs/starlight/route-data";import type { StarlightRouteData } from "@astrojs/starlight/route-data";
// starlight always seeds the table of contents with a link back to the page// title, so `toc` is truthy even on pages with no headings and the "on this// page" overview renders empty. drop it in that case.const PAGE_TITLE_ID = "_top";
type TocItem = NonNullable<StarlightRouteData["toc"]>["items"][number];
function hasSections(items: TocItem[]): boolean { return items.some( (item) => item.slug !== PAGE_TITLE_ID || hasSections(item.children), );}
export const onRequest = defineRouteMiddleware((context) => { const route = context.locals.starlightRoute; if (route.toc && !hasSections(route.toc.items)) { route.toc = undefined; }});