feat(docs): add Fumadocs site workspace

This commit is contained in:
Luca Martial 2026-05-11 01:08:31 -07:00
parent cb9ab25456
commit 572d515db0
28 changed files with 3979 additions and 84 deletions

View file

@ -0,0 +1,7 @@
import { HomeLayout } from "fumadocs-ui/layouts/home";
import type { ReactNode } from "react";
import { baseOptions } from "@/app/layout.config";
export default function Layout({ children }: { children: ReactNode }) {
return <HomeLayout {...baseOptions}>{children}</HomeLayout>;
}

5
docs/app/(home)/page.tsx Normal file
View file

@ -0,0 +1,5 @@
import { redirect } from "next/navigation";
export default function HomePage() {
redirect("/docs/getting-started/introduction");
}

12
docs/app/docs/layout.tsx Normal file
View file

@ -0,0 +1,12 @@
import { source } from "@/lib/source";
import { DocsLayout } from "fumadocs-ui/layouts/docs";
import type { ReactNode } from "react";
import { baseOptions } from "@/app/layout.config";
export default function Layout({ children }: { children: ReactNode }) {
return (
<DocsLayout tree={source.pageTree} {...baseOptions}>
{children}
</DocsLayout>
);
}

View file

@ -0,0 +1,10 @@
import type { BaseLayoutProps } from "fumadocs-ui/layouts/shared";
import { Logo } from "@/components/logo";
export const baseOptions: BaseLayoutProps = {
nav: {
title: <Logo />,
transparentMode: "top",
},
githubUrl: "https://github.com/kaelio/ktx",
};

44
docs/app/layout.tsx Normal file
View file

@ -0,0 +1,44 @@
import "./global.css";
import { RootProvider } from "fumadocs-ui/provider";
import { Outfit, Inter, Geist_Mono } from "next/font/google";
import type { ReactNode } from "react";
import type { Metadata } from "next";
const outfit = Outfit({
variable: "--font-outfit",
subsets: ["latin"],
weight: ["400", "500", "600", "700", "800"],
});
const inter = Inter({
variable: "--font-inter",
subsets: ["latin"],
});
const geistMono = Geist_Mono({
variable: "--font-geist-mono",
subsets: ["latin"],
});
export const metadata: Metadata = {
title: {
template: "%s | KTX Docs",
default: "KTX Docs",
},
description:
"Open-source context infrastructure that makes agentic analytics reliable.",
};
export default function RootLayout({ children }: { children: ReactNode }) {
return (
<html
lang="en"
className={`${outfit.variable} ${inter.variable} ${geistMono.variable}`}
suppressHydrationWarning
>
<body>
<RootProvider>{children}</RootProvider>
</body>
</html>
);
}