项目仓库:https://github.com/Benbinbin/TagDown

简介

TagDown 是一款开源的书签管理插件, 您可以使用扩展程序浏览新增修改书签,它也支持以不同方式导出书签。

扩展程序的 UI 设计图

 

🔗 Introduction English Version

特点

  • 支持 🎬 新增书签,并附加额外的信息,例如 tagsgroups
  • 支持 🎬 导出任意书签为 json 文档
  • 以 🎬 树图的形式浏览层级结构的书签数据
  • 一键打开多个书签,支持在 🎬 标签组内打开书签
  • IndexedDB 数据库支持 🎬 WebDAV 备份
  • 支持将书签 🎬 分享为 Gist

💡 该扩展程序使用两部分数据,存储在 Chrome 中的书签数据和保存在 IndexedDB 数据库中关于书签的额外数据,它们都保存在本地。额外附加的信息是「非破坏性」的,即卸载扩展程序后,不会影响浏览器的书签数据

安装

1.下载最新版本的 TagDown zip 文件并解压

2.根据官方指南「加载已解压的扩展程序」:

  • 打开 Chrome 浏览器并访问 chrome://extensions 网址
  • 在页面的右上角激活 开发者模式
  • 点击左上角 加载已解压的扩展程序 选择解压后的文件夹以安装扩展程序

3.然后您可以使用此扩展程序和 Chrome 作为您的书签管理器。请尝试使用!

💡 🎬 此系列视频是关于扩展程序的使用说明

数据

TagDown 使用 Chrome 提供的 APIs 与书签和标签进行交互,它不依赖于任何后台服务器,所以所有数据都存储在本地浏览器中

💡 如果您的 Chrome 浏览器登录账号,并打开同步选项,书签将由 Google 进行同步,这样您可以使用同一账户在不同设备之间共享书签(如果您使用微软推出的 Edge 浏览器,它也是基于 Chromium 内核进行开发的,也可以安装该插件,书签将由微软进行同步)。

除了通过调用 Chrome 的 APIs 来使用书签外,TagDown 还将一些数据保存在 IndexedDB 中,这是一个由浏览器提供的数据库,用于持久性地存储数据。当您 🎬 通过 TagDown 添加新书签,可以为新书签提供额外的信息,如 tagsgroupsdescription 等,这些数据将保存在 IndexedDB 中,它们不会被 Google 同步,它总是保存在本地。

TagDown 提供了 🎬 exportimport 功能,您可以将整个 IndexedDB 数据库导出为 json 文件并保存在您指定的地方作为备份,并通过导入该文件恢复数据库。

💡 Chrome 会为每个书签分配一个唯一的 ID,TagDown 使用这个唯一的 ID 作为 IndexedDB 的索引,将数据库中不同部分的数据与不同的书签相匹配。

⚠️ 如果您想在 IndexedDB 为书签创建一条相应记录,请在新增书签时优先使用 TagDown 插件。话虽如此,如果在安装 TagDown 之前,浏览器中已经存在很多书签,或者您顺手用 Chrome 的默认工具创建书签也是没问题,因为之后您还可以通过修改书签的方式,手动添加数据到 IndexedDB 数据库中。

常见疑问解答

TagDown 为什么需要使用 IndexedDB 数据库?

虽然书签都保存在浏览器中,但它们只包含 idtitleurl 和文件夹信息,TagDown 希望给书签附加更多的信息,如 tagsdescription 等,因此使用一个内置在浏览器中的本地数据库来保存这些数据。

如何同步、备份、分享数据?

数据是属于您的,因此您可以随时导出该扩展程序的数据。

  • 如果您希望导出全部书签数据,请使用浏览器提供的默认导出功能,您将会得到一个 HTML 文件:
  1. 进入书签管理器:chrome://bookmarks/
  2. 点击页面右上角的汉堡菜单(三个小点)
  3. 从下拉菜单中选择 导出书签
  • 如果您希望 🎬 导出存储在 IndexedDB 中关于部分书签的额外数据,可以在扩展程序的设置页面点击相应的按钮导出,您将得到一个 JSON 文件
  • 如果您希望同步全部书签数据,请在 Chrome 中登录账号,并打开同步选项,书签将由 Google 进行同步,这样您可以使用同一账户在不同设备之间共享书签。
  • 如果您希望备份存储在 IndexedDB 中关于部分书签的额外数据,可以在扩展程序的设置页面中 🎬 配置 WebDAV 服务,例如使用坚果云进行同步备份。

