程序聚合 软件案例 书签清理与归档器

书签清理与归档器

2026-06-01 17:08:04
行业:企业内部管理、生活服务
载体:插件
技术:TypeScript、React

业务和功能介绍

一、立项背景与目标
浏览器书签长期使用后往往杂乱无章,原生管理器缺乏批量整理和云端备份能力。本项目构建一个 Chrome 扩展,让用户在独立工作区中以可视化图谱方式导入、整理书签,支持写回浏览器或同步至 WebDAV 云端,并提供版本管理和撤销保护,确保操作安全可逆。
当前已落地工程基线、启动导入链路、草稿图谱编辑、本地备份恢复、WebDAV 同步等核心能力,浏览器覆盖写回仍在收尾中。
二、核心功能模块
草稿图谱(bookmark-graph):核心模块。以思维导图式布局展示书签树,支持节点创建(同级/子级)、重命名、编辑URL、删除、拖拽移动、键盘重排/提升,内置搜索、重复书签聚焦和 Ctrl+Z 撤销。节点分为 folder 和 bookmark 两类,来源标记为 browser 或 draft。
浏览器同步(browser-sync):启动引导模块。按"本地草稿优先 → 浏览器书签导入 → 首次持久化"策略完成工作区初始化。
WebDAV 同步(webdav):云端备份与恢复。支持草稿/书签快照上传,版本化存储(最多5版),支持从历史版本选择恢复并自动清理旧版本。
本地持久化(local-persistence):基于 chrome.storage.local 持久化草稿会话、WebDAV 配置和本地备份产物,覆盖操作前自动创建备份用于撤销保护。
浏览器书签适配器(browser-bookmarks):封装 Chrome 书签 API,提供读取、导入、导出和覆盖写回能力,写入失败时自动回退。
工作区入口(workspace-entry):处理扩展图标点击,实现打开或聚焦工作区页面。
三、业务流程
启动:点击扩展图标 → 打开工作区 → 检测本地草稿:有则恢复,无则读取浏览器书签导入并持久化。
编辑:在图谱工作区浏览书签树 → 通过菜单/快捷键编辑节点(创建、重命名、删除、拖拽) → 搜索查找或重复聚焦 → Ctrl+Z 撤销。
同步写回:触发"同步到浏览器" → 确认覆盖 → 自动备份浏览器书签 → 导出草稿为书签树写回浏览器 → 失败自动回退。
WebDAV 流程:配置服务端并测试连通 → 上传快照到云端(版本化存储) → 恢复时选择目标版本 → 确认前自动备份 → 执行恢复。
撤销保护:每次覆盖操作前自动备份当前状态,用户可通过"撤销覆盖"恢复到操作前的草稿或浏览器书签。

项目实现

一、整体架构与设计思路
项目采用五层架构:应用层(app)为 React 壳层与工作区编排;特性层(features)按业务域划分——bookmark-graph(图谱编辑)、browser-sync(启动引导)、webdav(云端同步)、workspace-entry(扩展入口);领域层(domain)为纯业务模型,不依赖框架;适配器层(adapters)隔离 Chrome 书签 API、chrome.storage.local、原生 fetch 等外部依赖;共享层(shared)管理文案和通用工具。
技术栈:React 19 + TypeScript + Vite,Vitest + Testing Library,Chrome Extension MV3,WebDAV 用原生 fetch。核心设计思路:业务真相在规范化草稿图谱层,浏览器和 WebDAV 是外部映射目标,所有覆盖操作先备份再执行,失败可回退。
二、负责模块与量化成果
独立完成 T01 至 T13 共 13 个里程碑,涵盖从工程 scaffold 到项目收尾的完整生命周期。
32 个源文件 + 35 个测试文件,约 21,600 行代码,测试文件数超过源文件数。已落地:浏览器书签读取/导入/导出/写回全链路(含失败自动回退);图谱 7 种编辑操作 + 键盘重排/提升;5 种变更类型的 patch 撤销;WebDAV 版本化上传(最多 5 版)+ 双端恢复;覆盖前自动备份,支持双端撤销恢复;35
个测试套件覆盖启动、编辑、拖拽、WebDAV、搜索、撤销等核心链路;状态历史与配置均持久化。
三、难点与解决方案
浏览器写回安全性:Chrome 书签 API 不可逆,中断会丢失书签。解决方案:writeManagedBrowserTree 先读快照作回滚基准,异常时自动反向回退,区分"回滚成功/失败"给出精确提示。
可视化图谱自研布局:未引入第三方图库,需手写思维导图布局。解决方案:实现递归 MindmapLayout 算法,参数化控制节点宽度、间距、分支颜色,支持 400+ 节点视口裁剪和窗口 resize 自适应。
WebDAV 权限适配:Chrome MV3 跨域需动态申请 host_permissions。解决方案:封装权限检测/申请为独立适配器,操作前显式检查,区分 denied/unavailable/invalid-origin 给出精确提示,状态持久化避免重复弹窗。
撤销与外部操作隔离:Ctrl+Z 应撤销编辑但不影响已完成的写回/上传。解决方案:撤销历史仅记录草稿内部变更,外部操作不进 undo 栈,通过 snapshotVersion 和 checkpoint 管理快照一致性。

