# BookmarkSyncToGit **Repository Path**: ysjyga/bookmark-sync-to-git ## Basic Information - **Project Name**: BookmarkSyncToGit - **Description**: 跨设备书签同步浏览器扩展,使用 GitHub / Gitee / Gitea 仓库作为同步后端。把你浏览器的书签自动备份到 Git 仓库,并在多台电脑之间实时同步。 - **Primary Language**: Unknown - **License**: MIT - **Default Branch**: master - **Homepage**: None - **GVP Project**: No ## Statistics - **Stars**: 0 - **Forks**: 0 - **Created**: 2026-07-13 - **Last Updated**: 2026-07-14 ## Categories & Tags **Categories**: Uncategorized **Tags**: None ## README # BookmarkSyncToGit 跨设备书签同步浏览器扩展,使用 GitHub / Gitee / Gitea 仓库作为同步后端。 ## 安装 1. 打开 `chrome://extensions`(或 `edge://extensions`) 2. 开启「开发者模式」 3. 点击「加载已解压的扩展」 4. 选择 `BookmarkSyncToGit` 目录 ## 配置 Git 服务器 右键扩展图标 → 设置,填写: | 字段 | 说明 | |------|------| | 平台 | GitHub / Gitee / Gitea | | Token | Personal Access Token | | 仓库所有者 | 用户名 | | 仓库名 | 存放书签的仓库 | **Token 权限要求:** - GitHub:`repo` - Gitee:`projects`、`user_info` - Gitea:`write:repository` 首次使用点「测试连接」验证配置,成功后点「同步到 Git」上传本地书签。 ## 使用 | 按钮 | 功能 | |------|------| | 同步到 Git | 双向同步:推送本地变更,拉取远端新增/删除 | | 从 Git 拉取 | 仅拉取:导入远端新增,同步远端删除 | | 从 Git 恢复 | 清空本地书签,用远端数据完整替换 | | 导出 | 导出本地书签到 JSON 文件 | | 导入 | 从 JSON 文件导入书签 | ## 自动同步 | 触发方式 | 延迟 | |----------|------| | 书签变更(增删改移) | 5 秒 | | 定时后台同步 | 1 分钟(可在设置中调整) | ## 技术架构 ``` Popup / Settings │ sendMessage() ▼ Service Worker │ importScripts() ▼ git-sync.js ── fetch() ──→ GitHub/Gitee/Gitea API │ │ │ GET/PUT /repos/{owner}/{repo}/contents/bookmarks.json │ chrome.bookmarks API ←── 读写本地书签 ``` ### 同步流程 ``` fullSync() ├── fetchRemoteBookmarks() 拉取远端 bookmarks.json ├── chrome.bookmarks.getTree() 读取本地书签 ├── 跨设备删除检测 上次快照有、远端没有 → 本地删除 ├── 本机删除检测 上次快照有、本地没有 → 推送时排除 ├── 远端新增导入 远端有、本地没有 → 导入到浏览器 └── pushBookmarks() 推送合并后的本地书签 ``` ### 存储 - `chrome.storage.local` — 配置、快照、同步状态 - `chrome.bookmarks` — 浏览器书签(唯一真实数据源) - Git 仓库 `bookmarks.json` — 跨设备同步中间层 ## 兼容性 - Chrome / Edge / Chromium 内核浏览器 - Manifest V3 - 支持 GitHub API、Gitee API v5、Gitea API v1 ## 许可 MIT