自从大学拥有自己的第一台电脑开始,到现在大概有 15 年的时间了,电脑几乎可以说是每日必用,浏览器也必然陪伴我走过了各种日日夜夜。虽然早期的浏览器并没有现在这么丰富多彩的功能,但是书签却是一直以来都有的,也是使用频率最高的功能之一。本文主要介绍我这期间对浏览器书签功能的理解和使用心得,以及如何从零打造一个高效的浏览器书签系统。(文章封面由 AI 生成)
浏览器使用历程
1996 年,第一次真正意义上接触电脑(之前更多的是小霸王“学习机”🤓),是在小学附近的电脑房,当时还不叫网吧,黑白屏的 Windows 系统,速度极慢,还在用经典的 3.5 英寸软盘。这时候多数都是在打游戏或者看别人打游戏(仙剑奇侠传,YYDS),几乎没有使用过网络或者浏览器。
2001 年,随着网络游戏“传奇”大火,网络游戏遍地开花,网吧也开始逐渐多了起来,这一年经典操作系统 Windows XP 也正式发布,无形之中也给互联网时代的到来添了一把火。随着宽带入户,带宽越来越高,网络速度越来越快,以及搜索引擎的快速发展,浏览器逐渐开始步入了平时的生活中,即使偶尔去网吧,除了打游戏,也会或多或少用浏览器来看一看无所不有的大千网络世界。
2009 年,大学一年级的下学期,购买了人生中第一台电脑 ,当时电脑操作系统还是历史上被骂的最惨的 Windows Visita,系统自带的 IE 浏览器可以说是非常难用。所以早期使用最多的浏览器是 360 浏览器,当然这期间也少不了尝试各种其他的浏览器,例如火狐、Opera 等等。
2010 年,360 基于 Google 开源项目 Chromium 推出了 360 极速浏览器,这款浏览器由于速度上比其他浏览器要快得多,于是直接抛弃了其他浏览器。另外当时功能性、兼容性比 Google 的 Chrome 要强的多,更适合国内使用,所以就变成了唯一的选择。
2011 年,Chrome 发展迅速,功能日新月异,我依稀仍记得 Chrome 首次引入标签页时,那极致简洁的外观带来的视觉冲击感,加上有更丰富的插件和主题,自此开始,便逐渐开始使用 Chrome 作为主要的浏览器。
2015 年,从 Windows 平台转到了 macOS 平台,但是依旧使用 Chrome,没有转向 Safari,主要原因也是 Chrome 上的插件更加丰富,并且使用起来更加习惯。
书签垃圾场到宝藏
自从正式使用 Chrome 以来,才算真正意义上使用书签这个功能,因为在这之前的浏览器,都没有(或者没有使用)同步功能,存储的书签多数也都伴随着重装系统等丢失了。使用 Chrome 并登录 Google 账号,书签记录被自动同步到服务端,这才比较长久的留存了下来。同时,这也带来了使用书签的困惑:是知识的“宝藏”?还是一个什么都有的“垃圾场”?
书签的功能主要是在浏览网页时,把需要的页面(知识)链接保存下来,以供之后能够快速的进行重新利用,不用再次通过搜索引擎查找,提高效率。但是久而久之,书签会越存越多,如果没有持续进行很好的收集、整理,这就逐渐变成了“垃圾场”,没有起到书签该有的效果。
我也经历过几个阶段,来试图摆脱这个局面,可以供大家参考。
注意:任何操作之前,一定要使用浏览器导出书签,做一次书签备份,以防出现意外。
阶段一:Pocket
Pocket 是一个 App,可以将你要阅读或者一时没有读完的网页标记下来,接着同步到服务器端,然后就可以实现在不同的设备上继续阅读的功能。Pocket 几乎支持所有常见的设备,并且也有浏览器插件,使用时跟保存书签一样方便。
当我使用过一阵子后,我发现依旧脱离不了“垃圾场”这个局面,经过了反思,才发现 Pocket 并不是我需要的产品:
- 有些书签不是“知识”,而是“快捷方式”。这里用“少数派”来举一个不恰当的例子,当我想要打开少数派网站时,突然想不起地址是什么,但是记得少数派的名字,这时候用书签就能直接打开,功能符合“快捷方式”,然而把少数派存储在 Pocket 中是没有意义的。
- 大部份书签不需要记忆,但是需要检索。Pocket 的主要意义在于“阅读”,即刚好看到一篇不错的文章,而恰好当前没有时间阅读,这时把页面放入 Pocket 中,等到时间合适时,再拿出来阅读。而书签的大部份价值在于,内容只需要脑海中大概有印象,需要时再快速检索出来仔细看,这可以说与 Pocket 的设计目的背道而驰。
所以一段时间后,我便放弃了 Pocket 这个方案,继续硬着头皮使用浏览器的书签功能。
阶段二:URL Manager Pro
URL Manager Pro 是一个 macOS 上管理书签的 App,试用过一段时间,功能上比较符合需求,但是最终也放弃了这个产品:
- 付费应用,现在的价格是 34.99 美元,Logo 和 UI 可以说设计都很简陋(丑),另外对于功能比较单一,所以性价很低,不值得付费。
- 功能性不够。没有多标签功能(试用时好像没有标签功能,后来的版本提供了),当时觉得是必要功能之一;整体设计与浏览器一样,是目录结构,这也是我觉得比较讨厌的一点,一个页面可能符合多类标签,但是只能放到一个目录中,目录设计不好的话时间久了又是垃圾场。
- 比较核心的问题,功能比较割裂。一般来说,是通过浏览器上的收藏按钮来存取标签,而 URL Manager Pro 是通过菜单栏来操作,这就与常规操作行为不一致(更能接受的是浏览器插件按钮,与收藏按钮区别不大)。
经过使用 URL Manager Pro,又试用了其他几个类似的产品,终归还是 URL Manager Pro 功能相对最强大,所以这次转型继续失败,再次回到了浏览器的书签功能。
阶段三:linkding
在不断的折腾和摸索中,我逐渐总结出对于书签管理器的真正需求:
- 与浏览器行为一致的书签收藏行为;
- UI 不能过于简陋而影响使用体验;
- 对于书签能够标记多个标签,并能通过标签检索书签;
- 能够对于书签增加时间戳,以方便的对历史书签进行整理;
- 能够有一定的临时空间,存储一些只需要临时使用的书签。这在平时工作中非常重要,例如说同事发过来一些要看的工作内容,这往往需要一定的时间来处理,而此时恰好遇到会议需要共享屏幕,我会对浏览器标签页进行清理,如果能把这些页面放到临时空间中是一个不错的选择;
一次无聊间翻看 Alfred Gallery 时,恰好发现了一款关于查找书签的新 Workflow:linkding Bookmarks,好奇之下查看了 linkding 这个书签管理工具,发现符合了上面的一部份需求。
linkding 是一个开源的书签管理服务。对,没错,它不是一个 App,而是一个服务,你可以将它部署在服务端,也可以放在本地(或 docker 容器中)运行。
你可以在作者提供的 Demo 中进行尝试,整体体验非常不错,界面直观且简单易用,功能也可以说是恰到好处。
于是我便在 linkding 的基础上,配合一些浏览器插件、Alfred Workflow、以及自定义脚本等工具,彻底完成了标签从“垃圾场”到“宝藏”的改造。
从零打造指南
linkding 完成了标签收藏的主要功能,但是还需要一些其他 App 的配合,才能达到极致的完美和易用,下面是我的使用案例,以及每个步骤的详细讲解(主要针对 macOS 平台,Windows 平台只能提供一定程度上的参考)。
注:以下介绍的软件,默认都是免费软件,或功能可免费使用,收费软件及功能会明确说明。
linkding
首先是安装 linkding 服务,这里我采用的服务启动方式是本地 docker 容器中,如果你想采用其他安装方式(强烈推荐 docker 容器方式),可以参考作者官网指引。此外,如果你有多台设备需要共享书签,那么建议在一些公共设备上(例如家中的 NAS)部署该 docker 容器。
如果你不知道 docker 是什么,那么推荐你参考使用 OrbStack,它是一个可以在 macOS 上快速运行 docker 容器的工具,具有资源占用率低、高带宽、速度快等优点。
linkding 的安装过程是在终端中运行,步骤如下:
# 1. 下载 linkding 容器镜像;
docker pull sissbruecker/linkding:latest
# 2. 创建 linkding 的存储空间,一是避免容器重启后数据丢失,二是后面步骤中会用到该 volume;
docker volume create linkding
# 3. 启动 linkding 服务(默认 9090 端口);
docker run --name linkding -p 9090:9090 -v linkding:/etc/linkding/data -d sissbruecker/linkding:latest
# 4. 设置默认管理员用户(注意替换用户名和邮箱地址),并在提示中输入密码;
docker exec -it linkding python manage.py createsuperuser --username=<username> --email=<email-address>
linkding 安装完成之后,打开浏览器并在地址栏中输入 http://localhost:9090
就可以进入到 linkding 的登录页面,输入上面创建的用户名和密码即可正式进入到 linkding 系统中了。
Chrome
我在 Chrome 中使用了以下几个插件,来配合书签的使用,完成上面提到的部份需求。
linkding-extension
为了达到与书签收藏一致的行为,这里使用 linkding 的官方浏览器插件:linkding-extension,插件的主要功能是在你的 linkding 服务中创建或者更新书签。
安装完成浏览器插件后,需要对该插件进行配置,以连接到 linkding 服务,具体步骤如下:
- 在 linkding 主页中,选择 Settings 选项,并继续选择 Integrations 选项,复制 REST API 验证用的 Token;
- 对安装的浏览器插件进行设置,在 linkding 插件上右键,并选择“选项”,在接下来的选项窗口中,分别填写 linkding 服务的地址,以及复制好的 REST API 验证用的 Token;
OneTab
OneTab 是一个一键将所有浏览器标签页关闭,并将其转换为列表的浏览器插件。
OneTab 很好的完成了临时书签的功能,例如当会议前需要共享屏幕,可以快速把浏览器标签关闭,只打开会议所需的内容。
我不会用 OneTab 存储大量的标签内容,基本上只有最近需要处理的事项。不需要的页面及时关闭,有价值的页面转化为书签,保证这里不会再变成一个“垃圾场”。这是这个插件使用时需要注意的地方。
Speed Dial 2
Speed Dial 2 是一个替代浏览器新标签页的插件。
为什么用这个插件?最开始是因为它拥有更好用的书签功能:可以隐藏浏览器书签栏,使得浏览器看起来更加简洁美观。需要使用书签时,打开一个新的浏览器标签页(此时为 Speed Dial 2 的快速拨号页面),将鼠标移动到页面边缘,即可显示书签栏,并且带有搜索框,可以很好的检索书签。
后来发现,打开新的标签页,这个首先映入眼帘的快速拨号页面,才是它的灵魂功能。把日常最常用的书签保存在这里,随便打开一个标签页,一次点击就能直达,省事又省心。
所以现在 Speed Dial 2 中常驻最常用的标签,是提升效率的一大利器。
Alfred
Alfred 是一款 macOS 上的效率神器,本文不展开介绍。其基本功能是免费的,如果需要使用接下来介绍的 Workflow 功能,则需要付费购买 Powerpack。
这里就要介绍前面提到的 linkding Bookmarks 这个 Workflow 了,linkding Bookmarks 将 Alfred 和 linkding 关联到一起,通过使用 Alfred 来查找 linkding 中存储的书签,使得使用 linkding 更高效,彻底解决了书签检索的问题。
需要注意的是,linkding Bookmarks 依赖于 jq,你可以通过 Homebrew 手动安装或者通过 Alfred 的依赖检查来安装。
Hazel
Hazel 是一款 macOS 上的自动化应用,可以监控文件或文件夹的更新,来自动化执行某些任务或操作,它是一款收费软件。
这里使用 Hazel 的主要目的是给 linkding 存储的书签做备份,使用 linkding 之后书签没办法再通过 Google 自动备份。为了保证数据不丢失,需要自己来想办法进行备份操作(希望 linkding 后续版本中能够引入网盘备份功能)。另外,备份的文件直接使用 iCloud 来进行自动的服务端备份,以防止本地数据丢失问题。具体步骤如下:
- 在 iCloud 云盘中,创建一个 linkding 文件夹;
- 在安装 linkding 过程中,创建了 linkding 这个 volume,使用 OrbStack 有个很强大的功能:直接挂载容器内容到 Finder 中。所以在 Hazel 中,可以直接添加 OrbStack 挂载的 linkding 这个目录(
OrbStack/docker/volumes/linkding
); - Hazel 中创建新的规则,如果
db.sqlite3-wal
这个文件有更新,则触发执行脚本进行备份操作,脚本内容如下:
now=`date "+%Y%m%d-%H%M%S"`
# 1. 使 linkding 执行完整备份操作;
docker exec -i linkding python manage.py full_backup /etc/linkding/data/backup.zip
# 2. 将备份文件复制到 iCloud 创建的 linkding 文件夹中;
docker cp linkding:/etc/linkding/data/backup.zip ~/Library/Mobile\ Documents/com\~apple\~CloudDocs/linkding/backup-$now.zip
总结
经过不断的探索和改进,总算拥有了一个使用上舒心的书签系统,不但生活工作上书签的使用效率有大幅提升,而且随着时间增长,书签系统会逐渐沉淀成“宝藏”,这才是最有价值的所在。
当然期望未来 Chrome 或者其他浏览器能够有这么一套功能完善的书签系统,我也会持续探索、不断改进,把浏览器书签系统打造的更加符合自己的需求。