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/
This commit is contained in:
rbetree
2025-12-22 00:19:44 +08:00
parent b95a39db1d
commit 7a7bf361e3
4 changed files with 159 additions and 39 deletions

View File

@@ -39,14 +39,12 @@ config/
## 配置加载机制
MeNav 配置系统使用深度合并机制,按以下顺序加载和合并配置
MeNav 配置系统采用“完全替换”策略(不合并),按以下优先级选择**唯一**的一套配置目录
1. 加载 `_default` 目录中的所有配置(基础层)
2. 加载 `user` 目录中的配置(如果存在,覆盖同名配置项)
3. 深度合并所有配置,确保用户配置优先级高于默认配置
4. 应用最终合并后的配置生成网站
1. 若存在 `config/user/`,则只加载该目录下的配置,并**完全忽略** `config/_default/`
2. 否则加载 `config/_default/` 作为默认配置
这种机制使用户只需配置想要自定义的部分,其余部分默认配置提供
也就是说:`config/user/` 一旦存在,就需要包含一套完整的配置(例如 `site.yml` 与必要的 `pages/*.yml`),系统不会把缺失部分默认配置补齐
## 模块化配置文件
@@ -170,10 +168,10 @@ categories:
3. **配置管理**:
- 利用模块化结构分类管理配置
- 只覆盖需要自定义的配置项
- 首次使用建议先完整复制 `config/_default/``config/user/`,再按需修改
- 定期备份您的用户配置
4. **配置验证**:
- 修改配置后先在本地构建测试
- 使用 `npm run dev` 预览更改效果
- 确保 YAML 语法正确无误
- 确保 YAML 语法正确无误