rbetree
|
0e154bc43e
|
fix(cli): dev/dev:offline Ctrl-C 退出防重入并支持二次强制退出
|
2026-01-16 20:51:10 +08:00 |
|
rbetree
|
87d1f0244c
|
chore: 引入统一日志模块,统一 cli 输出
|
2026-01-16 20:36:24 +08:00 |
|
rbetree
|
f2f59108a0
|
chore: 提交时自动格式化代码
- 安装 husky (^9.1.7) 和 lint-staged (^16.2.7)
- 配置 pre-commit hook 自动运行 Prettier
- 创建 .prettierignore 排除不需要格式化的文件
|
2026-01-16 16:34:47 +08:00 |
|
rbetree
|
89c1c0330b
|
refactor: 统一错误处理机制
- 引入 ConfigError/TemplateError/BuildError/FileError 与 wrapAsyncError,统一错误输出
- generator 入口接入 wrapAsyncError,确保命令行执行路径一致
- 兜底逻辑使用 instanceof,保留 BuildError/TemplateError 上下文信息
- 合并格式化提交(仅缩进/换行调整)
|
2026-01-16 16:34:46 +08:00 |
|
rbetree
|
1a90f8fbe3
|
refactor: 模块化重构 generator 和 runtime
|
2026-01-15 22:12:52 +08:00 |
|
rbetree
|
bcfa6e6316
|
feat: 优化书签工作流步骤
|
2026-01-07 21:42:00 +08:00 |
|
rbetree
|
8f81b430b9
|
feat(extension): 缩减配置注入并输出 menav-config.json
- 构建:生成 dist/menav-config.json 供扩展按需加载
- 页面:menav-config-data 仅注入扩展元信息(configUrl/pageTemplates/icons/homePageId/allowedSchemes)
- 运行时:模板判定优先 pageTemplates,兼容旧 cfg.data[pageId].template
- 文档:更新 README 的扩展接口说明
|
2026-01-07 19:35:20 +08:00 |
|
rbetree
|
a3465fe4a1
|
fix: 模板/组件扫描显式排序以保证构建确定性
- loadHandlebarsTemplates:对 templates/layouts 与 templates/components 的 .hbs 列表先 filter+sort 再注册 partial
- 避免 fs.readdirSync 在不同文件系统/平台下返回顺序不一致导致的潜在产物漂移
|
2026-01-07 17:48:57 +08:00 |
|
rbetree
|
efd1683e2b
|
feat(router): 支持?page=深链接&错误路由回退
- 导航/子菜单 href 统一为 ?page=<id>[#<slug>],支持复制/新开直达
- 启动时解析 ?page= 并同步导航高亮;子菜单跳转可组合 hash 定位分类
- 输入无效 pageId 时自动纠正 URL 到首页(replaceState,避免“内容回退但地址栏仍错误”)
- 构建生成 dist/404.html:将 /<id>(或 /<repo>/<id>)回跳到 /?page=<id> 并保留 hash
|
2026-01-07 17:29:48 +08:00 |
|
rbetree
|
1d158aabd7
|
feat: 将卡片悬浮提示固定在卡片下方或上方
|
2026-01-05 23:16:28 +08:00 |
|
rbetree
|
3e78332b54
|
style: 优化移动端ui逻辑与交互一致性
- 移动端布局:站点卡片统一两列;卡片改为横排左对齐,标题/描述省略防溢出
- 移动端留白:缩短分类卡片与页面边缘的左右间距,扩大可用宽度
- 搜索交互:搜索框常驻置顶;搜索按钮未删除仅隐藏;移除“搜索面板”切换/遮罩逻辑,按钮点击仅聚焦输入框
- 顶部栏:搜索框与菜单按钮同排;菜单按钮磁贴与搜索框风格/高度更契合;加入 safe-area 适配并修复横向溢出
- 侧边栏:移动端限制宽度并隐藏横向溢出,避免撑出右侧
- 磁贴统一:右下角主题/分类按钮在移动端与桌面端统一为同款磨砂卡片风格(含 safe-area 偏移)
|
2026-01-05 22:40:02 +08:00 |
|
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 |
|