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` 默认值
This commit is contained in:
rbetree
2026-01-02 14:58:53 +08:00
parent d2ceeb674f
commit 30d50ebcd7
13 changed files with 613 additions and 97 deletions

View File

@@ -106,6 +106,21 @@ MeNav 配置系统采用“完全替换”策略(不合并),按以下优
- `icons.mode: favicon | manual`
- `favicon`会请求第三方服务Google获取站点 favicon失败自动回退到 Font Awesome 图标
- `manual`:完全使用手动 Font Awesome 图标,不发起外部请求(适合内网/离线/隐私敏感场景)
- 站点级覆盖(可选,写在 `pages/*.yml` 的每个 `sites[]` 节点上):
- `faviconUrl`:为单个站点指定图标链接(可远程或本地相对路径;本地建议以 `assets/` 开头,构建会复制到 `dist/` 同路径),优先级最高
- `forceIconMode: favicon | manual`:强制该站点使用指定模式(不设置则跟随全局 `icons.mode`
- 优先级:`faviconUrl` > `forceIconMode` > 全局 `icons.mode`
- 示例:
```yml
sites:
- name: "Ant Design"
url: "https://ant.design/"
icon: "fas fa-th"
forceIconMode: manual # 强制使用手动图标,绕过 favicon 默认“地球”图标
- name: "Example"
url: "https://example.com/"
faviconUrl: "https://example.com/favicon.png" # 单站点自定义 favicon
```
3. **字体**
- `fonts`:单一字体配置项,用于设置全站基础字体(`body` 等)