docs: move changelog out of README

This commit is contained in:
rbetree
2026-02-19 19:27:30 +08:00
parent ebf7ebf14a
commit b2aeb0b355
2 changed files with 254 additions and 271 deletions

252
CHANGELOG.md Normal file
View File

@@ -0,0 +1,252 @@
# 更新记录
> 本文件维护 MeNav 历史更新记录。README 不再维护"更新记录"章节。
### 2026/01/04
**1. 首屏性能优化**
- 移除首页副标题固定 Quicksand 外链字体,改为跟随全站字体
- 字体外链 CSS 支持 `fonts.preload: true``preload + onload` 非阻塞加载,含 `<noscript>` 回退)
- Font Awesome CSS 改为 `preload + onload` 非阻塞加载,降低 render-blocking 影响
- 构建阶段压缩 `style.css` / `script.js` / `pinyin-match.js`,减少传输体积
**2. 安全与部署稳定性**
- 链接安全加固:模板与运行时统一校验 URL scheme不安全链接降级为 `#`),新增 `security.allowedSchemes` 支持显式放行自定义协议
- 去除外部输入的 `innerHTML` 拼接:分类标题更新/新增分类改用 DOM API 构建,降低注入风险
- `sync-articles` 对齐 best-effort同步失败不再以非 0 退出码阻断构建/部署
- 版本号来源统一:`window.MeNav.version` 不再写死,自动读取构建注入版本(用于扩展/调试识别)
**3. 模板图标 helperBreaking**
- 模板 helper `faviconUrl` 更名为 `faviconV2Url`,避免与站点字段 `sites[].faviconUrl` 同名冲突;如有自定义模板调用 `{{faviconUrl url}}`,需同步改为 `{{faviconV2Url url}}`
### 2026/01/03
关联 Issue[#31](https://github.com/rbetree/menav/issues/31)
**1. favicon 加载优化**
- 新增 `icons.region: com | cn` 配置项,允许用户选择优先使用国内源或国外源
- `com`(默认):优先 gstatic.com失败回退 gstatic.cn
- `cn`:优先 gstatic.cn失败回退 gstatic.com
- 修改 favicon 加载超时判断机制
- 自定义 faviconUrl5秒超时后显示回退图标
- 自动 favicon每次尝试3秒超时最多等待6秒
- 避免网络慢时长时间显示加载动画
### 2026/01/02
关联 Issue[#30](https://github.com/rbetree/menav/issues/30)
细节见:[`config/update-instructions-20260102.md`](config/update-instructions-20260102.md)
**1. 外部资源可用性**
- Font Awesomebootcdn → cdnjsCloudflare降低被拦截风险
- favicon`t3.gstatic.com` 失败自动回退 `t3.gstatic.cn`,提升国内网络可用性
**2. 图标模式与站点级覆盖**
- 修复 `site.yml -> icons.mode` 配置未生效(构建期提升为顶层 `icons.mode`,供模板/运行时统一读取)
- 新增站点级图标覆盖:`faviconUrl` / `forceIconMode: favicon | manual`(优先级:`faviconUrl` > `forceIconMode` > 全局 `icons.mode`
**3. 嵌套交互与链接打开**
- 恢复二级分组折叠入口(桌面端默认隐藏,悬停/收起态显示,避免界面过密)
- 多级结构下递归补齐 `sites[].external` 默认值,保证站点链接默认新标签页打开
### 2025/12/27
细节见:[`config/update-instructions-20251227.md`](config/update-instructions-20251227.md)
**1. 页面模板差异化改进Phase 1/Phase 2**
- 首页判定规则调整:`site.yml -> navigation` 第一项即首页(不再依赖 `home` 页面/ID
- 模板体系整理:通用 `page` + 特殊页 `projects/articles/bookmarks` + 内置 `search-results`
- `bookmarks` 标题后追加只读更新时间:`update: YYYY-MM-DD | from: git|mtime`
- `articles` Phase 2RSS 聚合文章条目(只读 `data-type="article"`),按 `articles.yml` 分类聚合展示;保留隐藏写回结构避免干扰扩展
- `projects`repo 风格卡片language/stars/forks 自动抓取)+ 可选 GitHub 贡献热力图
**2. 工作流与时效性数据刷新**
- GitHub Actions 构建前自动执行 `sync-projects` / `sync-articles`
- 新增 `schedule` 定时触发刷新cron 使用 UTC可在 workflow 中调整)
**3. 配置与兼容清理Breaking**
- 移除旧版单文件配置 `config.yml/config.yaml` 回退
- 移除独立 `navigation.yml` 回退
- 移除 `pages/home.yml -> 顶层 categories``home` 子菜单特例
- `navigation[].active` 不再生效(首页/默认打开页始终由 `navigation` 第一项决定)
**4. 配置变更(字段新增/减少)**
- 新增:
- `site.rss.*`articles RSS 抓取与缓存配置(用于 `npm run sync-articles`
- `site.github.*`projects 热力图与仓库元信息抓取缓存配置(用于 `npm run sync-projects`
- `pages/<id>.yml -> template`:页面模板选择(缺省时按回退规则使用 `page`
- 说明:
- “首页”始终由 `site.yml -> navigation` 第一项决定,不要求页面 id 为 `home`
### 2025/12/23
**1. 侧边栏与导航交互优化**
- 高亮项有子菜单时会自动展开
- 侧边栏 `logo_text` 左侧展示站点 Logo复用 `site.favicon`
**2. 卡片层级折叠规则调整**
- 仅 1 层分类:一级分类支持下拉/收起
- 2/3 层分类:仅二级标题支持下拉/收起(一级/三级不提供折叠按钮与交互)
**3.页面细节**
- 主题蓝调整为 `#7694B9`,统一应用到高亮/渐变/阴影
- 搜索无结果红色状态图标对齐修复(避免图标位置偏移)
- `menav.svg` 优化暗色背景可读性(字母颜色加深)
### 2025/11/09
**1. 默认配置与文档**
- 更新默认配置与项目 Logo并同步完善 README
### 2025/10/31
**1. 书签导入与嵌套结构**
- 优化书签转换逻辑与分类嵌套结构
- 修复书签转换脚本问题,提升稳定性
### 2025/10/24 - 2025/10/27
**1. 分类/卡片交互与细节修复**
- 为各结构补齐下拉指示与交互,并新增“分类展开/收起”按钮
- 修复侧边栏切换图标错位、站点卡片悬浮层级遮挡问题
- 调整卡片间距与 category/group 栏样式效果,移除废弃的 `restructure` 命令
### 2025/10/18
**1. 图标模式默认行为变更**
- 默认启用 `icons.mode: favicon`,自动根据站点 URL 加载 favicon失败回退为 Font Awesome 图标)
- 如需关闭外部请求并完全使用手动图标,请在 `config/user/site.yml` 中设置:
```yaml
# config/user/site.yml
icons:
mode: manual # 关闭 favicon 请求,纯手动图标
```
### 2025/10/14
**1. 拼音搜索支持**
- 支持中文拼音与首字母匹配检索(基于 `pinyin-match`
### 2025/07/30
**1. 链接打开行为一致性**
- 统一站点/导航外链为新标签页打开,改善导航体验
### 2025/07/07
**1. UI 细节优化**
- 侧边栏显示与布局细节优化
- 明暗主题切换按钮样式改进
- 欢迎文本与布局对齐优化
### 2025/05/22
**1. MeNav 浏览器扩展支持接口**
- 注入扩展元信息(`menav-config-data`)并输出 `dist/menav-config.json` 供扩展按需加载(避免把整站配置注入到 `index.html`
- 暴露 `window.MeNav` 基础能力与 DOM 数据属性,支持元素精准定位与更新
- 为扩展推送与页面联动打通基础能力
### 2025/05/16
**1. MarksVault 浏览器扩展集成**
- 支持与 [MarksVault](https://github.com/rbetree/MarksVault) 浏览器扩展集成
- 使用扩展自动推送书签文件到 MeNav
- 自动处理推送的书签文件并更新网站
### 2025/05/09
**1. 搜索引擎集成功能**
- 集成Google、Bing、百度搜索引擎
- 通过搜索框图标一键切换不同搜索引擎
- 用户选择保存在本地,下次访问自动应用
### 2025/05/08
**1. Handlebars模板系统重构**
- 使用Handlebars模板引擎重构整个前端生成系统
- 实现模块化、组件化的模板结构包含layouts、pages和components
- 改进代码复用,提高可维护性和扩展性
- 优化HTML生成逻辑提升性能和代码质量
### 2025/05/04
**1. 移除双文件配置支持**
- 完全移除了对双文件配置方法的支持
- 简化了配置加载逻辑,现在仅支持模块化配置
### 2025/05/03
**1. 侧边栏收回功能**
- 添加侧边栏折叠/展开按钮位于Logo文本右侧
- 侧边栏平滑折叠/展开过渡
**2. 移动端UI优化**
- 修复搜索按钮和侧边栏按钮遮挡问题
- 点击侧边栏导航项后自动收起侧边栏
### 2025/05/02
**1. 模块化配置**
- 支持将配置拆分为多个文件,便于管理和维护
- 引入配置目录结构,分离页面配置
- 配置统一采用模块化目录结构(`config/user/` / `config/_default/`
### 2025/05/01
**1. 页面布局优化**
- 优化了内容区域和侧边栏的间距,确保各种分辨率下内容不会贴近边缘
- 卡片与边框始终保持合理间距,避免在窄屏设备上与滚动条贴边
- 调整了搜索结果区域的边距,与常规分类保持样式一致性
**2. 网站卡片文本优化**
- 为站点卡片标题添加单行文本截断,过长标题显示省略号
- 为站点描述添加两行限制和省略号,保持卡片布局整洁
- 添加卡片悬停提示,方便查看完整信息
**3. 移动端显示增强**
- 优化了移动端卡片尺寸,一屏可显示更多网址
- 图标大小自适应,在小屏幕上更加紧凑
- 为不同尺寸移动设备768px、480px、400px提供递进式UI优化
- 减小卡片内边距和元素间距,增加屏幕利用率
**4. 书签导入功能**
- 支持从Chrome、Firefox和Edge浏览器导入HTML格式书签
- 自动处理书签文件,解析文件夹结构和链接
- 图标处理:默认加载站点 favicon在 manual 模式下保留 Font Awesome 匹配
- 生成配置文件,无需手动录入即可批量导入网站链接
- 与GitHub Actions集成全自动化的导入和部署流程

273
README.md
View File

@@ -38,261 +38,8 @@
- 与 [MarksVault](https://github.com/rbetree/MarksVault) 浏览器扩展集成,支持自动推送书签 - 与 [MarksVault](https://github.com/rbetree/MarksVault) 浏览器扩展集成,支持自动推送书签
- 可部署到GitHub Pages或任何类似的CI/CD服务 - 可部署到GitHub Pages或任何类似的CI/CD服务
## 更新记录 > 历史更新记录已迁移至 [`CHANGELOG.md`](CHANGELOG.md)README 不再维护该部分。
<details>
<summary>点击查看/隐藏更新日志</summary>
### 2026/01/04
**1. 首屏性能优化**
- 移除首页副标题固定 Quicksand 外链字体,改为跟随全站字体
- 字体外链 CSS 支持 `fonts.preload: true``preload + onload` 非阻塞加载,含 `<noscript>` 回退)
- Font Awesome CSS 改为 `preload + onload` 非阻塞加载,降低 render-blocking 影响
- 构建阶段压缩 `style.css` / `script.js` / `pinyin-match.js`,减少传输体积
**2. 安全与部署稳定性**
- 链接安全加固:模板与运行时统一校验 URL scheme不安全链接降级为 `#`),新增 `security.allowedSchemes` 支持显式放行自定义协议
- 去除外部输入的 `innerHTML` 拼接:分类标题更新/新增分类改用 DOM API 构建,降低注入风险
- `sync-articles` 对齐 best-effort同步失败不再以非 0 退出码阻断构建/部署
- 版本号来源统一:`window.MeNav.version` 不再写死,自动读取构建注入版本(用于扩展/调试识别)
**3. 模板图标 helperBreaking**
- 模板 helper `faviconUrl` 更名为 `faviconV2Url`,避免与站点字段 `sites[].faviconUrl` 同名冲突;如有自定义模板调用 `{{faviconUrl url}}`,需同步改为 `{{faviconV2Url url}}`
### 2026/01/03
关联 Issue[#31](https://github.com/rbetree/menav/issues/31)
**1. favicon 加载优化**
- 新增 `icons.region: com | cn` 配置项,允许用户选择优先使用国内源或国外源
- `com`(默认):优先 gstatic.com失败回退 gstatic.cn
- `cn`:优先 gstatic.cn失败回退 gstatic.com
- 修改 favicon 加载超时判断机制
- 自定义 faviconUrl5秒超时后显示回退图标
- 自动 favicon每次尝试3秒超时最多等待6秒
- 避免网络慢时长时间显示加载动画
### 2026/01/02
关联 Issue[#30](https://github.com/rbetree/menav/issues/30)
细节见:[`config/update-instructions-20260102.md`](config/update-instructions-20260102.md)
**1. 外部资源可用性**
- Font Awesomebootcdn → cdnjsCloudflare降低被拦截风险
- favicon`t3.gstatic.com` 失败自动回退 `t3.gstatic.cn`,提升国内网络可用性
**2. 图标模式与站点级覆盖**
- 修复 `site.yml -> icons.mode` 配置未生效(构建期提升为顶层 `icons.mode`,供模板/运行时统一读取)
- 新增站点级图标覆盖:`faviconUrl` / `forceIconMode: favicon | manual`(优先级:`faviconUrl` > `forceIconMode` > 全局 `icons.mode`
**3. 嵌套交互与链接打开**
- 恢复二级分组折叠入口(桌面端默认隐藏,悬停/收起态显示,避免界面过密)
- 多级结构下递归补齐 `sites[].external` 默认值,保证站点链接默认新标签页打开
### 2025/12/27
细节见:[`config/update-instructions-20251227.md`](config/update-instructions-20251227.md)
**1. 页面模板差异化改进Phase 1/Phase 2**
- 首页判定规则调整:`site.yml -> navigation` 第一项即首页(不再依赖 `home` 页面/ID
- 模板体系整理:通用 `page` + 特殊页 `projects/articles/bookmarks` + 内置 `search-results`
- `bookmarks` 标题后追加只读更新时间:`update: YYYY-MM-DD | from: git|mtime`
- `articles` Phase 2RSS 聚合文章条目(只读 `data-type="article"`),按 `articles.yml` 分类聚合展示;保留隐藏写回结构避免干扰扩展
- `projects`repo 风格卡片language/stars/forks 自动抓取)+ 可选 GitHub 贡献热力图
**2. 工作流与时效性数据刷新**
- GitHub Actions 构建前自动执行 `sync-projects` / `sync-articles`
- 新增 `schedule` 定时触发刷新cron 使用 UTC可在 workflow 中调整)
**3. 配置与兼容清理Breaking**
- 移除旧版单文件配置 `config.yml/config.yaml` 回退
- 移除独立 `navigation.yml` 回退
- 移除 `pages/home.yml -> 顶层 categories``home` 子菜单特例
- `navigation[].active` 不再生效(首页/默认打开页始终由 `navigation` 第一项决定)
**4. 配置变更(字段新增/减少)**
- 新增:
- `site.rss.*`articles RSS 抓取与缓存配置(用于 `npm run sync-articles`
- `site.github.*`projects 热力图与仓库元信息抓取缓存配置(用于 `npm run sync-projects`
- `pages/<id>.yml -> template`:页面模板选择(缺省时按回退规则使用 `page`
- 说明:
- “首页”始终由 `site.yml -> navigation` 第一项决定,不要求页面 id 为 `home`
### 2025/12/23
**1. 侧边栏与导航交互优化**
- 高亮项有子菜单时会自动展开
- 侧边栏 `logo_text` 左侧展示站点 Logo复用 `site.favicon`
**2. 卡片层级折叠规则调整**
- 仅 1 层分类:一级分类支持下拉/收起
- 2/3 层分类:仅二级标题支持下拉/收起(一级/三级不提供折叠按钮与交互)
**3.页面细节**
- 主题蓝调整为 `#7694B9`,统一应用到高亮/渐变/阴影
- 搜索无结果红色状态图标对齐修复(避免图标位置偏移)
- `menav.svg` 优化暗色背景可读性(字母颜色加深)
### 2025/11/09
**1. 默认配置与文档**
- 更新默认配置与项目 Logo并同步完善 README
### 2025/10/31
**1. 书签导入与嵌套结构**
- 优化书签转换逻辑与分类嵌套结构
- 修复书签转换脚本问题,提升稳定性
### 2025/10/24 - 2025/10/27
**1. 分类/卡片交互与细节修复**
- 为各结构补齐下拉指示与交互,并新增“分类展开/收起”按钮
- 修复侧边栏切换图标错位、站点卡片悬浮层级遮挡问题
- 调整卡片间距与 category/group 栏样式效果,移除废弃的 `restructure` 命令
### 2025/10/18
**1. 图标模式默认行为变更**
- 默认启用 `icons.mode: favicon`,自动根据站点 URL 加载 favicon失败回退为 Font Awesome 图标)
- 如需关闭外部请求并完全使用手动图标,请在 `config/user/site.yml` 中设置:
```yaml
# config/user/site.yml
icons:
mode: manual # 关闭 favicon 请求,纯手动图标
```
### 2025/10/14
**1. 拼音搜索支持**
- 支持中文拼音与首字母匹配检索(基于 `pinyin-match`
### 2025/07/30
**1. 链接打开行为一致性**
- 统一站点/导航外链为新标签页打开,改善导航体验
### 2025/07/07
**1. UI 细节优化**
- 侧边栏显示与布局细节优化
- 明暗主题切换按钮样式改进
- 欢迎文本与布局对齐优化
### 2025/05/22
**1. MeNav 浏览器扩展支持接口**
- 注入扩展元信息(`menav-config-data`)并输出 `dist/menav-config.json` 供扩展按需加载(避免把整站配置注入到 `index.html`
- 暴露 `window.MeNav` 基础能力与 DOM 数据属性,支持元素精准定位与更新
- 为扩展推送与页面联动打通基础能力
### 2025/05/16
**1. MarksVault 浏览器扩展集成**
- 支持与 [MarksVault](https://github.com/rbetree/MarksVault) 浏览器扩展集成
- 使用扩展自动推送书签文件到 MeNav
- 自动处理推送的书签文件并更新网站
### 2025/05/09
**1. 搜索引擎集成功能**
- 集成Google、Bing、百度搜索引擎
- 通过搜索框图标一键切换不同搜索引擎
- 用户选择保存在本地,下次访问自动应用
### 2025/05/08
**1. Handlebars模板系统重构**
- 使用Handlebars模板引擎重构整个前端生成系统
- 实现模块化、组件化的模板结构包含layouts、pages和components
- 改进代码复用,提高可维护性和扩展性
- 优化HTML生成逻辑提升性能和代码质量
### 2025/05/04
**1. 移除双文件配置支持**
- 完全移除了对双文件配置方法的支持
- 简化了配置加载逻辑,现在仅支持模块化配置
### 2025/05/03
**1. 侧边栏收回功能**
- 添加侧边栏折叠/展开按钮位于Logo文本右侧
- 侧边栏平滑折叠/展开过渡
**2. 移动端UI优化**
- 修复搜索按钮和侧边栏按钮遮挡问题
- 点击侧边栏导航项后自动收起侧边栏
### 2025/05/02
**1. 模块化配置**
- 支持将配置拆分为多个文件,便于管理和维护
- 引入配置目录结构,分离页面配置
- 配置统一采用模块化目录结构(`config/user/` / `config/_default/`
### 2025/05/01
**1. 页面布局优化**
- 优化了内容区域和侧边栏的间距,确保各种分辨率下内容不会贴近边缘
- 卡片与边框始终保持合理间距,避免在窄屏设备上与滚动条贴边
- 调整了搜索结果区域的边距,与常规分类保持样式一致性
**2. 网站卡片文本优化**
- 为站点卡片标题添加单行文本截断,过长标题显示省略号
- 为站点描述添加两行限制和省略号,保持卡片布局整洁
- 添加卡片悬停提示,方便查看完整信息
**3. 移动端显示增强**
- 优化了移动端卡片尺寸,一屏可显示更多网址
- 图标大小自适应,在小屏幕上更加紧凑
- 为不同尺寸移动设备768px、480px、400px提供递进式UI优化
- 减小卡片内边距和元素间距,增加屏幕利用率
**4. 书签导入功能**
- 支持从Chrome、Firefox和Edge浏览器导入HTML格式书签
- 自动处理书签文件,解析文件夹结构和链接
- 图标处理:默认加载站点 favicon在 manual 模式下保留 Font Awesome 匹配
- 生成配置文件,无需手动录入即可批量导入网站链接
- 与GitHub Actions集成全自动化的导入和部署流程
</details>
## 技术栈 ## 技术栈
@@ -315,6 +62,7 @@ menav/
## 文档导航 ## 文档导航
- 历史更新记录README 不再维护):[`CHANGELOG.md`](CHANGELOG.md)
- 更新说明2025/12/27兼容性移除 / 迁移指南):[`config/update-instructions-20251227.md`](config/update-instructions-20251227.md) - 更新说明2025/12/27兼容性移除 / 迁移指南):[`config/update-instructions-20251227.md`](config/update-instructions-20251227.md)
- 配置系统(完全替换策略、目录结构、示例):[`config/README.md`](config/README.md) - 配置系统(完全替换策略、目录结构、示例):[`config/README.md`](config/README.md)
- 书签导入(格式要求、流程、常见问题):[`bookmarks/README.md`](bookmarks/README.md) - 书签导入(格式要求、流程、常见问题):[`bookmarks/README.md`](bookmarks/README.md)
@@ -636,23 +384,6 @@ MeNav 支持从浏览器导入书签,快速批量添加网站链接;也支
完整说明请直接看:[`bookmarks/README.md`](bookmarks/README.md)(以该文档为准)。 完整说明请直接看:[`bookmarks/README.md`](bookmarks/README.md)(以该文档为准)。
## 常见问题
<details>
<summary>如何自定义Handlebars模板</summary>
模板系统完整说明请见:[`templates/README.md`](templates/README.md)。
</details>
<details>
<summary>导入的书签没有正确显示图标怎么办?</summary>
默认启用 favicon 模式:页面会尝试从第三方服务获取站点 favicon若 URL 不是 http/https、站点无 favicon 或网络受限,将自动回退为 Font Awesome 图标。
</details>
<details>
<summary>如何使用MarksVault扩展自动同步书签</summary>
MarksVault 扩展集成的完整说明请见:[`bookmarks/README.md`](bookmarks/README.md) 的 “MarksVault 扩展集成” 章节。
</details>
## Star-History ## Star-History
[![Star History Chart](https://api.star-history.com/svg?repos=rbetree/menav&type=Date)](https://www.star-history.com/#rbetree/menav&Date) [![Star History Chart](https://api.star-history.com/svg?repos=rbetree/menav&type=Date)](https://www.star-history.com/#rbetree/menav&Date)