Commit Graph

174 Commits

Author SHA1 Message Date
rbetree
ccd18f5ac5 feat: 移除移动端的站点卡片悬停提示功能 2026-01-05 15:56:21 +08:00
rbetree
8a1b6a2d90 refactor: 去除顶部进度条&恢复滚动条 2026-01-04 22:44:16 +08:00
rbetree
a9275ffc6d feat: 搜索框聚焦时发光 2026-01-04 22:21:21 +08:00
rbetree
82d6341c00 chore: 使用 Prettier 统一代码风格 2026-01-04 21:07:07 +08:00
rbetree
5ae8e99795 fix(ci): format-check-changed 兼容缺失 revision range
- diff range 缺失时自动补全 git 历史(unshallow/depth fetch)
- range 仍不可用时回退为 HEAD 变更文件列表,避免 CI 因浅克隆直接失败
2026-01-04 20:52:30 +08:00
rbetree
48609b86de feat: 分类锚点&质量检查&依赖治理
- 分类生成唯一 slug,模板/子菜单/滚动/扩展定位统一使用 data-id
- lint 覆盖 src/scripts/test,CI 增量格式检查
- 清理冗余依赖,升级 esbuild,overrides 修复审计项
- 补充单测并更新修复清单
2026-01-04 20:39:42 +08:00
rbetree
3d9363a550 fix: 重命名 favicon helper 避免与 sites.faviconUrl 同名冲突
将 Handlebars helper `faviconUrl(url)` 更名为 `faviconV2Url(url)`,解决自定义字段 `sites[].faviconUrl`
在模板中被误解析为 helper(无参调用)导致的渲染崩溃。

- helper:faviconUrl -> faviconV2Url
- 模板:site-card 中调用同步更新

BREAKING CHANGE:
自定义模板如使用 `{{faviconUrl url}}` 生成 faviconV2 地址,需要改为 `{{faviconV2Url url}}`。

