返回 CodeWhale
sitemap.ts
根目录 / web / app / sitemap.ts
1 import type { MetadataRoute } from "next";
2 import { contentLocalesForPath } from "@/lib/i18n/content-locales";
3 import { SITE_URL } from "@/lib/page-meta";
4 import { readCatalogue } from "@/lib/ratatui/catalogue";
5
6 // Public, indexable routes (locale-prefixed). /admin and /api are
7 // intentionally excluded; see app/robots.ts.
8 const PATHS = ["", "/product", "/install", "/constitution", "/models", "/plugins", "/runtime", "/docs", "/docs/auth", "/docs/computers", "/docs/configuration", "/docs/guide", "/docs/hooks", "/docs/mcp", "/docs/modes", "/docs/review", "/docs/fleet", "/docs/runtime-api", "/docs/sandbox", "/docs/subagents", "/docs/tools", "/docs/troubleshooting", "/docs/trust", "/docs/vocabulary", "/docs/web", "/docs/work", "/faq", "/roadmap", "/feed", "/digest", "/changelog", "/contribute", "/community", "/signin", "/signup", "/legal/terms", "/legal/privacy"];
9
10 export default function sitemap(): MetadataRoute.Sitemap {
11 const catalogue = readCatalogue();
12 const componentPaths = catalogue.entries.map((entry) => `/ratatui/${encodeURIComponent(entry.name)}`);
13 return [...PATHS, "/computer-use", "/ratatui", ...componentPaths].flatMap((path) =>
14 contentLocalesForPath(path || "/").map((locale) => ({
15 url: `${SITE_URL}/${locale}${path}`,
16 alternates: {
17 languages: Object.fromEntries(
18 contentLocalesForPath(path || "/").map((l) => [
19 l,
20 `${SITE_URL}/${l}${path}`,
21 ]),
22 ),
23 },
24 })),
25 );
26 }
27
27 lines TYPESCRIPT