示例图片视频


程序员晓枫
30天前活跃
方向: 前端-Web前端、后端-Python、
交付率:100.00%
相似推荐
智慧招商园区
本项目为办公园区提供智慧招商功能,为意向企业提供多维度园区信息查询、园区VR全景预览、智慧选址、地图导航等服务,同时提供相关政策图解等,方便企业快速选择合适的园区入驻,也为园区的快速招商引资提供便捷高效的宣发渠道 同时,整个园区的数据都可训练接入AI知识库,通过RAG检索和大模型处理,用户可在AI对话页面直接获取关键信息;可以对接第三方企业数据查询平台,实现企业报告查询的一站式服务.
辅助检查官的卷宗辅助系统-智能检察官系统
利用ocr、大模型对检查官办案过程使用的卷宗进行拆卷、编目、要素提取,后端使用java,前端vue3,完成卷宗解析的核心逻辑及配置功能,基于如上能力实现检察官办案过程中的证据审查、量刑、文书生成等功能。每天300+案件稳定处理
toc房产交易平台
1、该系统主要是通过政府公信力搭建一套市场化房产交易平台,解决市场上交易欺骗、信息不对等问题,旨在通过政府平台规范市场行为、引导市场正向发展。 2、该系统主要包含网站和移动端,前端展示待交易房源信息(含新房和二手房)供需方选择和咨询。具体业务功能包括房源发布(上架)、房源审核,意向签订及合同签订,交易付款,过户,政策事项申请、审批,房源(含楼盘)添加和审核,房源评估申请、评估、核定等功能。 3、该系统以房源出售挂牌→房源审核→意向沟通→洽谈→房源评估→签约→审核→付款→过户为主线业务流程进行设计,辅以便民事项功能,整体系统运行流程闭合,切实给市场化系统带来很多便利。
pdfToWordGO
PDF2Word Converter (Go + LibreOffice) 一个基于 Go 语言和 LibreOffice 的高性能 PDF 转 Word 桌面转换工具。通过守护进程模式与平台级窗口隐藏技术,解决了传统调用方式启动慢、控制台闪烁等痛点,提供流畅的本地文档转换体验。 ✨ 核心特性 🚀 极速转换:采用 LibreOffice 守护进程(Daemon)常驻模式,避免重复冷启动,二次转换提速 5-10 倍 🙈 静默运行:Windows 平台下完全隐藏外部进程控制台窗口,无黑框闪烁,体验纯净 🧹 优雅退出:自动监听系统中断信号,程序退出时安全清理后台 LibreOffice 进程,杜绝残留 🖥️ 跨平台兼容:通过 Go Build Tags 实现平台代码隔离,完美支持 Windows / macOS / Linux ⏱️ 精准计时:内置转换耗时统计,便于性能诊断与优化追踪
pdfToWordC#
PDF2Word Converter (.NET Core + avaloniaui) 一个基于 C# 语言和 avaloniaui 的 PDF 转 Word 办公桌面转换工具。通过单文件方式提供流畅的便携的本地文档转换体验。 ✨ 核心特性 🚀 极速转换:采用.NET 环境进行开发,充分利用语言性能,实现急速转换。 🖥️ 跨平台兼容:通过 .NET Core + avaloniaui 实现平台代码隔离,完美支持 Windows / macOS / Linux ⏱️ 精准计时:内置转换耗时统计,便于性能诊断与优化追踪
帮助文档   Copyright @ 2021-2024 程聚宝 | 浙ICP备2021014372号
人工客服