diff --git a/docs/app/(home)/layout.tsx b/docs/app/(home)/layout.tsx deleted file mode 100644 index 7b5133bf1..000000000 --- a/docs/app/(home)/layout.tsx +++ /dev/null @@ -1,9 +0,0 @@ -import { HomeLayout } from '@/components/geistdocs/home-layout'; - -const Layout = ({ children }: LayoutProps<'/'>) => ( - -
{children}
-
-); - -export default Layout; diff --git a/docs/app/(home)/components/code-block.tsx b/docs/app/[lang]/(home)/components/code-block.tsx similarity index 100% rename from docs/app/(home)/components/code-block.tsx rename to docs/app/[lang]/(home)/components/code-block.tsx diff --git a/docs/app/(home)/components/cta.tsx b/docs/app/[lang]/(home)/components/cta.tsx similarity index 85% rename from docs/app/(home)/components/cta.tsx rename to docs/app/[lang]/(home)/components/cta.tsx index be6a414ca..4275bad89 100644 --- a/docs/app/(home)/components/cta.tsx +++ b/docs/app/[lang]/(home)/components/cta.tsx @@ -6,7 +6,7 @@ export const CTA = () => (

Create your first workflow today.

- diff --git a/docs/app/(home)/components/features.tsx b/docs/app/[lang]/(home)/components/features.tsx similarity index 100% rename from docs/app/(home)/components/features.tsx rename to docs/app/[lang]/(home)/components/features.tsx diff --git a/docs/app/(home)/components/frameworks.tsx b/docs/app/[lang]/(home)/components/frameworks.tsx similarity index 100% rename from docs/app/(home)/components/frameworks.tsx rename to docs/app/[lang]/(home)/components/frameworks.tsx diff --git a/docs/app/(home)/components/hero.tsx b/docs/app/[lang]/(home)/components/hero.tsx similarity index 100% rename from docs/app/(home)/components/hero.tsx rename to docs/app/[lang]/(home)/components/hero.tsx diff --git a/docs/app/(home)/components/implementation.tsx b/docs/app/[lang]/(home)/components/implementation.tsx similarity index 96% rename from docs/app/(home)/components/implementation.tsx rename to docs/app/[lang]/(home)/components/implementation.tsx index 04047b254..eb665bfce 100644 --- a/docs/app/(home)/components/implementation.tsx +++ b/docs/app/[lang]/(home)/components/implementation.tsx @@ -1,4 +1,4 @@ -import { CodeBlock } from '@/app/(home)/components/code-block'; +import { CodeBlock } from '@/app/[lang]/(home)/components/code-block'; const data = [ { diff --git a/docs/app/(home)/components/intro/intro-tabs.tsx b/docs/app/[lang]/(home)/components/intro/intro-tabs.tsx similarity index 100% rename from docs/app/(home)/components/intro/intro-tabs.tsx rename to docs/app/[lang]/(home)/components/intro/intro-tabs.tsx diff --git a/docs/app/(home)/components/intro/intro.tsx b/docs/app/[lang]/(home)/components/intro/intro.tsx similarity index 98% rename from docs/app/(home)/components/intro/intro.tsx rename to docs/app/[lang]/(home)/components/intro/intro.tsx index b89414a3a..7291bde09 100644 --- a/docs/app/(home)/components/intro/intro.tsx +++ b/docs/app/[lang]/(home)/components/intro/intro.tsx @@ -1,4 +1,4 @@ -import { CodeBlock } from '@/app/(home)/components/code-block'; +import { CodeBlock } from '@/app/[lang]/(home)/components/code-block'; import { IntroTabs } from './intro-tabs'; import { NonWorkflowExample } from './non-workflow'; import { WorkflowExample } from './workflow'; diff --git a/docs/app/(home)/components/intro/non-workflow.tsx b/docs/app/[lang]/(home)/components/intro/non-workflow.tsx similarity index 100% rename from docs/app/(home)/components/intro/non-workflow.tsx rename to docs/app/[lang]/(home)/components/intro/non-workflow.tsx diff --git a/docs/app/(home)/components/intro/workflow-logs.tsx b/docs/app/[lang]/(home)/components/intro/workflow-logs.tsx similarity index 100% rename from docs/app/(home)/components/intro/workflow-logs.tsx rename to docs/app/[lang]/(home)/components/intro/workflow-logs.tsx diff --git a/docs/app/(home)/components/intro/workflow.tsx b/docs/app/[lang]/(home)/components/intro/workflow.tsx similarity index 100% rename from docs/app/(home)/components/intro/workflow.tsx rename to docs/app/[lang]/(home)/components/intro/workflow.tsx diff --git a/docs/app/(home)/components/observability.tsx b/docs/app/[lang]/(home)/components/observability.tsx similarity index 100% rename from docs/app/(home)/components/observability.tsx rename to docs/app/[lang]/(home)/components/observability.tsx diff --git a/docs/app/(home)/components/run-anywhere.tsx b/docs/app/[lang]/(home)/components/run-anywhere.tsx similarity index 99% rename from docs/app/(home)/components/run-anywhere.tsx rename to docs/app/[lang]/(home)/components/run-anywhere.tsx index fb4083c1f..d57363118 100644 --- a/docs/app/(home)/components/run-anywhere.tsx +++ b/docs/app/[lang]/(home)/components/run-anywhere.tsx @@ -1,5 +1,5 @@ import type { ComponentProps } from 'react'; -import { CodeBlock } from '@/app/(home)/components/code-block'; +import { CodeBlock } from '@/app/[lang]/(home)/components/code-block'; import { cn } from '@/lib/utils'; const DigitalOcean = (props: ComponentProps<'svg'>) => ( diff --git a/docs/app/(home)/components/templates/flight.png b/docs/app/[lang]/(home)/components/templates/flight.png similarity index 100% rename from docs/app/(home)/components/templates/flight.png rename to docs/app/[lang]/(home)/components/templates/flight.png diff --git a/docs/app/(home)/components/templates/index.tsx b/docs/app/[lang]/(home)/components/templates/index.tsx similarity index 100% rename from docs/app/(home)/components/templates/index.tsx rename to docs/app/[lang]/(home)/components/templates/index.tsx diff --git a/docs/app/(home)/components/templates/storytime.png b/docs/app/[lang]/(home)/components/templates/storytime.png similarity index 100% rename from docs/app/(home)/components/templates/storytime.png rename to docs/app/[lang]/(home)/components/templates/storytime.png diff --git a/docs/app/(home)/components/templates/vectr.png b/docs/app/[lang]/(home)/components/templates/vectr.png similarity index 100% rename from docs/app/(home)/components/templates/vectr.png rename to docs/app/[lang]/(home)/components/templates/vectr.png diff --git a/docs/app/(home)/components/use-cases-client.tsx b/docs/app/[lang]/(home)/components/use-cases-client.tsx similarity index 100% rename from docs/app/(home)/components/use-cases-client.tsx rename to docs/app/[lang]/(home)/components/use-cases-client.tsx diff --git a/docs/app/(home)/components/use-cases-server.tsx b/docs/app/[lang]/(home)/components/use-cases-server.tsx similarity index 98% rename from docs/app/(home)/components/use-cases-server.tsx rename to docs/app/[lang]/(home)/components/use-cases-server.tsx index eaaf0d41f..168991190 100644 --- a/docs/app/(home)/components/use-cases-server.tsx +++ b/docs/app/[lang]/(home)/components/use-cases-server.tsx @@ -1,4 +1,4 @@ -import { CodeBlock } from '@/app/(home)/components/code-block'; +import { CodeBlock } from '@/app/[lang]/(home)/components/code-block'; import { UseCasesClient } from './use-cases-client'; const useCases = [ diff --git a/docs/app/[lang]/(home)/layout.tsx b/docs/app/[lang]/(home)/layout.tsx new file mode 100644 index 000000000..3600925c2 --- /dev/null +++ b/docs/app/[lang]/(home)/layout.tsx @@ -0,0 +1,14 @@ +import { HomeLayout } from '@/components/geistdocs/home-layout'; +import { source } from '@/lib/geistdocs/source'; + +const Layout = async ({ children, params }: LayoutProps<'/[lang]'>) => { + const { lang } = await params; + + return ( + +
{children}
+
+ ); +}; + +export default Layout; diff --git a/docs/app/(home)/page.tsx b/docs/app/[lang]/(home)/page.tsx similarity index 100% rename from docs/app/(home)/page.tsx rename to docs/app/[lang]/(home)/page.tsx diff --git a/docs/app/docs/[[...slug]]/page.tsx b/docs/app/[lang]/docs/[[...slug]]/page.tsx similarity index 71% rename from docs/app/docs/[[...slug]]/page.tsx rename to docs/app/[lang]/docs/[[...slug]]/page.tsx index 6da6efc31..d3947eaa0 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 { Separator } from '@/components/ui/separator'; import { getLLMText, 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,24 @@ 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, + }; - 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..4f93ded46 --- /dev/null +++ b/docs/app/[lang]/layout.tsx @@ -0,0 +1,29 @@ +import '../global.css'; +import { Footer } from '@/components/geistdocs/footer'; +import { Navbar } from '@/components/geistdocs/navbar'; +import { GeistdocsProvider } from '@/components/geistdocs/provider'; +import { basePath } from '@/geistdocs'; +import { mono, sans } from '@/lib/geistdocs/fonts'; +import { cn } from '@/lib/utils'; + +const Layout = async ({ children, params }: LayoutProps<'/[lang]'>) => { + const { lang } = await params; + + return ( + + + + + {children} +