Lynx 网站作为一个“迷你子站点”(例如 Lynx、ReactLynx、Rspeedy)的集合运行,这些子站点都位于同一个仓库中。这种架构允许每个子站点拥有自己的身份(Logo、主页、侧边栏),同时共享公共文档和基础设施。
子站点的中心配置位于 shared-route-config.ts。此文件作为单一事实来源:
SubsiteConfig每个子站点由 SubsiteConfig 对象定义:
要添加新子站点(例如 my-framework):
docs/en/my-framework/(和 docs/zh/my-framework/)。shared-route-config.ts 的 SUBSITES_CONFIG 中添加新条目。
docs/en/my-framework/_meta.json 以定义其特定的侧边栏结构。为了避免在多个子站点之间重复内容(如“快速上手”指南),我们使用共享文档系统。
docs/en/guide/start/。rspress.config.ts 中的 sharedSidebarPlugin 动态地为其他子站点创建虚拟页面(例如 react/start/quick-start),指向相同的内容。BeforeSidebar 组件(在 theme/BeforeSidebar.tsx 中)自动将共享的“开始”部分注入每个子站点的侧边栏。要修改哪些文件被共享,请更新 shared-route-config.ts 中的 SHARED_DOC_TITLES。
子站点导航和身份由自定义主题组件处理:
SubsiteSelect (theme/BeforeSidebar.tsx):侧边栏顶部的下拉菜单允许用户在子站点之间切换。SubsiteLogo (theme/subsite-ui.tsx):渲染当前子站点和主题模式的正确 Logo。这些组件直接从 SUBSITES_CONFIG 读取,因此其中的任何更改都会立即反映在 UI 中。