From b835d3af6702349046ac6b8406de64e148b830c0 Mon Sep 17 00:00:00 2001 From: GeWuYou <95328647+GeWuYou@users.noreply.github.com> Date: Wed, 11 Feb 2026 11:08:33 +0800 Subject: [PATCH] =?UTF-8?q?docs(site):=20=E5=AE=9E=E7=8E=B0=E5=A4=9A?= =?UTF-8?q?=E8=AF=AD=E8=A8=80=E6=94=AF=E6=8C=81=E5=B9=B6=E9=87=8D=E6=9E=84?= =?UTF-8?q?=E6=96=87=E6=A1=A3=E7=AB=99=E7=82=B9=E9=85=8D=E7=BD=AE?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit - 添加简体中文本地化配置和导航链接 - 配置本地搜索功能并设置中文翻译 - 添加 Catch-all 404 重定向中间件 - 重构侧边栏和导航结构以支持国际化 - 移除旧的英文文档内容并更新配置 - 添加页脚导航和面包屑文字本地化 --- docs/.vitepress/cache/deps/_metadata.json | 12 +- docs/.vitepress/config.mts | 325 ++++++++++++------ docs/404.md | 133 +++++++ docs/index.md | 76 ++-- docs/{ => zh-CN}/api-reference/core-api.md | 0 docs/{ => zh-CN}/api-reference/game-api.md | 0 docs/{ => zh-CN}/api-reference/godot-api.md | 0 .../api-reference/source-generators-api.md | 0 .../best-practices/architecture-patterns.md | 0 docs/{ => zh-CN}/core/architecture.md | 0 docs/{ => zh-CN}/core/command.md | 0 docs/{ => zh-CN}/core/controller.md | 0 docs/{ => zh-CN}/core/environment.md | 0 docs/{ => zh-CN}/core/events.md | 0 docs/{ => zh-CN}/core/extensions.md | 0 docs/{ => zh-CN}/core/ioc.md | 0 docs/{ => zh-CN}/core/logging.md | 0 docs/{ => zh-CN}/core/model.md | 0 docs/{ => zh-CN}/core/overview.md | 0 docs/{ => zh-CN}/core/pool.md | 0 docs/{ => zh-CN}/core/property.md | 0 docs/{ => zh-CN}/core/query.md | 0 docs/{ => zh-CN}/core/rule.md | 0 docs/{ => zh-CN}/core/system.md | 0 docs/{ => zh-CN}/core/utility.md | 0 docs/{ => zh-CN}/game/overview.md | 0 docs/{ => zh-CN}/game/setting.md | 0 .../getting-started/architecture-overview.md | 0 .../getting-started/installation.md | 0 .../getting-started/quick-start.md | 0 docs/{ => zh-CN}/godot/extensions.md | 0 docs/{ => zh-CN}/godot/overview.md | 0 docs/{ => zh-CN}/godot/setting.md | 0 docs/{ => zh-CN}/godot/signal.md | 0 docs/{ => zh-CN}/godot/storage.md | 0 docs/zh-CN/index.md | 38 ++ .../{ => zh-CN}/source-generators/overview.md | 0 .../tutorials/advanced-patterns.md | 0 docs/{ => zh-CN}/tutorials/basic-tutorial.md | 0 docs/{ => zh-CN}/tutorials/getting-started.md | 0 .../tutorials/godot-integration.md | 0 41 files changed, 443 insertions(+), 141 deletions(-) create mode 100644 docs/404.md rename docs/{ => zh-CN}/api-reference/core-api.md (100%) rename docs/{ => zh-CN}/api-reference/game-api.md (100%) rename docs/{ => zh-CN}/api-reference/godot-api.md (100%) rename docs/{ => zh-CN}/api-reference/source-generators-api.md (100%) rename docs/{ => zh-CN}/best-practices/architecture-patterns.md (100%) rename docs/{ => zh-CN}/core/architecture.md (100%) rename docs/{ => zh-CN}/core/command.md (100%) rename docs/{ => zh-CN}/core/controller.md (100%) rename docs/{ => zh-CN}/core/environment.md (100%) rename docs/{ => zh-CN}/core/events.md (100%) rename docs/{ => zh-CN}/core/extensions.md (100%) rename docs/{ => zh-CN}/core/ioc.md (100%) rename docs/{ => zh-CN}/core/logging.md (100%) rename docs/{ => zh-CN}/core/model.md (100%) rename docs/{ => zh-CN}/core/overview.md (100%) rename docs/{ => zh-CN}/core/pool.md (100%) rename docs/{ => zh-CN}/core/property.md (100%) rename docs/{ => zh-CN}/core/query.md (100%) rename docs/{ => zh-CN}/core/rule.md (100%) rename docs/{ => zh-CN}/core/system.md (100%) rename docs/{ => zh-CN}/core/utility.md (100%) rename docs/{ => zh-CN}/game/overview.md (100%) rename docs/{ => zh-CN}/game/setting.md (100%) rename docs/{ => zh-CN}/getting-started/architecture-overview.md (100%) rename docs/{ => zh-CN}/getting-started/installation.md (100%) rename docs/{ => zh-CN}/getting-started/quick-start.md (100%) rename docs/{ => zh-CN}/godot/extensions.md (100%) rename docs/{ => zh-CN}/godot/overview.md (100%) rename docs/{ => zh-CN}/godot/setting.md (100%) rename docs/{ => zh-CN}/godot/signal.md (100%) rename docs/{ => zh-CN}/godot/storage.md (100%) create mode 100644 docs/zh-CN/index.md rename docs/{ => zh-CN}/source-generators/overview.md (100%) rename docs/{ => zh-CN}/tutorials/advanced-patterns.md (100%) rename docs/{ => zh-CN}/tutorials/basic-tutorial.md (100%) rename docs/{ => zh-CN}/tutorials/getting-started.md (100%) rename docs/{ => zh-CN}/tutorials/godot-integration.md (100%) diff --git a/docs/.vitepress/cache/deps/_metadata.json b/docs/.vitepress/cache/deps/_metadata.json index e5d9b15..4b1af75 100644 --- a/docs/.vitepress/cache/deps/_metadata.json +++ b/docs/.vitepress/cache/deps/_metadata.json @@ -1,25 +1,25 @@ { - "hash": "74ecdc37", - "configHash": "1c302118", + "hash": "f04df328", + "configHash": "15e8eca7", "lockfileHash": "42b6a898", - "browserHash": "b3e735e5", + "browserHash": "342224e2", "optimized": { "vue": { "src": "../../../node_modules/vue/dist/vue.runtime.esm-bundler.js", "file": "vue.js", - "fileHash": "74f911f6", + "fileHash": "c87f1bc4", "needsInterop": false }, "vitepress > @vue/devtools-api": { "src": "../../../node_modules/@vue/devtools-api/dist/index.js", "file": "vitepress___@vue_devtools-api.js", - "fileHash": "673694b5", + "fileHash": "4ddc9988", "needsInterop": false }, "vitepress > @vueuse/core": { "src": "../../../node_modules/@vueuse/core/dist/index.js", "file": "vitepress___@vueuse_core.js", - "fileHash": "6334babc", + "fileHash": "3d4a475e", "needsInterop": false } }, diff --git a/docs/.vitepress/config.mts b/docs/.vitepress/config.mts index 757c3f3..a93efd4 100644 --- a/docs/.vitepress/config.mts +++ b/docs/.vitepress/config.mts @@ -1,113 +1,240 @@ import { defineConfig } from 'vitepress' -// https://vitepress.dev/reference/site-config export default defineConfig({ title: "GFramework", description: "面向游戏开发场景的模块化 C# 框架", base: "/GFramework/", - themeConfig: { - logo: '/logo-icon.png', - // https://vitepress.dev/reference/default-theme-config - nav: [ - { text: '首页', link: '/' }, - { text: '入门指南', link: '/getting-started/installation' }, - { text: 'Core', link: '/core/overview' }, - { text: 'Game', link: '/game/overview' }, - { text: 'Godot', link: '/godot/overview' }, - { text: '源码生成器', link: '/source-generators/overview' }, - { text: '教程', link: '/tutorials/basic-tutorial' }, - { text: 'API参考', link: '/api-reference/core-api' } - ], + vite: { + plugins: [ + { + name: 'catch-all-404', + configureServer(server) { + return () => { + server.middlewares.use((req, res, next) => { + const url = req.url || '' - sidebar: { - '/getting-started/': [ - { - text: '入门指南', - items: [ - { text: '安装配置', link: '/getting-started/installation' }, - { text: '快速开始', link: '/getting-started/quick-start' }, - { text: '架构概览', link: '/getting-started/architecture-overview' } - ] + // 排除这些路径 + const excludePaths = [ + '/@vite', + '/@fs', + '/node_modules', + '/__vite', + '/public' + ] + + // 如果是资源文件或特殊路径,跳过 + if (excludePaths.some(path => url.startsWith(path)) || + url.includes('.') || + url.startsWith('/GFramework/')) { + return next() + } + + // 其他路径重定向到 404 + res.writeHead(302, { Location: '/GFramework/404' }) + res.end() + }) + } } - ], - '/core/': [ - { - text: 'Core 核心框架', - items: [ - { text: '概览', link: '/core/overview' }, - { text: '架构组件', link: '/core/architecture/architecture' }, - { text: '命令查询系统', link: '/core/command-query/commands' }, - { text: '事件系统', link: '/core/events/event-bus' }, - { text: '属性系统', link: '/core/property/bindable-property' }, - { text: '工具类', link: '/core/utilities/ioc-container' } + } + ], + server: { + strictPort: false, + // 添加中间件处理不带斜杠的情况 + proxy: {} + } + }, + locales: { + root: { + label: '简体中文', + lang: 'zh-CN', + link: '/zh-CN/', + themeConfig: { + logo: '/logo-icon.png', + + search: { + provider: 'local', + options: { + translations: { + button: { + buttonText: '搜索文档', + buttonAriaLabel: '搜索文档' + }, + modal: { + noResultsText: '无法找到相关结果', + resetButtonTitle: '清除查询条件', + footer: { + selectText: '选择', + navigateText: '切换', + closeText: '关闭' + } + } + } + } + }, + + nav: [ + { text: '首页', link: '/zh-CN/' }, + { text: '入门指南', link: '/zh-CN/getting-started/installation' }, + { text: 'Core', link: '/zh-CN/core/overview' }, + { text: 'Game', link: '/zh-CN/game/overview' }, + { text: 'Godot', link: '/zh-CN/godot/overview' }, + { text: '源码生成器', link: '/zh-CN/source-generators/overview' }, + { text: '教程', link: '/zh-CN/tutorials/basic-tutorial' }, + { text: 'API参考', link: '/zh-CN/api-reference/core-api' } + ], + + sidebar: { + '/zh-CN/getting-started/': [ + { + text: '入门指南', + items: [ + { text: '安装配置', link: '/zh-CN/getting-started/installation' }, + { text: '快速开始', link: '/zh-CN/getting-started/quick-start' }, + { text: '架构概览', link: '/zh-CN/getting-started/architecture-overview' } + ] + } + ], + '/zh-CN/core/': [ + { + text: 'Core 核心框架', + items: [ + { text: '概览', link: '/zh-CN/core/overview' }, + { text: '架构组件', link: '/zh-CN/core/architecture/architecture' }, + { text: '命令查询系统', link: '/zh-CN/core/command-query/commands' }, + { text: '事件系统', link: '/zh-CN/core/events/event-bus' }, + { text: '属性系统', link: '/zh-CN/core/property/bindable-property' }, + { text: '工具类', link: '/zh-CN/core/utilities/ioc-container' } + ] + } + ], + '/zh-CN/game/': [ + { + text: 'Game 游戏模块', + items: [ + { text: '概览', link: '/zh-CN/game/overview' }, + { text: '模块系统', link: '/zh-CN/game/modules/architecture-modules' }, + { text: '存储系统', link: '/zh-CN/game/storage/scoped-storage' }, + { text: '资源管理', link: '/zh-CN/game/assets/asset-catalog' }, + { text: '序列化', link: '/zh-CN/game/serialization/json-serializer' } + ] + } + ], + '/zh-CN/godot/': [ + { + text: 'Godot 集成', + items: [ + { text: '概览', link: '/zh-CN/godot/overview' }, + { text: '集成指南', link: '/zh-CN/godot/integration/architecture-integration' }, + { text: '节点扩展', link: '/zh-CN/godot/node-extensions/node-extensions' }, + { text: '对象池', link: '/zh-CN/godot/pooling/node-pool' }, + { text: '日志系统', link: '/zh-CN/godot/logging/godot-logger' } + ] + } + ], + '/zh-CN/source-generators/': [ + { + text: '源码生成器', + items: [ + { text: '概览', link: '/zh-CN/source-generators/overview' }, + { text: '日志生成器', link: '/zh-CN/source-generators/logging-generator' }, + { text: '枚举扩展', link: '/zh-CN/source-generators/enum-extensions' }, + { text: '规则生成器', link: '/zh-CN/source-generators/rule-generator' } + ] + } + ], + '/zh-CN/tutorials/': [ + { + text: '教程', + items: [ + { text: '基础教程', link: '/zh-CN/tutorials/basic-tutorial' }, + { text: '高级模式', link: '/zh-CN/tutorials/advanced-patterns' }, + { text: '最佳实践', link: '/zh-CN/tutorials/best-practices' } + ] + } + ], + '/zh-CN/api-reference/': [ + { + text: 'API 参考', + items: [ + { text: 'Core API', link: '/zh-CN/api-reference/core-api' }, + { text: 'Game API', link: '/zh-CN/api-reference/game-api' }, + { text: 'Godot API', link: '/zh-CN/api-reference/godot-api' }, + { text: '生成器 API', link: '/zh-CN/api-reference/generators-api' } + ] + } ] + }, + + socialLinks: [ + { icon: 'github', link: 'https://github.com/GeWuYou/GFramework' } + ], + + footer: { + message: '基于 Apache 2.0 许可证发布', + copyright: 'Copyright © 2026 GeWuYou' + }, + + outlineTitle: '页面导航', + lastUpdatedText: '最后更新于', + darkModeSwitchLabel: '主题', + sidebarMenuLabel: '菜单', + returnToTopLabel: '回到顶部', + + docFooter: { + prev: '上一页', + next: '下一页' } - ], - '/game/': [ - { - text: 'Game 游戏模块', - items: [ - { text: '概览', link: '/game/overview' }, - { text: '模块系统', link: '/game/modules/architecture-modules' }, - { text: '存储系统', link: '/game/storage/scoped-storage' }, - { text: '资源管理', link: '/game/assets/asset-catalog' }, - { text: '序列化', link: '/game/serialization/json-serializer' } - ] - } - ], - '/godot/': [ - { - text: 'Godot 集成', - items: [ - { text: '概览', link: '/godot/overview' }, - { text: '集成指南', link: '/godot/integration/architecture-integration' }, - { text: '节点扩展', link: '/godot/node-extensions/node-extensions' }, - { text: '对象池', link: '/godot/pooling/node-pool' }, - { text: '日志系统', link: '/godot/logging/godot-logger' } - ] - } - ], - '/source-generators/': [ - { - text: '源码生成器', - items: [ - { text: '概览', link: '/source-generators/overview' }, - { text: '日志生成器', link: '/source-generators/logging-generator' }, - { text: '枚举扩展', link: '/source-generators/enum-extensions' }, - { text: '规则生成器', link: '/source-generators/rule-generator' } - ] - } - ], - '/tutorials/': [ - { - text: '教程', - items: [ - { text: '基础教程', link: '/tutorials/basic-tutorial' }, - { text: '高级模式', link: '/tutorials/advanced-patterns' }, - { text: '最佳实践', link: '/tutorials/best-practices' } - ] - } - ], - '/api-reference/': [ - { - text: 'API 参考', - items: [ - { text: 'Core API', link: '/api-reference/core-api' }, - { text: 'Game API', link: '/api-reference/game-api' }, - { text: 'Godot API', link: '/api-reference/godot-api' }, - { text: '生成器 API', link: '/api-reference/generators-api' } - ] - } - ] + } }, - socialLinks: [ - { icon: 'github', link: 'https://github.com/GeWuYou/GFramework' } - ], - - footer: { - message: '基于 Apache 2.0 许可证发布', - copyright: 'Copyright © 2026 GeWuYou' + // 未来添加英文版本时取消注释 + /* + en: { + label: 'English', + lang: 'en-US', + link: '/en/', + themeConfig: { + logo: '/logo-icon.png', + + search: { + provider: 'local' + }, + + nav: [ + { text: 'Home', link: '/en/' }, + { text: 'Getting Started', link: '/en/getting-started/installation' }, + { text: 'Core', link: '/en/core/overview' }, + { text: 'Game', link: '/en/game/overview' }, + { text: 'Godot', link: '/en/godot/overview' }, + { text: 'Source Generators', link: '/en/source-generators/overview' }, + { text: 'Tutorials', link: '/en/tutorials/basic-tutorial' }, + { text: 'API Reference', link: '/en/api-reference/core-api' } + ], + + sidebar: { + '/en/getting-started/': [ + { + text: 'Getting Started', + items: [ + { text: 'Installation', link: '/en/getting-started/installation' }, + { text: 'Quick Start', link: '/en/getting-started/quick-start' }, + { text: 'Architecture Overview', link: '/en/getting-started/architecture-overview' } + ] + } + ], + // ... 其他英文侧边栏配置 + }, + + socialLinks: [ + { icon: 'github', link: 'https://github.com/GeWuYou/GFramework' } + ], + + footer: { + message: 'Released under the Apache 2.0 License', + copyright: 'Copyright © 2026 GeWuYou' + } + } } + */ } -}) +}) \ No newline at end of file diff --git a/docs/404.md b/docs/404.md new file mode 100644 index 0000000..bfca57e --- /dev/null +++ b/docs/404.md @@ -0,0 +1,133 @@ +--- +layout: page +--- + + + + + +
+ Auto redirecting in {{ countdown }} seconds
+ {{ countdown }} 秒后自动跳转
+