feat: 页面模板差异化改进 + 配置优化 + 兼容清理 (#29)

- 首页判定:navigation 第一项
- 模板:page/projects/articles/bookmarks/search-results
- bookmarks:update: YYYY-MM-DD | from: git|mtime
- articles:RSS 聚合只读条目 + 分类聚合 + 影子写回结构
- projects:repo 卡片 + 可选热力图 + 自动抓取元信息
- 工作流:构建前 sync + schedule 定时刷新
- 移除兼容:config.yml/config.yaml、navigation.yml、home 特例
- 迁移说明:config/update-instructions.md
This commit is contained in:
rbetree
2025-12-28 00:22:54 +08:00
committed by GitHub
parent 1475a8a0d3
commit 387cd2492e
35 changed files with 2927 additions and 851 deletions

View File

@@ -159,7 +159,7 @@ icons:
**1. 模块化配置**
- 支持将配置拆分为多个文件,便于管理和维护
- 引入配置目录结构,分离页面配置
- 保持向后兼容性,同时支持传统配置文件
- 配置统一采用模块化目录结构(`config/user/` / `config/_default/`
### 2025/05/01
@@ -236,6 +236,7 @@ cd menav
# 安装依赖
npm install
```
(本仓库的 GitHub Actions/CI 已改为使用 `npm ci`,以获得更稳定、可复现的依赖安装(基于 `package-lock.json`);本地开发可继续使用 `npm install`,也可直接使用 `npm ci`。)
3. 完成配置(见[设置配置文件](#设置配置文件)
@@ -250,7 +251,8 @@ npm install
MENAV_BOOKMARKS_DETERMINISTIC=1 npm run import-bookmarks
```
- 系统会自动将书签转换为配置文件保存到`config/user/pages/bookmarks.yml`
- **注意**`npm run dev`命令不会自动处理书签文件,必须先手动运行上述命令
- **注意**`npm run dev`命令不会自动处理书签文件,必须先手动运行上述命令
- `npm run dev` 默认会刷新 `articles/projects` 的联网缓存(若你希望离线启动,请使用 `npm run dev:offline`
5. 构建
```bash
@@ -258,6 +260,11 @@ npm install
npm run dev
```
```bash
# 离线启动开发服务器(不刷新联网缓存)
npm run dev:offline
```
```bash
# 生成静态HTML文件
npm run build
@@ -316,6 +323,8 @@ npm run format
- GitHub Actions会自动检测您的更改
- 构建并部署您的网站
- 部署完成后,您可以在 Settings -> Pages 中找到您的网站地址
- 站点内容的“时效性数据”RSS 文章聚合、projects 仓库统计)会由部署工作流在构建前自动刷新
- 也支持定时刷新:默认每天 UTC 02:00 触发一次GitHub Actions cron 使用 UTC北京时间=UTC+8可在 `.github/workflows/deploy.yml` 中调整 `schedule.cron`
**重要: Sync fork后需要手动触发工作流**:
@@ -381,6 +390,16 @@ server {
- 设置构建命令为`npm run build`
- 设置输出目录为`dist`
> 如果你希望在构建时刷新“时效性数据”RSS 文章聚合、projects 仓库统计),请将构建命令改为:
>
> ```bash
> npm ci && npm run sync-projects && npm run sync-articles && npm run build
> ```
>
> 说明:`sync-*` 会联网抓取并写入 `dev/` 缓存(仓库默认 gitignore同步脚本为 best-effort失败不会阻断后续 `build`。
>
> 备注:`dev/` 只用于构建过程的中间缓存,默认不会被提交到仓库;部署时也只会上传 `dist/`,不会包含 `dev/`。
> **书签转换依赖 GitHub Actions**
> 如果需要使用书签自动推送功能,必须先在 GitHub 仓库中启用 GitHub Actions
>