Fixes: #32
2026-01-04 19:18:14 +08:00
rbetree
9929f60170 fix: 加固链接/图标安全与版本一致性;sync-articles 对齐 best-effort
- 模板与运行时统一做 URL scheme 白名单校验(不安全降级为 #),并清洗 icon class;分类标题/新增分类改用 DOM API 避免 innerHTML 注入
- sync-articles 主入口异常不再返回非 0 退出码,避免阻断 build/deploy
- window.MeNav.version 改为从 meta menav-version/配置自动读取,避免写死版本
- 文档/配置:新增 security.allowedSchemes 配置说明
2026-01-04 18:24:01 +08:00
rbetree
4cc10dd2b2 feat: 减少渲染阻塞并压缩静态资源
- 移除首页副标题固定 Quicksand 外链字体,改为跟随全站字体变量
- 字体配置新增 fonts.preload(preload+onload 非阻塞加载,含 noscript 回退)
- Font Awesome CSS 改为 preload+onload 非阻塞加载,降低 render-blocking
- 构建阶段使用 esbuild 压缩 dist 的 style/script/pinyin-match(无 esbuild 时回退为直接复制)
- 同步更新文档说明与更新日志
2026-01-04 17:03:16 +08:00
rbetree
2bebefbfe8 feat: 添加站点卡片悬停提示功能
- 为所有站点卡片添加 data-tooltip 属性,包含完整的标题和描述信息
- tooltip 显示逻辑:
  * 鼠标悬停在整个卡片上即可触发(触发区域大,操作自然)
  * 跟随鼠标移动,实时更新位置
  * 智能边界检测,避免 tooltip 超出视口范围
  * 鼠标移出时自动隐藏
- 解决文本截断问题,用户可通过悬停查看完整内容

实现:
- 模板层:在 site-card.hbs 中为卡片添加 data-tooltip 属性
- 交互层:在 script.js 中实现 tooltip 的创建、显示、移动和隐藏逻辑
- 样式层:通过 CSS 类控制 tooltip 的可见性和位置

Issue: #31
2026-01-03 18:03:50 +08:00
rbetree
3473aaebd7 feat: 新增 icons.region 配置项&修改 favicon 加载超时机制&修复去除硬编码
- 新增 icons.region: com | cn 配置项,允许用户选择优先使用国内源或国外源
  - com: 优先 gstatic.com,失败回退 gstatic.cn
  - cn: 优先 gstatic.cn,失败回退 gstatic.com
- 修改 favicon 加载超时判断机制
  - 自定义 faviconUrl: 5秒超时后显示回退图标
  - 自动 favicon: 每次尝试3秒超时,最多等待6秒
- 更新配置文档和默认配置示例
- 去除卡片模板中的url硬编码
Issue: #31
2026-01-03 17:03:45 +08:00
rbetree
87b4cea290 feat: 重构搜索框样式 2026-01-02 23:02:02 +08:00
rbetree
0e151156df feat: 优化各层级折叠与标题样式
- 优化完善各层级下的折叠样式;桌面端隐藏,悬浮动画等
- 优化各层级标题;固定标题前的图标宽度,对齐标题
2026-01-02 20:16:18 +08:00
rbetree
30d50ebcd7 fix: 修复外部资源、图标模式与嵌套交互(#30)
Fixes: https://github.com/rbetree/menav/issues/30

- Font Awesome:bootcdn→Cloudflare cdnjs
- favicon:gstatic `.com` 失败自动回退 `.cn`
- `icons.mode`:修复 `site.yml` 配置未生效(提升到顶层)
- 站点级图标覆盖:支持 `faviconUrl` / `forceIconMode`(优先级:`faviconUrl` > `forceIconMode` > `icons.mode`)
- 折叠交互:恢复二级分组折叠按钮(桌面端悬停显示)
- 新标签页:递归补齐多级 `sites.external` 默认值
2026-01-02 18:09:20 +08:00
rbetree
d2ceeb674f refactor: 调整文章页卡片并排数 2025-12-28 19:40:38 +08:00
rbetree
4eea833f20 feat: 调整字体 2025-12-28 19:28:04 +08:00
rbetree
0f0c0a6163 docs: 更新文档 2025-12-28 14:36:28 +08:00
rbetree
387cd2492e 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
2025-12-28 00:22:54 +08:00
rbetree
1475a8a0d3 fix: 加固扩展配置注入并缓存 getConfig
- configJSON 注入转义 </script,避免脚本块被提前终止(潜在注入)
- getConfig 解析结果缓存,避免重复 JSON.parse;支持 getConfig({ clone: true }) 返回副本
2025-12-26 15:23:44 +08:00
rbetree
e0e8ef39ee refactor: 合并书签配置文件
- 将 bookmarks.yml 和 bookmarks-four-level.yml 合并为统一配置
- 添加2层、3层、4层结构的完整示例
- 删除 bookmarks-four-level.yml 文件
- 更新 site.yml 中的导航配置,移除重复的书签导航项
- 更新 config/README.md 中的文档引用
2025-12-26 14:55:15 +08:00
rbetree
704e895773 feat: 首页由 navigation 首项决定
- 移除 navigation.active 配置项,默认页以 navigation[0] 为准(生成端/前端一致)
- 注入 homePageId;首页渲染用 profile.title/profile.subtitle 覆盖 title/subtitle
- 模板按 homePageId 切换首页/非首页标题 DOM 与 data-editable,避免样式错位
- 更新默认配置与文档;书签导入不再写入 active 字段
- 新增/更新单测覆盖首页规则与 profile 覆盖

BREAKING CHANGE: 不再支持 navigation[].active;通过调整 navigation 顺序设置默认页/首页
2025-12-26 11:04:40 +08:00
rbetree
9929358d56 Merge branch 'main' of https://github.com/rbetree/menav 2025-12-23 16:18:01 +08:00
dependabot[bot]
49763a95cf chore(deps): bump on-headers and serve (#25)
Bumps [on-headers](https://github.com/jshttp/on-headers) to 1.1.0 and updates ancestor dependency [serve](https://github.com/vercel/serve). These dependencies need to be updated together.


Updates `on-headers` from 1.0.2 to 1.1.0
- [Release notes](https://github.com/jshttp/on-headers/releases)
- [Changelog](https://github.com/jshttp/on-headers/blob/master/HISTORY.md)
- [Commits](https://github.com/jshttp/on-headers/compare/v1.0.2...v1.1.0)

Updates `serve` from 14.2.4 to 14.2.5
- [Release notes](https://github.com/vercel/serve/releases)
- [Commits](https://github.com/vercel/serve/compare/14.2.4...v14.2.5)

---
updated-dependencies:
- dependency-name: on-headers
  dependency-version: 1.1.0
  dependency-type: indirect
- dependency-name: serve
  dependency-version: 14.2.5
  dependency-type: direct:development
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2025-12-23 16:07:44 +08:00
rbetree
38a22e0171 docs: 更新readme 2025-12-23 15:47:02 +08:00
rbetree
ac14586845 fix: 修复移动端完整可视 2025-12-23 14:56:45 +08:00
rbetree
7fb4db06b9 feat: 更新readme 2025-12-23 03:19:32 +08:00
rbetree
ed435b3381 feat: 更新展示图 2025-12-23 02:43:55 +08:00
rbetree
92f2884541 feat: 更新logo 2025-12-23 02:28:07 +08:00
rbetree
ba78c8e564 feat: 微调ui布局 2025-12-23 02:04:55 +08:00
rbetree
03b743e337 refactor: 修改社交链接样式布局 2025-12-22 22:28:28 +08:00
rbetree
e2fae7f362 feat: 微调ui布局 2025-12-22 21:00:59 +08:00
rbetree
7d44930b59 feat: 移除首页顶部欢迎区的 description 2025-12-22 20:34:04 +08:00
rbetree
a59c37d5ba refactor: 重构多层级设计 2025-12-22 20:02:44 +08:00
rbetree
2b366ae7ca feat: 优化调整卡片样式布局
- 站点卡片改为紧凑布局并统一动态渲染
- 搜索框玻璃拟态与 Ctrl/Cmd+K 聚焦
2025-12-22 19:56:03 +08:00
rbetree
ecc5e287b5 refactor: 统一样式变量并规范过渡动画 2025-12-22 16:39:04 +08:00
rbetree
670e73e93c fix: 补齐书签 subgroups 渲染并对齐 README
- 修复 subgroups 生成但不展示的问题(模板渲染 + 前端结构导出)
- 更新 README:配置示例/完全替换策略/多层级说明与 helper 文档,减少重复说明
2025-12-22 02:16:01 +08:00
rbetree
2daba411ba docs: 更新重构各readme文件 2025-12-22 01:45:58 +08:00
rbetree
47e4369b09 chore: 安全升级并完善 CI/测试
- 升级 js-yaml 修复生产依赖漏洞
- 新增 CI:lint/test/build
- 增加书签处理单测与可测性导出"- 生成器补充 config/user 缺失提示
- 增加 lint/format/check 脚本与 Prettier 配置
- 统一行尾策略并支持书签确定性输出"
2025-12-22 00:44:51 +08:00
rbetree
7a7bf361e3 fix: 对齐配置策略并加固书签导入
1) src/bookmark-processor.js:加固书签导入
- config/user/ 不存在时先从 config/_default/ 初始化一套完整用户配置(符合“完全替换”策略)
- 优先更新 config/user/site.yml 的 navigation,确保包含 id: bookmarks;失败再兼容旧 navigation.yml
- 无 .html 书签文件时由报错改为警告并跳过,不阻塞流程
- 导航更新日志按结果输出,不再无条件“已更新”

2) config/README.md:修正文档
- 明确配置加载为“完全替换、不合并”
- 补充首次使用建议:复制 config/_default/ 到 config/user/

3) package.json:许可证对齐
- license 从 MIT 改为 AGPL-3.0-only(与 LICENSE/README 对齐)

4) .gitignore:忽略工具目录
- 新增忽略 .serena/
2025-12-22 00:19:44 +08:00
rbetree
b95a39db1d refactor: 修改默认配置 2025-11-09 21:58:07 +08:00
rbetree
cc35e3e7c9 refactor: 修改项目logo 2025-11-09 21:50:31 +08:00
rbetree
c27464c452 docs: 更新readme文档 2025-11-09 21:49:35 +08:00
rbetree
3ae40b23d5 feat: 优化书签转换逻辑和分类嵌套结构 2025-11-01 00:19:30 +08:00
rbetree
dd6e688005 fix: 修复书签转换脚本 2025-10-31 00:53:08 +08:00
rbetree
cb144d5315 fix: 修复侧边栏切换图标错位
Close #21
2025-10-27 16:09:08 +08:00
rbetree
886bc464d1 feat: 新增'分类展开/收起'按钮 2025-10-27 15:01:17 +08:00
rbetree
153dee9dbc feat: 调整卡片样式间距 2025-10-27 14:19:15 +08:00
rbetree
ee19312ef3 feat: 优化category与group栏样式效果 2025-10-26 19:56:55 +08:00
rbetree
009fe8dd98 fix: 去除废弃的restructure命令 2025-10-26 17:21:12 +08:00
rbetree
ce209d7346 feat: 去除条件判断,为所有结构添加下拉栏指示 2025-10-25 22:55:43 +08:00