Merge upstream fumadocs dev (16.6.17) with @hanzo/docs namespace rename

Merge 131 upstream commits from fuma-nama/fumadocs dev branch, bringing
framework packages to v16.6.17. All fumadocs-* and @fumadocs/* package
references renamed to @hanzo/docs-* namespace.

Upstream additions:
- packages/content/ (@hanzo/docs-content) - Fuma Content adapter
- packages/epub/ (@hanzo/docs-epub) - EPUB export support
- MarkdownCopyButton, ViewOptionsPopover in docs page layout
- Flexsearch, Orama search integration
- Shiki v4 upgrade
- Various UI framework improvements

Hanzo customizations preserved:
- apps/docs/content/ (all Hanzo service/project docs)
- apps/docs/app/ (Hanzo homepage, AI chat, subdomain routing)
- apps/docs/components/ (AI search, error boundaries, auth)
- apps/docs/lib/ (source config, OpenAPI, metadata)
- Webpack alias layer for upstream project doc imports
- MdxErrorBoundary wrapper for graceful MDX failures
This commit is contained in:
2026-03-16 14:34:53 -07:00
784 changed files with 26639 additions and 22847 deletions
@@ -1,8 +1,8 @@
import { source } from '@/lib/source';
import { DocsPage, DocsBody, DocsDescription, DocsTitle } from '@hanzo/docs-base-ui/layouts/docs/page';
import { DocsPage, DocsBody, DocsDescription, DocsTitle } from '@hanzo/docs-ui/layouts/docs/page';
import { notFound } from 'next/navigation';
import { createRelativeLink } from '@hanzo/docs/ui/mdx';
import { getMDXComponents } from '@/mdx-components';
import { createRelativeLink } from '@hanzo/docs-ui/mdx';
import { getMDXComponents } from '@/components/mdx';
export default async function Page(props: { params: Promise<{ slug?: string[] }> }) {
const params = await props.params;
@@ -2,11 +2,10 @@ import defaultMdxComponents from '@hanzo/docs/ui/mdx';
import type { MDXComponents } from 'mdx/types';
import * as Python from '@hanzo/docs/python/components';
// use this function to get MDX components, you will need it for rendering MDX
export function getMDXComponents(components?: MDXComponents): MDXComponents {
export function getMDXComponents(components?: MDXComponents) {
return {
...defaultMdxComponents,
...Python,
...components,
};
} satisfies MDXComponents;
}
+4 -4
View File
@@ -1,9 +1,9 @@
import { docs } from '@hanzo/docs/mdx:collections/server';
import { loader } from '@hanzo/docs/core/source';
import { docs } from 'collections/server';
import { loader } from '@hanzo/docs-core/source';
// See https://hanzoai.github.io/docs/docs/headless/source-api for more info
// See https://fumadocs.dev/docs/headless/source-api for more info
export const source = loader({
// it assigns a URL to your pages
baseUrl: '/docs',
source: docs.toHanzo DocsSource(),
source: docs.toFumadocsSource(),
});
+6 -6
View File
@@ -6,7 +6,7 @@
"build": "pnpm build:docs && next build",
"dev": "next dev",
"start": "next start",
"build:docs": "node ./scripts/generate-docs.mjs",
"build:docs": "pnpm python:generate && node ./scripts/generate-docs.mjs",
"python:generate": "pip3 install ./node_modules/@hanzo/docs-python && fumapy-generate httpx",
"types:check": "@hanzo/docs-mdx && tsc --noEmit"
},
@@ -14,19 +14,19 @@
"@hanzo/docs-core": "workspace:*",
"@hanzo/docs-mdx": "workspace:*",
"@hanzo/docs-python": "workspace:*",
"@hanzo/docs-base-ui": "workspace:*",
"@hanzo/docs-ui": "workspace:*",
"next": "16.1.6",
"react": "^19.2.4",
"react-dom": "^19.2.4"
},
"devDependencies": {
"@tailwindcss/postcss": "^4.1.18",
"@tailwindcss/postcss": "^4.2.1",
"@types/mdx": "^2.0.13",
"@types/node": "25.2.3",
"@types/node": "25.5.0",
"@types/react": "^19.2.14",
"@types/react-dom": "^19.2.3",
"postcss": "^8.5.6",
"tailwindcss": "^4.1.18",
"postcss": "^8.5.8",
"tailwindcss": "^4.2.1",
"typescript": "^5.9.3"
}
}
+9 -3
View File
@@ -13,10 +13,10 @@
"moduleResolution": "bundler",
"resolveJsonModule": true,
"isolatedModules": true,
"jsx": "preserve",
"jsx": "react-jsx",
"incremental": true,
"paths": {
"@hanzo/docs/mdx:collections/*": ["docs/*"],
"collections/*": [".source/*"],
"@/*": ["./*"]
},
"plugins": [
@@ -25,6 +25,12 @@
}
]
},
"include": ["next-env.d.ts", "**/*.ts", "**/*.tsx", ".next/types/**/*.ts"],
"include": [
"next-env.d.ts",
"**/*.ts",
"**/*.tsx",
".next/types/**/*.ts",
".next/dev/types/**/*.ts"
],
"exclude": ["node_modules"]
}