From 335780f2ed38c0f60e2e393a0a96623fcac0fc43 Mon Sep 17 00:00:00 2001 From: Hayden Bleasel Date: Fri, 5 Dec 2025 08:31:31 -0800 Subject: [PATCH 01/17] Run update script + manual fixes --- .../{ => [lang]}/docs/[[...slug]]/page.tsx | 50 +- docs/app/[lang]/docs/layout.tsx | 10 + docs/app/[lang]/layout.tsx | 18 + .../llms.mdx/[[...slug]]/route.ts | 16 +- docs/app/[lang]/llms.txt/route.ts | 15 + docs/app/[lang]/og/[...slug]/background.png | Bin 0 -> 20702 bytes .../og/[...slug]/geist-sans-regular.ttf | Bin 0 -> 103636 bytes .../og/[...slug]/geist-sans-semibold.ttf | Bin 0 -> 105492 bytes docs/app/[lang]/og/[...slug]/route.tsx | 95 + docs/app/{ => [lang]}/rss.xml/route.ts | 17 +- docs/app/actions/feedback/emotions.ts | 10 +- docs/app/actions/feedback/index.ts | 146 +- docs/app/api/chat/route.ts | 5 +- docs/app/api/chat/tools.ts | 67 +- docs/app/api/chat/utils.ts | 9 +- docs/app/api/search/route.ts | 52 +- docs/app/docs/layout.tsx | 7 - docs/app/global.css | 157 - docs/app/layout.tsx | 53 +- docs/app/llms.txt/route.ts | 10 - docs/app/styles/geistdocs.css | 123 +- docs/components/geistdocs/chat.tsx | 32 +- docs/components/geistdocs/desktop-menu.tsx | 36 +- docs/components/geistdocs/docs-layout.tsx | 29 +- docs/components/geistdocs/docs-page.tsx | 60 +- docs/components/geistdocs/edit-source.tsx | 8 +- docs/components/geistdocs/feedback.tsx | 85 +- docs/components/geistdocs/footer.tsx | 28 + docs/components/geistdocs/github-button.tsx | 8 +- docs/components/geistdocs/home-layout.tsx | 21 +- docs/components/geistdocs/installer.tsx | 5 +- .../geistdocs/language-selector.tsx | 43 + docs/components/geistdocs/mdx-components.tsx | 14 +- .../components/geistdocs/message-metadata.tsx | 3 +- docs/components/geistdocs/mobile-menu.tsx | 11 +- docs/components/geistdocs/navbar.tsx | 44 +- docs/components/geistdocs/provider.tsx | 6 +- docs/components/geistdocs/search.tsx | 47 +- docs/components/geistdocs/sidebar.tsx | 189 +- docs/components/geistdocs/toc.tsx | 36 - docs/components/geistdocs/video.tsx | 2 +- docs/geistdocs.tsx | 61 + docs/hooks/geistdocs/use-chat.ts | 6 +- docs/hooks/geistdocs/use-sidebar.ts | 13 + docs/lib/geistdocs/i18n.ts | 13 + docs/lib/geistdocs/source.ts | 4 +- docs/lib/utils.ts | 2 +- docs/next.config.ts | 15 +- docs/package.json | 57 +- docs/proxy.ts | 35 +- docs/source.config.ts | 2 + docs/tsconfig.json | 10 +- pnpm-lock.yaml | 3130 +++++++---------- 53 files changed, 2282 insertions(+), 2633 deletions(-) rename docs/app/{ => [lang]}/docs/[[...slug]]/page.tsx (67%) create mode 100644 docs/app/[lang]/docs/layout.tsx create mode 100644 docs/app/[lang]/layout.tsx rename docs/app/{ => [lang]}/llms.mdx/[[...slug]]/route.ts (51%) create mode 100644 docs/app/[lang]/llms.txt/route.ts create mode 100644 docs/app/[lang]/og/[...slug]/background.png create mode 100644 docs/app/[lang]/og/[...slug]/geist-sans-regular.ttf create mode 100644 docs/app/[lang]/og/[...slug]/geist-sans-semibold.ttf create mode 100644 docs/app/[lang]/og/[...slug]/route.tsx rename docs/app/{ => [lang]}/rss.xml/route.ts (72%) delete mode 100644 docs/app/docs/layout.tsx delete mode 100644 docs/app/llms.txt/route.ts create mode 100644 docs/components/geistdocs/footer.tsx create mode 100644 docs/components/geistdocs/language-selector.tsx delete mode 100644 docs/components/geistdocs/toc.tsx create mode 100644 docs/geistdocs.tsx create mode 100644 docs/hooks/geistdocs/use-sidebar.ts create mode 100644 docs/lib/geistdocs/i18n.ts diff --git a/docs/app/docs/[[...slug]]/page.tsx b/docs/app/[lang]/docs/[[...slug]]/page.tsx similarity index 67% rename from docs/app/docs/[[...slug]]/page.tsx rename to docs/app/[lang]/docs/[[...slug]]/page.tsx index 6da6efc31..6bb5a9598 100644 --- a/docs/app/docs/[[...slug]]/page.tsx +++ b/docs/app/[lang]/docs/[[...slug]]/page.tsx @@ -1,6 +1,7 @@ import { Step, Steps } from 'fumadocs-ui/components/steps'; import { Tab, Tabs } from 'fumadocs-ui/components/tabs'; import { createRelativeLink } from 'fumadocs-ui/mdx'; +import type { Metadata } from 'next'; import { notFound } from 'next/navigation'; import { AgentTraces } from '@/components/custom/agent-traces'; import { AskAI } from '@/components/geistdocs/ask-ai'; @@ -10,25 +11,21 @@ import { DocsDescription, DocsPage, DocsTitle, - generatePageMetadata, - generateStaticPageParams, } from '@/components/geistdocs/docs-page'; import { EditSource } from '@/components/geistdocs/edit-source'; import { Feedback } from '@/components/geistdocs/feedback'; import { getMDXComponents } from '@/components/geistdocs/mdx-components'; import { OpenInChat } from '@/components/geistdocs/open-in-chat'; import { ScrollTop } from '@/components/geistdocs/scroll-top'; -import { TableOfContents } from '@/components/geistdocs/toc'; import * as AccordionComponents from '@/components/ui/accordion'; import { Badge } from '@/components/ui/badge'; - -import { getLLMText, source } from '@/lib/geistdocs/source'; +import { Separator } from '@/components/ui/separator'; +import { getLLMText, getPageImage, source } from '@/lib/geistdocs/source'; import { TSDoc } from '@/lib/tsdoc'; -const Page = async (props: PageProps<'/docs/[[...slug]]'>) => { - const params = await props.params; - - const page = source.getPage(params.slug); +const Page = async ({ params }: PageProps<'/[lang]/docs/[[...slug]]'>) => { + const { slug, lang } = await params; + const page = source.getPage(slug, lang); if (!page) { notFound(); @@ -39,17 +36,19 @@ const Page = async (props: PageProps<'/docs/[[...slug]]'>) => { return ( + style: 'clerk', + footer: ( +
+ - +
), }} toc={page.data.toc} @@ -77,14 +76,27 @@ const Page = async (props: PageProps<'/docs/[[...slug]]'>) => { ); }; -export const generateStaticParams = generateStaticPageParams; +export const generateStaticParams = () => source.generateParams(); + +export const generateMetadata = async ({ + params, +}: PageProps<'/[lang]/docs/[[...slug]]'>) => { + const { slug, lang } = await params; + const page = source.getPage(slug, lang); + + if (!page) { + notFound(); + } -export const generateMetadata = async ( - props: PageProps<'/docs/[[...slug]]'> -) => { - const params = await props.params; + const metadata: Metadata = { + title: page.data.title, + description: page.data.description, + openGraph: { + images: getPageImage(page).url, + }, + }; - return generatePageMetadata(params.slug); + return metadata; }; export default Page; diff --git a/docs/app/[lang]/docs/layout.tsx b/docs/app/[lang]/docs/layout.tsx new file mode 100644 index 000000000..583e85092 --- /dev/null +++ b/docs/app/[lang]/docs/layout.tsx @@ -0,0 +1,10 @@ +import { DocsLayout } from '@/components/geistdocs/docs-layout'; +import { source } from '@/lib/geistdocs/source'; + +const Layout = async ({ children, params }: LayoutProps<'/[lang]/docs'>) => { + const { lang } = await params; + + return {children}; +}; + +export default Layout; diff --git a/docs/app/[lang]/layout.tsx b/docs/app/[lang]/layout.tsx new file mode 100644 index 000000000..41540a32d --- /dev/null +++ b/docs/app/[lang]/layout.tsx @@ -0,0 +1,18 @@ +import '../global.css'; +import { Footer } from '@/components/geistdocs/footer'; +import { Navbar } from '@/components/geistdocs/navbar'; +import { GeistdocsProvider } from '@/components/geistdocs/provider'; + +const Layout = async ({ children, params }: LayoutProps<'/[lang]'>) => { + const { lang } = await params; + + return ( + + + {children} +