⚠️ 如果希望使用坚果云以外的 WebDAV 服务,需要将修改扩展程序文件夹下的 manifest.json 文件,将 WebDAV 服务器地址添加到 host_permissions 属性中。例如希望支持的服务器地址为 https://example.com/dav,则 host_permissions 属性应为

{
  // 省略显示其他部分
  "host_permissions": [
    "https://dav.jianguoyun.com/dav/",
    "https://example.com/dav"
  ],
  // 省略显示其他部分
}

如果卸载/移除扩展程序会丢失哪一部分数据?

书签保存在浏览器中并由 Google 同步(如果您使用 Chrome 并打开同步选项),因此如果您卸载扩展程序,请放心,所有书签都不会受影响

但是 TagDown 创建并保存在 IndexedDB 中的相关数据将会丢失。 您可以在卸载扩展前 🎬 导出 这些数据,获得的 json 文件可以作为备份数据库,下次重新安装扩展时可以导入以恢复 IndexedDB 相关数据。

顺便说一句,JSON 格式的文件是很常见的,您可以使用其他文本编辑器打开它,例如 Visual Studio Code,直接浏览文档内容。

如果重新安装扩展程序会丢失哪一部分数据?

当安装解压后的扩展时,Chrome 会给每个扩展分配一个唯一的 ID,而 IndexedDB 遵循同源策略限制,如果Chrome 为 TagDown 分配了另一个 ID,那么在重新安装扩展后,可能会导致 IndexedDB 数据丢失

您可以在卸载扩展之前导出这些数据,这个 json 文件可以作为一个备份数据库,您可以在下次重新安装扩展时导入它。

如何升级 TagDown?

如果从 TagDown v1.0.0 升级到 v2.0.0 可以直接卸载原有旧版本,安装新版本。但是从 v2.0.0 版本开始 TagDown 使用数据库,而重新安装扩展程序可能会导致 IndexedDB 数据丢失,所以之后的升级,您只需要直接用新版本的文件夹覆盖替换原来的扩展的文件夹。

在浏览器中保存的书签数据与 IndexedDB 中保存的数据的区别

IndexedDB 数据是浏览器书签数据的副本,它在书签上都附加有其他信息。

但事实上,它并不是一个完整拷贝

只有通过 TagDown 创建或修改过的书签,才会在 IndexedDB 中有相应的记录。因此,导出的 Indexed 数据库所获得的 JSON 文件可能并不包含所有书签。

如果您想得到所有的书签数据,请使用浏览器提供的默认导出功能,您将会得到一个 HTML 文件:

  1. 进入书签管理器:chrome://bookmarks/
  2. 点击页面右上角的汉堡菜单(三个小点)
  3. 从下拉菜单中选择 导出书签

如何为所有标签页批量创建书签?

Chrome 提供了「为所有标签页添加书签」的功能,以批量创建书签,您可以使用快捷键 Ctrl + Shift + D 来触发该功能。

强烈推荐使用另一个扩展程序 OneTab,它关闭所有标签,并返回一个带有相应链接列表的页面,也可以将该页面开启在线功能,共享给其他人查看。

Wiki

在 Github wiki掘金可查看该项目的开发笔记。

版本

  • v2.1.0 新增 WebDAV 同步备份功能,新增 Gist 同步分享功能。优化了弹出框的交互,提供更多自定义选项。
  • v2.0.0 提供两种模式,树图模式网格模式,以浏览器和可视化层次化的书签数据,您可以在 2.0.0 版本中添加新书签和编辑现有书签,并添加 tagsgroups 等额外信息。 通过附加到书签的 tag 和 group,您可以以多种方式导出书签。 所有数据都将保存在本地,您可以随时导出整个数据库或导入备份以恢复它,因此请尝试使用该扩展程序和 chrome 作为您的书签管理器。
  • v1.0.0 提供两种模式,浏览和可视化层次化的书签数据。