aboutsummaryrefslogtreecommitdiffstatshomepage
path: root/packages/docs/app/lib
diff options
context:
space:
mode:
Diffstat (limited to 'packages/docs/app/lib')
-rw-r--r--packages/docs/app/lib/i18n.ts8
-rw-r--r--packages/docs/app/lib/layout.shared.tsx24
-rw-r--r--packages/docs/app/lib/source.ts12
3 files changed, 44 insertions, 0 deletions
diff --git a/packages/docs/app/lib/i18n.ts b/packages/docs/app/lib/i18n.ts
new file mode 100644
index 0000000..a9f18b1
--- /dev/null
+++ b/packages/docs/app/lib/i18n.ts
@@ -0,0 +1,8 @@
+import { defineI18n } from 'fumadocs-core/i18n';
+
+export const i18n = defineI18n({
+ defaultLanguage: 'zh',
+ languages: ['zh', 'en'],
+ hideLocale: 'default-locale',
+ parser: 'dir', // 使用目录结构 (content/zh/*, content/en/*)
+});
diff --git a/packages/docs/app/lib/layout.shared.tsx b/packages/docs/app/lib/layout.shared.tsx
new file mode 100644
index 0000000..6e90ba0
--- /dev/null
+++ b/packages/docs/app/lib/layout.shared.tsx
@@ -0,0 +1,24 @@
+import type { BaseLayoutProps } from 'fumadocs-ui/layouts/shared';
+import { i18n } from './i18n';
+
+export function baseOptions(locale: string): BaseLayoutProps {
+ // 默认语言(zh)不显示前缀,其他语言显示前缀
+ const isDefaultLocale = locale === i18n.defaultLanguage;
+ const localePrefix = isDefaultLocale ? '' : `/${locale}`;
+
+ return {
+ i18n,
+ nav: {
+ title: 'DropOut',
+ url: localePrefix || '/',
+ },
+ githubUrl: 'https://github.com/HydroRoll-Team/DropOut',
+ links: [
+ {
+ type: 'main',
+ text: locale === 'zh' ? '文档' : 'Documentation',
+ url: `${localePrefix}/docs`,
+ },
+ ],
+ };
+}
diff --git a/packages/docs/app/lib/source.ts b/packages/docs/app/lib/source.ts
new file mode 100644
index 0000000..bce9bf9
--- /dev/null
+++ b/packages/docs/app/lib/source.ts
@@ -0,0 +1,12 @@
+import { loader } from 'fumadocs-core/source';
+import { docs } from 'fumadocs-mdx:collections/server';
+import { i18n } from './i18n';
+
+export const source = loader({
+ source: docs.toFumadocsSource(),
+ baseUrl: '/docs',
+ i18n,
+ // hideLocale: 'default-locale' 会自动生成正确的 URL:
+ // - 默认语言 (zh): /docs/getting-started
+ // - 其他语言 (en): /en/docs/getting-started
+});