- 参考 Notion的极简风格,基于 Vue 3 + Vite + UnoCSS + Pinia + Naive UI(Image 组件)实现。
- 支持深浅色、二级分组、搜索、高可用的图标匹配与持久化(依赖本机网络)。
- 默认字体使用 DM Sans,UnoCSS reset 保证一致的基础样式。
本项目为闭源专有软件,未授予公开使用、复制、修改或分发源码的许可。详情见 LICENSE。项目使用的第三方组件仍分别遵循其各自许可证。
- 首选本地文件缓存:图标抓取后写入
utools.getPath('userData')/bookmarks-icons,Pinia 仅存文件路径 + hash。 - 域级冷却 24h:同一域名 24h 内不重复抓取,除非图标缺失或用户批量补全缺失图标。
- 书签编辑:修改 URL 时,如该书签当前无图标则触发重新获取;已有图标则不重拉。
- 批量补全:设置页提供“匹配缺失图标”操作,使用本机网络批量抓取缺失项。
- 回退:抓取失败或文件缺失时回退到文字首字母图标,不阻塞加载。
- 导出:默认导出引用(路径 + 元数据),必要时再扩展 base64 内联导出。
- 书签:创建/编辑/删除,二级分组管理,搜索(标题/描述/标签/URL),置顶。
- 图标:本机网络抓取站点图标;缓存到本地文件;缺失补全;文字回退。
- 设置:无效地址检测(本机 HEAD/GET)、缓存清理、缺失图标批量匹配、数据导入导出(JSON/HTML/网址精灵 data.json)。
- 体验:卡片布局展示图标+标题+描述+域名,hover 快捷操作;键盘导航与高亮搜索词(迭代)。
- Ctrl + 数字 (1-9, 0):按住 Ctrl 键会在前 10 个书签上显示数字提示,按下对应数字可快速打开该书签。
支持在书签 URL 中使用 {占位符} 语法创建快捷搜索书签,自动注册到 uTools 主搜索。
使用方式:
-
创建书签时,URL 填入带占位符的地址,例如:
- Google:
https://www.google.com/search?q={query}- 百度:https://www.baidu.com/s?wd={关键词}- GitHub:https://github.com/search?q={repo}
- Google:
-
唤出 uTools → 输入书签标题 → 按 Tab 进入参数输入 → 输入搜索词 → Enter 打开
- 新建书签弹窗:可选分组/二级分组,支持临时创建分组/二级;未选二级时自动落在“未分组”。
- 默认仅提供一级分组(含默认“未分组”子分类),用户按需扩展。
- 设置入口已包含:缺失图标一键补全、无效地址检测。
- 安装依赖:
pnpm install - 开发:
pnpm dev(无需额外执行时勿重复) - 构建:
pnpm build - UnoCSS 已启用,避免额外手写样式文件;主题通过 CSS 变量驱动。
- uTools 调试:插件中心 -> 开发者工具 -> 选择本目录;控制台在右上角“查看控制台”打开。
- Vite+Vue3+Pinia+UnoCSS+Naive UI 骨架,DM Sans 全局字体。
- 书签二级分组、搜索、快速添加、卡片展示(图标/标题/描述/域名)。
- 图标服务:本机网络抓取并写入
userData/bookmarks-icons,24h 冷却;缺失图标可在设置页一键补全;编辑 URL 时若无图标会自动尝试获取。 - 设置页:缺失图标批量匹配、无效地址探测(HEAD 请求,3s 超时)、多来源导入(JSON/HTML/网址精灵 data.json)。
本插件采用 uTools 当前提供的 MCP 工具契约,而不是另起一个无法被 uTools 调用的 HTTP/stdio 服务:plugin.json 负责声明 JSON Schema,preload 使用 utools.registerTool 注册,再经受限的事件桥接访问 React/Pinia 中的本地书签数据。
- 新增
get_mcp_capabilities:返回协议、传输方式、完整工具清单和写入安全提示,供 MCP 客户端先发现能力。 - 可读取分组树、分页列出/搜索/读取书签,也可打开书签;支持分组、子分组、书签和归属位置管理。
- 参数在 preload 侧会再次限制为 JSON 兼容的有限深度/大小,并过滤原型污染字段;具体字段仍以
plugin.json的inputSchema为准。 - MCP 写入工具会修改本机书签数据。调用方应先取得用户确认。
开发验收:bun run test:mcp 校验声明、注册表及一次 preload → 渲染层请求/响应往返;bun run build 校验插件构建。
src/应用入口与视图组件src/stores/书签与偏好状态src/services/图标缓存、网络请求、无效检测plugin.jsonuTools 插件清单utools-bookmarks-spec.md需求规格
- 书签列表虚拟化以支撑 1000+ 规模。
- 导出时可选 base64 内联以便跨设备迁移。
- 允许从 UnoCSS 图标集手动选图标作为替代。