MeNav 书签目录
目录
目录概述
bookmarks 目录是 MeNav 项目中用于存放浏览器导出的书签文件的专用目录。该目录与书签导入功能直接关联,用于自动将浏览器书签转换为 MeNav 配置文件,从而快速生成个人导航站点。
书签导入功能
书签导入功能允许用户:
- 从浏览器导出书签为 HTML 文件
- 将书签文件放入此目录
- 通过自动处理将书签转换为网站配置
- 无需手动编辑即可批量导入网站链接
这一功能极大简化了网站内容的初始设置过程,特别适合需要迁移大量书签的用户。
配置加载优先级(完全替换)
书签页配置同样遵循项目的“完全替换”策略:系统只会选择一套配置目录加载,不会把 user 与 _default 混合合并。
- 若存在
config/user/:书签页配置应位于config/user/pages/bookmarks.yml(通常由导入脚本生成) - 否则:使用
config/_default/pages/bookmarks.yml(默认示例)
提示:一旦创建
config/user/,config/_default/会被完全忽略,因此不要指望从默认配置“兜底补齐缺失项”。
MarksVault 扩展集成
MarksVault 浏览器扩展可与 MeNav 集成,实现书签自动同步:
- 一键推送书签:扩展将书签 HTML 文件推送到仓库的
bookmarks/目录 - 自动化处理:GitHub Actions 检测到书签文件后自动运行导入脚本生成配置
- 自动清理:处理完成后会删除已导入的 HTML 文件,避免重复处理
书签导入流程
完整的书签导入流程如下:
- 在浏览器中导出书签为 HTML 文件
- 将导出的书签文件放入
bookmarks目录 - 运行书签处理工具:
npm run import-bookmarks- 若
config/user/不存在,导入脚本会先从config/_default/初始化一份用户配置(因为配置采用“完全替换”策略,需要完整配置才能正常生成站点)。 (可选)若希望生成结果保持确定性(便于版本管理,减少时间戳导致的无意义 diff):
MENAV_BOOKMARKS_DETERMINISTIC=1 npm run import-bookmarks - 若
- 系统自动解析书签文件内容
- 根据书签文件夹结构生成分类
- 生成配置文件保存到
config/user/pages/bookmarks.yml - 构建网站应用新配置:
npm run build
重要说明:在本地开发中,
npm run dev命令不会自动处理书签文件。您必须先手动运行npm run import-bookmarks命令处理书签,然后再运行npm run dev查看效果。这与 GitHub Actions 中的自动处理流程不同,请务必注意。
确定性输出
默认情况下,导入脚本会在生成的 bookmarks.yml 顶部写入时间戳注释,导致每次导入都会产生 diff。
若你希望生成结果尽量稳定(只有书签内容变化才产生 diff),可使用环境变量开启确定性输出:
MENAV_BOOKMARKS_DETERMINISTIC=1 npm run import-bookmarks
支持的浏览器
MeNav 书签导入功能支持从以下浏览器导出的书签文件:
- Chrome - 通过书签管理器导出
- Firefox - 通过书签库导出
- Edge - 通过收藏夹导出
- Safari - 通过书签菜单导出
- 其他支持标准 HTML 书签格式的浏览器
书签格式要求
导入的书签文件需满足以下要求:
- 文件格式:HTML(标准网络书签格式)
- 文件编码:UTF-8
- 文件结构:包含
<DL>、<DT>和<A>标签的标准书签结构 - 文件大小:建议不超过 5MB(约数千个书签)
- 支持处理位于文件夹内的书签
- 支持处理不在任何文件夹内的根路径书签(自动归入"根目录书签"分类)
- 空文件夹会被忽略
文件处理机制
书签处理器 (src/bookmark-processor.js) 对书签文件进行以下处理:
-
解析文件结构:
- 读取书签 HTML 文件
- 解析 DOM 结构获取书签层次
- 提取文件夹和链接信息
-
分类提取:
- 将书签文件夹转换为网站分类
- 提取链接URL、标题和添加日期
-
根路径书签处理:
- 自动分类:根路径书签会被自动归入名为"根目录书签"的特殊分类
- 显示位置:该分类始终位于所有其他分类之前(第一位)
- 图标标识:使用星标图标(fas fa-star)
- 条件生成:只有存在根路径书签时才会创建该分类
- 自动映射:根路径书签同样支持基于URL的自动图标映射功能
-
图标分配:
- 根据URL自动匹配合适的 Font Awesome 图标
- 为每个链接和分类分配图标
- 当
icons.mode: favicon时,页面通常会优先显示站点 favicon;配置里的icon主要用于回退显示或在icons.mode: manual时使用(详见config/README.md)
-
配置生成:
- 创建符合 MeNav 配置格式的 YAML 文件
- 按层级组织分类和链接
- 应用自动生成的元数据
将书签放入此目录后,您可以立即利用 MeNav 的书签处理功能,快速将书签转化为个性化导航站点。