修改配置加载逻辑

配置加载优先级使用完全替换规则,而不是深度合并
This commit is contained in:
Zuoling Rong
2025-05-03 23:12:44 +08:00
parent e307754bd7
commit 0ed1be536a
3 changed files with 168 additions and 168 deletions

View File

@@ -16,7 +16,7 @@
- [快速部署到GitHub Pages](#快速部署到github-pages)
- [部署到服务器](#部署到服务器)
- [设置配置文件](#设置配置文件)
- [使用文件配置](#使用文件配置)
- [使用文件配置](#使用文件配置)
- [使用模块化配置](#使用模块化配置)
- [书签导入功能](#书签导入功能)
- [贡献](#贡献)
@@ -35,7 +35,7 @@
- 👥 支持展示社交媒体链接
- 📝 支持多个内容页面(首页、项目、文章、友链)
- 📌 支持从浏览器导入书签
- 🧩 模块化配置/文件配置
- 🧩 模块化配置/文件配置
- 🔄 可部署到GitHub Pages或任何服务器
## 近期更新
@@ -146,7 +146,7 @@ npm install
```
3. 修改配置
- 可以选择使用文件配置或模块化配置(见[设置配置文件](#设置配置文件)
- 可以选择使用文件配置或模块化配置(见[设置配置文件](#设置配置文件)
- 自定义网站内容、导航链接、社交媒体链接等
4. 本地预览
@@ -181,7 +181,7 @@ npm run dev
#### 第二步:自定义配置
1. 创建个人配置文件:
- 可以使用文件配置或模块化配置
- 可以使用文件配置或模块化配置
- 推荐使用模块化配置(见[使用模块化配置](#使用模块化配置)
- 提交您的配置文件到仓库
@@ -239,22 +239,24 @@ server {
## 设置配置文件
MeNav支持两种配置方式文件配置和模块化配置(推荐)。
MeNav支持两种配置方式文件配置和模块化配置(推荐)。
在加载配置时遵循以下优先级顺序:
1. `config/user/` (模块化用户配置)
2. `config.user.yml`(单文件用户配置)
1. `config/user/` (模块化用户配置)(优先级最高)
2. `config.user.yml``bookmarks.user.yml`(双文件用户配置)
3. `config/_default/` (模块化默认配置)
4. `config.yml`(单文件默认配置
4. `config.yml``bookmarks.yml`(双文件默认配置)(优先级最低
### 使用单文件配置
**注意:** 各优先级配置间采用完全替换策略,而非合并。系统会选择存在的最高优先级配置,完全忽略其他低优先级配置。这确保了模块化配置和双文件配置都能独立使用,避免混合配置带来的意外行为。
单文件配置是最简单的配置方式,适合小型网站和快速开始。
### 使用双文件配置
双文件配置由 `config.yml`/`config.user.yml``bookmarks.yml`/`bookmarks.user.yml` 两个文件组成,适合小型网站和快速开始。
1. **创建配置文件**:
- 复制 `config.yml``config.user.yml`
- 编辑 `config.user.yml` 文件
- 对于书签配置,请勿手动创建 `bookmarks.user.yml`,它应通过[书签导入功能](#书签导入功能)自动生成
- 编辑 `config.user.yml` 添加您的配置
2. **配置文件结构**:
```yaml
@@ -376,6 +378,15 @@ config/
MeNav支持从浏览器导入书签快速批量添加网站链接。
在加载配置时遵循以下优先级顺序:
1. `config/user/pages/bookmarks.yml` (模块化用户配置)
2. `bookmarks.user.yml`(双文件用户配置的书签部分)
3. `config/_default/pages/bookmarks.yml` (模块化默认配置)
4. `bookmarks.yml`(双文件默认配置的书签部分)
**注意:** 与主配置一样,书签配置也采用完全替换策略,系统只会使用找到的最高优先级书签配置,完全忽略低优先级配置。
### 导入步骤
1. **从浏览器导出书签**
@@ -392,9 +403,13 @@ MeNav支持从浏览器导入书签快速批量添加网站链接。
3. **书签处理结果**
- 生成的书签配置会保存到 `bookmarks.user.yml`
- 如果使用模块化配置,也会同时保存到 `config/user/pages/bookmarks.yml`
- 书签会自动添加到导航菜单中
- 自动开始构建
> 有关书签导入功能的更多信息,请参阅源代码中的相关注释。
### 注意事项
- 仅支持标准HTML格式的书签文件
- 每次只会处理目录中最新的一个书签文件
- 处理完成后,书签文件会被自动清除,以防止重复处理
## 贡献