diff --git a/README.md b/README.md index b7d8ad6..69b69e3 100644 --- a/README.md +++ b/README.md @@ -1,57 +1,52 @@ # mainPage · 作品集主页 -Zikai 的作品集主页 -- Vue 3 模块化多项目展示站。浅色极简、中英双语(英文按需懒加载)。 -每个项目页签是一个独立「模块」,由注册表自动生成页签与路由 -- 新增/删除页签只增删一个文件夹,互不影响。 +Zikai 的作品集主页 -- Vue 3 模块化多项目展示站。浅色极简、中英双语(英文按需懒加载)。每个项目页签是一个独立「模块」,由注册表自动生成页签与路由 -- 新增/删除页签只增删一个文件夹,互不影响。 > 架构细节、新增页签指南、子项目管理见 [`docs/`](./docs/)。 ---- - ## 项目结构 ``` mainPage/ ├── index.html -├── package.json # 含 ical.js(timeTableFix 依赖)、vue-i18n(z449 嵌入时共享) +├── package.json # 含 ical.js / vue-i18n(子模块嵌入时共享) ├── vite.config.js # 构建输出到 /root/html(emptyOutDir=false,不清空既有文件) -├── .gitmodules # git submodule:third_party/timeTableFix +├── .gitmodules # git submodule:timeTableFix / z449 ├── README.md ├── docs/ # 架构 / 新增页签 / 子模块管理文档 ├── public/favicon.svg ├── third_party/ -│ ├── timeTableFix/ # ★ git submodule:ICS 日程整理器,独立仓库 -│ └── z449/ # ★ git submodule:移动游戏项目展示页,独立仓库 +│ ├── timeTableFix/ # ★ git submodule:ICS 日程整理器 +│ └── z449/ # ★ git submodule:移动游戏项目展示页 └── src/ ├── main.js # 应用入口(挂载 i18n / router / 全局样式) ├── App.vue # 根布局:顶栏 + 标签导航 + + 页脚 - ├── config/ - │ └── app.config.js # 集中配置:外部服务 URL(白板地址 / 存活探针等) + ├── config/app.config.js # 集中配置:外部服务 URL(白板地址 / 存活探针等) ├── i18n/ # 国际化(中文同步注入;英文动态 import() 懒加载) ├── router/index.js # 路由表由模块注册表自动生成 ├── modules/ # ★ 扩展点:每个页签一个文件夹 │ ├── index.js # 注册表(import.meta.glob 约定式收集,带容错) - │ ├── mobile-game/ # 移动游戏项目页签 + │ ├── mobile-game/ # 移动游戏项目页签(包装 z449 子模块) │ ├── whiteboard/ # 共享记事本页签(iframe 嵌入 + 存活校验) - │ ├── timetable/ # 日程整理页签(构建期 import 子模块 App.vue) + │ ├── timetable/ # 日程整理页签(包装 timeTableFix 子模块) │ └── calendar/ # 隐藏页(仅手动访问 /cqy) ├── components/ # 共享组件(TabNav / LanguageSwitcher / ui 基元含 PageShell) ├── composables/ # useProjects / useLiveness / useI18nLazy / useLocale └── styles/ # variables.css(主题令牌)+ base.css ``` -## 依赖的基础设施 +## 外部依赖 | 项 | 要求 | |---|---| -| Node.js | ≥ 18(开发于 18.19 + npm 9.2) | -| Web 服务器 | Apache 2.4(启用 `mod_rewrite`),对外静态服务 `/root/html` | -| SPA 回退 | history 模式需站点根 `.htaccess` 回退到 `index.html`(见下) | +| Node.js | ≥ 18 | +| Web 服务器 | Apache 2.4(启用 `mod_rewrite`),对外静态服务构建产物 | +| SPA 回退 | history 模式需站点根 `.htaccess` 回退到 `index.html` | +| 共享记事本 | iframe 嵌入外部服务 `https://f.zikai.wang`(URL 在 `src/config/app.config.js` 配置) | -> 共享记事本页签 iframe 嵌入外部服务(`https://f.zikai.wang/wb/share`),URL 在 `src/config/app.config.js` 配置。 -> 日程整理页签(timeTableFix)经 git submodule 构建期集成(非 iframe),详见 [`docs/submodule-timeTableFix.md`](./docs/submodule-timeTableFix.md)。 -> 移动游戏项目页签(z449)同样经 git submodule 构建期集成,子模块自带独立 i18n,经 `:locale` prop 同步父项目语言,详见 [`docs/submodule-z449.md`](./docs/submodule-z449.md)。 +> 子模块(timeTableFix / z449)为构建期组件集成(非 iframe),共享 mainPage 的构建与 KeepAlive 缓存。 -## Ubuntu 从 0 安装 +## 如何使用 ```bash # 1. 安装 Node.js 18 @@ -63,8 +58,9 @@ git clone --recursive https://git.zikai.wang/zikai/zMainPage.git mainPage cd mainPage # 若已 clone 但未带子模块:git submodule update --init --recursive npm install -# 子模块 z449 需各自安装依赖(构建期编译其 .vue) +# 子模块需各自安装依赖(构建期编译其 .vue) (cd third_party/z449 && npm install) +(cd third_party/timeTableFix && npm install) # 3. 构建(产物输出到 /root/html,不清空既有文件) npm run build diff --git a/third_party/timeTableFix b/third_party/timeTableFix index 960657a..78d7afe 160000 --- a/third_party/timeTableFix +++ b/third_party/timeTableFix @@ -1 +1 @@ -Subproject commit 960657a251b1f19fa81447b9140257eb9a8506be +Subproject commit 78d7afe6999a94e2b5f9bcaab270197e6f928258