Update all docs

This commit is contained in:
2025-11-06 19:29:57 -08:00
parent ce7abf0984
commit 2cdac3a600
7 changed files with 80 additions and 83 deletions
+19
View File
@@ -337,6 +337,25 @@ paper-watch: check-latex check-entr ## Watch and rebuild paper on changes
@echo "👀 Watching for paper changes..."
@find paper -name "*.tex" -o -name "*.bib" | entr -s 'make paper'
# === DOCUMENTATION TARGETS ===
# Build documentation site
docs: ## Build documentation site
@echo "📚 Building documentation..."
@cd docs && pnpm install && pnpm build
@echo "✅ Documentation built in docs/out/"
# Run documentation dev server
docs-dev: ## Run documentation dev server
@echo "📚 Starting documentation dev server..."
@cd docs && pnpm dev
# Clean documentation build artifacts
docs-clean: ## Clean documentation build artifacts
@echo "🧹 Cleaning documentation..."
@cd docs && rm -rf .next out node_modules
@echo "✅ Documentation cleaned"
# === UTILITY TARGETS ===
# Run params tool
+11 -21
View File
@@ -1,31 +1,23 @@
import { loader, getAllDocParams } from '@/collections';
import { source } from '@/collections';
import { DocsPage, DocsBody } from 'fumadocs-ui/page';
import { notFound } from 'next/navigation';
import defaultMdxComponents from 'fumadocs-ui/mdx';
// Force static generation
export const dynamic = 'force-static';
export const revalidate = false;
export const dynamicParams = false;
// Skip SSG entirely - use SSR to avoid build-time bundling issues
export const dynamic = 'force-dynamic';
export function generateStaticParams() {
// Non-async keeps Next from pulling in extra server graph
return getAllDocParams();
}
export default async function Page({
params,
}: {
export default async function Page(props: {
params: Promise<{ slug?: string[] }>;
}) {
const { slug } = await params;
const page = loader.getPage(slug);
const params = await props.params;
const page = source.getPage(params.slug);
if (!page) {
notFound();
}
const MDX = page.data.body;
// With async mode, load the MDX component dynamically
const MDX = await page.data.load();
return (
<DocsPage
@@ -43,13 +35,11 @@ export default async function Page({
);
}
export async function generateMetadata({
params,
}: {
export async function generateMetadata(props: {
params: Promise<{ slug?: string[] }>;
}) {
const { slug } = await params;
const page = loader.getPage(slug);
const params = await props.params;
const page = source.getPage(params.slug);
if (!page) {
return {};
+4 -12
View File
@@ -1,18 +1,10 @@
// Server-only collections loader
// IMPORTANT: this file must NOT be imported by any app/* files
import 'server-only';
import { docs } from '@/.source';
import { loader as createLoader } from 'fumadocs-core/source';
import { loader } from 'fumadocs-core/source';
import type { InferPageType } from 'fumadocs-core/source';
// Create loader with proper configuration
export const loader = createLoader({
export const source = loader({
baseUrl: '/docs',
source: docs,
});
// Precompute all slugs for SSG
export const getAllDocParams = () => {
return loader.getPages().map((page) => ({
slug: page.slugs,
}));
};
export type Page = InferPageType<typeof source>;
-14
View File
@@ -2,21 +2,7 @@ import { createMDX } from "fumadocs-mdx/next"
/** @type {import('next').NextConfig} */
const config = {
// Static export for GitHub Pages / S3 / Cloudflare
output: "export",
// Use trailing slashes for static hosts
trailingSlash: true,
// Required for static export
images: {
unoptimized: true,
},
basePath: process.env.NEXT_PUBLIC_BASE_PATH || "",
reactStrictMode: true,
swcMinify: true,
typescript: {
ignoreBuildErrors: true,
},
+5 -5
View File
@@ -4,16 +4,16 @@
"private": true,
"scripts": {
"dev": "next dev --port 3001",
"build": "fumadocs-mdx && next build",
"export": "next build",
"build": "fumadocs-mdx && TURBOPACK=0 next build",
"export": "TURBOPACK=0 next build",
"start": "next start",
"lint": "next lint",
"postinstall": "fumadocs-mdx"
},
"dependencies": {
"fumadocs-core": "^15.8.3",
"fumadocs-mdx": "^12.0.2",
"fumadocs-ui": "^15.8.3",
"fumadocs-core": "^16.0.7",
"fumadocs-mdx": "^13.0.5",
"fumadocs-ui": "^16.0.7",
"lucide-react": "^0.468.0",
"next": "16.0.1",
"react": "^19.0.0",
+40 -31
View File
@@ -9,14 +9,14 @@ importers:
.:
dependencies:
fumadocs-core:
specifier: ^15.8.3
version: 15.8.3(@types/[email protected])([email protected]([email protected]))([email protected]([email protected]([email protected]))([email protected]))([email protected]([email protected]))([email protected])
specifier: ^16.0.7
version: 16.0.7(@types/[email protected])([email protected]([email protected]))([email protected]([email protected]([email protected]))([email protected]))([email protected]([email protected]))([email protected])
fumadocs-mdx:
specifier: ^12.0.2
version: 12.0.2(fumadocs-core@15.8.3(@types/[email protected])([email protected]([email protected]))([email protected]([email protected]([email protected]))([email protected]))([email protected]([email protected]))([email protected]))([email protected]([email protected]([email protected]))([email protected]))([email protected])
specifier: ^13.0.5
version: 13.0.5(fumadocs-core@16.0.7(@types/[email protected])([email protected]([email protected]))([email protected]([email protected]([email protected]))([email protected]))([email protected]([email protected]))([email protected]))([email protected]([email protected]([email protected]))([email protected]))([email protected])
fumadocs-ui:
specifier: ^15.8.3
version: 15.8.3(@types/[email protected](@types/[email protected]))(@types/[email protected])([email protected]([email protected]))([email protected]([email protected]([email protected]))([email protected]))([email protected]([email protected]))([email protected])([email protected])
specifier: ^16.0.7
version: 16.0.7(@types/[email protected](@types/[email protected]))(@types/[email protected])([email protected]([email protected]))([email protected]([email protected]([email protected]))([email protected]))([email protected]([email protected]))([email protected])([email protected])
lucide-react:
specifier: ^0.468.0
version: 0.468.0([email protected])
@@ -1190,24 +1190,24 @@ packages:
[email protected]:
resolution: {integrity: sha512-ZsDfxO51wGAXREY55a7la9LScWpwv9RxIrYABrlvOFBlH/ShPnrtsXeuUIfXKKOVicNxQ+o8JTbJvjS4M89yew==}
fumadocs-core@15.8.3:
resolution: {integrity: sha512-33ZqR7PYbBRhMsVfe5/PAc+Kq+QX+r4UiIVDmQNltf50vVDsl8rhA5jy+4ZJSt2iBhJJNZDyocfXiPGNO+tS3g==}
fumadocs-core@16.0.7:
resolution: {integrity: sha512-kCkhwquhoy10SW3lqTpBD0XR0V1cMruBQdMN+/BrpQZfYFEGvd+QxLCXa/hUC4tnePUAXgMxMThZT1Ze1Nb+pg==}
peerDependencies:
'@mixedbread/sdk': ^0.19.0
'@oramacloud/client': 1.x.x || 2.x.x
'@orama/core': 1.x.x
'@tanstack/react-router': 1.x.x
'@types/react': '*'
algoliasearch: 5.x.x
lucide-react: '*'
next: 14.x.x || 15.x.x
react: 18.x.x || 19.x.x
react-dom: 18.x.x || 19.x.x
next: 16.x.x
react: ^19.2.0
react-dom: ^19.2.0
react-router: 7.x.x
waku: ^0.26.0
peerDependenciesMeta:
'@mixedbread/sdk':
optional: true
'@oramacloud/client':
'@orama/core':
optional: true
'@tanstack/react-router':
optional: true
@@ -1228,13 +1228,13 @@ packages:
waku:
optional: true
fumadocs-mdx@12.0.2:
resolution: {integrity: sha512-Lf85+p2HuyBEGYFsh4l57P8BTHU6/VOO5Cq7zVo7l7GIbPN5x3GDOFPX/D+h/4kIRny8Dml8SCy0yerAqi3Ebw==}
fumadocs-mdx@13.0.5:
resolution: {integrity: sha512-ERhPxQzoTwEdtuel5dN5OmUItOhGGXTLR1uCjiGPABYeVkc57vAexyTRQSYZMxGlcfjkJaYqt3qY1p5j7i4g7A==}
hasBin: true
peerDependencies:
'@fumadocs/mdx-remote': ^1.4.0
fumadocs-core: ^14.0.0 || ^15.0.0
next: ^15.3.0
fumadocs-core: ^15.0.0 || ^16.0.0
next: ^15.3.0 || ^16.0.0
react: '*'
vite: 6.x.x || 7.x.x
peerDependenciesMeta:
@@ -1247,14 +1247,14 @@ packages:
vite:
optional: true
fumadocs-ui@15.8.3:
resolution: {integrity: sha512-KJcbOSu28shZ330R+F+Zgvbl5ehZlA+heB171x2eZJpy0JY9ihJGi9fXk5IIbcwaz4okKM/YPOY3K7THvRO1Kw==}
fumadocs-ui@16.0.7:
resolution: {integrity: sha512-SUEm3ThdTPZofSx/Yfc7BkS5EWkz3W/yvPhBBxEALxDKf9On4MC0uunDlkM5/WeHF5rzWw+bj5nliQ/QKcsfNw==}
peerDependencies:
'@types/react': '*'
next: 14.x.x || 15.x.x
react: 18.x.x || 19.x.x
react-dom: 18.x.x || 19.x.x
tailwindcss: ^3.4.14 || ^4.0.0
next: 16.x.x
react: ^19.2.0
react-dom: ^19.2.0
tailwindcss: ^4.0.0
peerDependenciesMeta:
'@types/react':
optional: true
@@ -1888,6 +1888,9 @@ packages:
[email protected]:
resolution: {integrity: sha512-fucsC7HjXvkB5R3kTCO7kUjRdrS0BJt3M/FPxmHMBOm8JQi2BsHAHFsy27E0EolP8rp0NzXsJ+jNPyDWvOJZPA==}
[email protected]:
resolution: {integrity: sha512-Hp5Kh3wLxv0PHj9m2yZhhLt58KzPtEYKQQ4yxfYFEO7EvHwzyDYnduhHnY1mDxoqr7VUwVuHXk9RXKIiYS1N8Q==}
[email protected]:
resolution: {integrity: sha512-0ASV06AAoKCDkS2+xw5RXJywruurpbC4JZSm7nr7MOt1ojAzvyyaO+UxZf18j8FCF6kmzCZKcAgN/yu2gm2XgQ==}
@@ -2971,12 +2974,13 @@ snapshots:
[email protected]: {}
fumadocs-core@15.8.3(@types/[email protected])([email protected]([email protected]))([email protected]([email protected]([email protected]))([email protected]))([email protected]([email protected]))([email protected]):
fumadocs-core@16.0.7(@types/[email protected])([email protected]([email protected]))([email protected]([email protected]([email protected]))([email protected]))([email protected]([email protected]))([email protected]):
dependencies:
'@formatjs/intl-localematcher': 0.6.2
'@orama/orama': 3.1.16
'@shikijs/rehype': 3.15.0
'@shikijs/transformers': 3.15.0
estree-util-value-to-estree: 3.5.0
github-slugger: 2.0.0
hast-util-to-estree: 3.1.3
hast-util-to-jsx-runtime: 2.3.6
@@ -2984,7 +2988,6 @@ snapshots:
negotiator: 1.0.0
npm-to-yarn: 3.0.1
path-to-regexp: 8.3.0
react-remove-scroll: 2.7.1(@types/[email protected])([email protected])
remark: 15.0.1
remark-gfm: 4.0.1
remark-rehype: 11.1.2
@@ -3000,23 +3003,24 @@ snapshots:
transitivePeerDependencies:
- supports-color
fumadocs-mdx@12.0.2(fumadocs-core@15.8.3(@types/[email protected])([email protected]([email protected]))([email protected]([email protected]([email protected]))([email protected]))([email protected]([email protected]))([email protected]))([email protected]([email protected]([email protected]))([email protected]))([email protected]):
fumadocs-mdx@13.0.5(fumadocs-core@16.0.7(@types/[email protected])([email protected]([email protected]))([email protected]([email protected]([email protected]))([email protected]))([email protected]([email protected]))([email protected]))([email protected]([email protected]([email protected]))([email protected]))([email protected]):
dependencies:
'@mdx-js/mdx': 3.1.1
'@standard-schema/spec': 1.0.0
chokidar: 4.0.3
esbuild: 0.25.12
estree-util-value-to-estree: 3.5.0
fumadocs-core: 15.8.3(@types/[email protected])([email protected]([email protected]))([email protected]([email protected]([email protected]))([email protected]))([email protected]([email protected]))([email protected])
fumadocs-core: 16.0.7(@types/[email protected])([email protected]([email protected]))([email protected]([email protected]([email protected]))([email protected]))([email protected]([email protected]))([email protected])
js-yaml: 4.1.0
lru-cache: 11.2.2
mdast-util-to-markdown: 2.1.2
picocolors: 1.1.1
picomatch: 4.0.3
remark-mdx: 3.1.1
remark-parse: 11.0.0
tinyexec: 1.0.2
tinyglobby: 0.2.15
unified: 11.0.5
unist-util-remove-position: 5.0.0
unist-util-visit: 5.0.0
zod: 4.1.12
optionalDependencies:
@@ -3025,7 +3029,7 @@ snapshots:
transitivePeerDependencies:
- supports-color
fumadocs-ui@15.8.3(@types/[email protected](@types/[email protected]))(@types/[email protected])([email protected]([email protected]))([email protected]([email protected]([email protected]))([email protected]))([email protected]([email protected]))([email protected])([email protected]):
fumadocs-ui@16.0.7(@types/[email protected](@types/[email protected]))(@types/[email protected])([email protected]([email protected]))([email protected]([email protected]([email protected]))([email protected]))([email protected]([email protected]))([email protected])([email protected]):
dependencies:
'@radix-ui/react-accordion': 1.2.12(@types/[email protected](@types/[email protected]))(@types/[email protected])([email protected]([email protected]))([email protected])
'@radix-ui/react-collapsible': 1.1.12(@types/[email protected](@types/[email protected]))(@types/[email protected])([email protected]([email protected]))([email protected])
@@ -3038,7 +3042,7 @@ snapshots:
'@radix-ui/react-slot': 1.2.4(@types/[email protected])([email protected])
'@radix-ui/react-tabs': 1.1.13(@types/[email protected](@types/[email protected]))(@types/[email protected])([email protected]([email protected]))([email protected])
class-variance-authority: 0.7.1
fumadocs-core: 15.8.3(@types/[email protected])([email protected]([email protected]))([email protected]([email protected]([email protected]))([email protected]))([email protected]([email protected]))([email protected])
fumadocs-core: 16.0.7(@types/[email protected])([email protected]([email protected]))([email protected]([email protected]([email protected]))([email protected]))([email protected]([email protected]))([email protected])
lodash.merge: 4.6.2
next-themes: 0.4.6([email protected]([email protected]))([email protected])
postcss-selector-parser: 7.1.0
@@ -3053,7 +3057,7 @@ snapshots:
tailwindcss: 4.1.17
transitivePeerDependencies:
- '@mixedbread/sdk'
- '@oramacloud/client'
- '@orama/core'
- '@tanstack/react-router'
- '@types/react-dom'
- algoliasearch
@@ -4074,6 +4078,11 @@ snapshots:
dependencies:
'@types/unist': 3.0.3
[email protected]:
dependencies:
'@types/unist': 3.0.3
unist-util-visit: 5.0.0
[email protected]:
dependencies:
'@types/unist': 3.0.3
+1
View File
@@ -24,4 +24,5 @@ export default defineConfig({
export const docs = defineDocs({
dir: "content/docs",
docs: { async: true }, // Enable async mode to avoid bundling MDX at build
})