# BookmarkOrganizer **Repository Path**: blogwang/bookmark-organizer ## Basic Information - **Project Name**: BookmarkOrganizer - **Description**: 一个AI驱动的浏览器书签智能整理插件 - **Primary Language**: Unknown - **License**: MIT - **Default Branch**: main - **Homepage**: None - **GVP Project**: No ## Statistics - **Stars**: 0 - **Forks**: 0 - **Created**: 2025-10-24 - **Last Updated**: 2025-10-24 ## Categories & Tags **Categories**: Uncategorized **Tags**: None ## README # 智能书签整理插件 🔖 一款跨浏览器的智能书签管理工具,使用 AI 技术自动整理、分类和搜索您的书签,让书签管理变得简单高效。 ## ✨ 功能特性 ### 🤖 智能整理 - **一键整理**: 自动分析所有书签,生成智能标签和摘要 - **AI 驱动**: 支持本地 AI 模型和远程大模型 API(OpenAI 等) - **实时提醒**: 新增书签时主动提醒整理,保持书签库有序 ### 🔍 强大搜索 - **本地搜索**: 200ms 内快速搜索标题、URL、摘要和标签 - **标签过滤**: 支持多标签组合查询(AND/OR 模式) - **关键词高亮**: 自动标记匹配内容 - **多源联网搜索**: 集成百度、Bing国内版、360、搜狗、CSDN等国内主流搜索引擎 - **并行搜索**: 3秒内返回多个搜索源的结果,自动去重和合并 - **一键收藏**: 直接将在线搜索结果添加到书签,自动触发AI整理 - **搜索缓存**: 10分钟缓存避免重复请求,提升响应速度 ### 🏷️ 标签管理 - **独立管理面板**: 以标签为维度管理书签,查看、编辑、删除标签 - **标签关联**: 查看每个标签下的所有书签,支持快速跳转 - **标签合并**: 将多个相似标签合并为一个,保持标签库整洁 - **标签搜索**: 实时搜索标签,快速定位目标 - **未整理标签**: 自动标记无标签书签,确保所有书签都有归属 ### 📊 优化的书签管理 - **高性能表格**: 使用虚拟滚动技术,流畅处理1000+书签 - **多标签筛选**: 支持多选标签过滤,精确定位目标书签 - **行内编辑**: 双击单元格直接编辑标题、URL、标签,无需打开对话框 - **批量操作**: 批量选择书签,批量修改标签 - **灵活排序**: 按任意列升序或降序排序 - **智能分页**: 自定义每页显示数量,支持快速跳转 ### ☁️ 云存储同步 - **坚果云集成**: 通过WebDAV协议连接坚果云,安全可靠 - **配置同步**: 一键上传书签元数据、标签、设置到云端 - **换机恢复**: 在新设备上快速恢复所有配置 - **自动同步**: 支持定时自动同步(可自定义间隔) - **端到端加密**: AES-256加密,PBKDF2密钥派生(100000次迭代) - **冲突解决**: 智能检测同步冲突,提供多种解决策略 ### 🛡️ 安全评级 - **智能评分**: 自动评估网站安全性 - **多维检测**: Google Safe Browsing、证书验证、备案检测 - **可视化标识**: 绿色/橙色/红色盾牌图标直观显示安全等级 ### 🔐 隐私保护 - **本地存储**: 所有数据存储在本地 IndexedDB - **端到端加密**: AES-GCM-256 算法加密敏感数据 - **密码保护**: 云端数据使用独立密码加密,本地不存储明文 - **零账号登录**: 无需注册,无需上传数据(除非主动使用云同步) - **操作日志**: 记录所有云端操作,支持审计 ### 🌐 跨浏览器支持 - ✅ Chrome - ✅ Edge - ✅ Firefox ## 📦 安装说明 ### 从源码构建 #### 前置要求 - Node.js >= 16.0.0 - npm >= 8.0.0 #### 构建步骤 1. **克隆仓库** ```bash git clone https://gitee.com/blogwang/bookmark-organizer.git cd bookmark-smart-organizer ``` 2. **安装依赖** ```bash npm install ``` 3. **构建插件** 针对不同浏览器构建: ```bash # Chrome/Edge npm run build:chrome # Firefox npm run build:firefox # 所有浏览器 npm run build ``` 构建产物位于 `dist/` 目录。 4. **加载到浏览器** **Chrome/Edge:** 1. 打开 `chrome://extensions/` 或 `edge://extensions/` 2. 启用"开发者模式" 3. 点击"加载已解压的扩展程序" 4. 选择 `dist/chrome` 目录 **Firefox:** 1. 打开 `about:debugging#/runtime/this-firefox` 2. 点击"临时加载附加组件" 3. 选择 `dist/firefox/manifest.json` ## 🚀 使用教程 ### 第一步:一键整理书签 1. 点击浏览器工具栏的插件图标 2. 首次使用会自动打开设置页面 3. 点击"一键整理全部书签"按钮 4. 等待 AI 分析完成(显示进度条) ### 第二步:智能搜索 1. 点击插件图标打开弹出窗口 2. 在搜索框输入关键词 3. 使用标签过滤器精确查找 4. 点击结果即可打开书签 **快捷操作:** - `Enter` - 当前标签页打开 - `Ctrl + 点击` - 新标签页打开 - `Alt + 点击` - 后台静默打开 ### 第三步:联网搜索(可选) 1. 当本地搜索无结果时,点击"联网搜索更多" 2. 系统并行调用多个搜索源(百度、Bing、CSDN等) 3. 查看搜索结果卡片,包含网站图标、标题、描述、来源标签 4. 点击"一键收藏"添加到"在线发现"文件夹 5. 自动触发 AI 整理,生成标签和摘要 ### 第四步:标签管理(可选) 1. 打开设置页面,点击"标签管理"标签页 2. 查看所有标签及其关联的书签数量 3. 创建新标签、重命名或删除标签 4. 使用搜索框快速定位标签 5. 点击"查看书签"跳转到书签管理面板并自动筛选 6. 选择多个标签进行合并操作 ### 第五步:云存储同步(可选) 1. 打开设置页面,点击"云存储"标签页 2. 输入坚果云用户名、密码和服务器地址 3. 点击"连接坚果云"验证凭据 4. 设置加密密码(用于保护云端数据) 5. 点击"立即上传配置"将数据同步到云端 6. 在其他设备上使用"从云端恢复"功能恢复配置 7. 可选:启用自动同步,设置同步间隔 ## ⚙️ 配置选项 打开设置页面(右键插件图标 → 选项): ### AI 模式 - **本地模式**: 使用轻量级模型,无需网络,速度快 - **远程模式**: 使用大模型 API,准确度更高 ### 自动整理 - 开启后新增书签自动触发整理提醒 - 可设置提醒延迟时间(默认 30 分钟) ### 搜索源配置 - **启用/禁用搜索源**: 选择要使用的搜索引擎(百度、Bing国内版、360、搜狗、CSDN) - **搜索源优先级**: 调整搜索源的优先级顺序,影响结果排序 - **速率限制**: 配置每个搜索源的请求频率限制,避免被限流 - **超时设置**: 设置单个搜索源的超时时间(默认3秒) - **结果缓存**: 搜索结果自动缓存10分钟,提升响应速度 ### 云存储配置 #### 坚果云连接设置 1. **服务器地址**: 默认为 `https://dav.jianguoyun.com/dav/` 2. **用户名**: 您的坚果云账号邮箱 3. **密码**: 坚果云应用密码(非登录密码) - 登录坚果云网页版 - 进入"账户信息" → "安全选项" → "第三方应用管理" - 添加应用并生成专用密码 #### 加密设置 - **加密密码**: 设置独立的加密密码保护云端数据 - **加密算法**: AES-256-GCM - **密钥派生**: PBKDF2,100000次迭代,SHA-256哈希 - **重要提示**: 请妥善保管加密密码,丢失后无法恢复数据 #### 同步设置 - **手动同步**: 点击"立即上传配置"或"从云端恢复" - **自动同步**: 启用定时自动同步,可设置同步间隔(1-24小时) - **同步内容**: 书签元数据、标签定义、用户设置、整理队列 - **同步目录**: 自定义云端存储目录(默认 /BookmarkOrganizer/) - **冲突解决**: 检测到冲突时可选择保留本地、保留云端或手动合并 ### 隐私设置 - 数据加密开关 - 操作日志查看和导出 - 云端数据管理(查看大小、删除数据) ## 📊 数据管理 ### 导出数据 支持导出为 JSON 或 CSV 格式,方便备份和迁移。 ### 导入数据 支持从导出文件恢复数据,自动验证数据完整性。 ### 统计信息 - 总书签数 - 已整理书签数 - 标签总数 - 待处理队列 ## ❓ 常见问题解答 ### Q: 插件会上传我的书签数据吗? A: 不会。所有数据都存储在本地 IndexedDB 中,除非您主动使用联网搜索功能,否则不会有任何网络请求。 ### Q: 本地 AI 模式和远程模式有什么区别? A: 本地模式使用轻量级模型,速度快但准确度较低,适合快速整理。远程模式调用大模型 API(如 OpenAI),准确度高但需要网络和 API 密钥。 ### Q: 如何配置远程 AI API? A: 在设置页面选择"远程模式",输入您的 API 密钥(支持 OpenAI、Claude 等),点击验证后保存。 ### Q: 整理 1000 条书签需要多久? A: 本地模式约 30-60 秒,远程模式取决于 API 响应速度,通常 2-5 分钟。 ### Q: 标签是如何生成的? A: AI 会分析书签的标题、URL 和网页描述,提取关键信息生成 1-3 个结构化标签(格式:类别-子类别-功能)。 ### Q: 可以手动编辑标签吗? A: 可以。在设置页面的"书签管理"中,您可以拖拽调整标签顺序、添加或删除标签。 ### Q: 联网搜索的安全评级如何计算? A: 综合考虑 Google Safe Browsing 数据、HTTPS 证书有效性、网站备案信息和社区举报记录,计算 0-100 分的安全分数。 ### Q: 插件占用多少内存? A: 后台运行时通常占用 50-100MB,处理大量书签时可能短暂增加到 150MB。 ### Q: 支持同步到其他设备吗? A: 支持!通过坚果云集成,您可以将配置同步到云端,在其他设备上恢复。所有数据都经过AES-256加密,安全可靠。 ### Q: 联网搜索支持哪些搜索引擎? A: 目前支持百度搜索、Bing国内版、360搜索、搜狗搜索和CSDN搜索。系统会并行调用多个搜索源,自动去重和合并结果。 ### Q: 联网搜索会泄露我的隐私吗? A: 不会。搜索请求直接发送到各搜索引擎,不经过我们的服务器。搜索结果缓存在本地,10分钟后自动清除。 ### Q: 如何获取坚果云应用密码? A: 登录坚果云网页版 → 账户信息 → 安全选项 → 第三方应用管理 → 添加应用并生成专用密码。注意:这不是您的登录密码。 ### Q: 云端数据安全吗? A: 非常安全。所有上传到坚果云的数据都经过AES-256加密,密钥由您的密码派生(PBKDF2,100000次迭代)。即使坚果云被攻破,攻击者也无法解密您的数据。 ### Q: 忘记加密密码怎么办? A: 很遗憾,如果忘记加密密码,云端数据将无法恢复。建议使用密码管理器保存加密密码,或将密码写在安全的地方。 ### Q: 标签管理和书签管理有什么区别? A: 标签管理以标签为中心,查看、编辑、合并标签;书签管理以书签为中心,查看、编辑、筛选书签。两者互补,提供不同的管理视角。 ### Q: "未整理"标签是什么? A: 这是系统自动创建的特殊标签,用于标记没有任何标签的书签。当您删除书签的所有标签时,系统会自动添加"未整理"标签,确保所有书签都有归属。 ### Q: 如何卸载插件? A: 在浏览器扩展管理页面点击"移除"即可。本地数据会保留,如需彻底清除,请在卸载前使用"清空数据"功能。 ## 📄 许可证 MIT License - 详见 [LICENSE](./LICENSE) ## 📝 版本历史 ### v2.0.0 - 第二阶段增强功能(当前版本) **新增功能:** - ✨ 多源联网搜索:集成百度、Bing、360、搜狗、CSDN等国内主流搜索引擎 - ✨ 一键收藏:直接将在线搜索结果添加到书签,自动触发AI整理 - ✨ 标签管理系统:独立的标签管理面板,支持创建、编辑、删除、合并标签 - ✨ 云存储同步:通过坚果云WebDAV实现跨设备配置同步 - ✨ 端到端加密:AES-256加密保护云端数据 - ✨ 优化的书签管理:高性能表格、多标签筛选、行内编辑、批量操作 - ✨ 虚拟滚动:流畅处理1000+书签 **性能优化:** - ⚡ 搜索结果缓存:10分钟缓存避免重复请求 - ⚡ 并行搜索:3秒内返回多个搜索源的结果 - ⚡ 批量操作优化:使用事务批量处理,避免阻塞UI - ⚡ 防抖处理:搜索输入300ms防抖,减少不必要的请求 **安全增强:** - 🔐 PBKDF2密钥派生:100000次迭代,SHA-256哈希 - 🔐 操作日志记录:记录所有云端操作,支持审计 - 🔐 HTTPS强制:所有WebDAV请求使用HTTPS,验证SSL证书 ### v1.0.0 - 第一阶段核心功能 **核心功能:** - 🤖 AI驱动的智能整理 - 🔍 快速本地搜索 - 🛡️ 安全评级系统 - 🔐 本地数据加密 - 🌐 跨浏览器支持 --- **Made with ❤️ by [soberw]**