EasyDesktop 浏览器书签管理从未如此简单
作为一名软件开发从业人员, 每天80%的时间都在与浏览器打交道, 一半的时间在用浏览器开发调试, 另一半时间则是在互联网上搜寻各种知识和资源.
为此, 我的浏览器书签栏存储和很多非常棒的链接, 多到2k屏幕分辨率下一栏都放不下, 为此我只好把这些书签的名称改的短一点, 这样就能展示的更多, 但是这样的话, 整个书签栏就变得非常拥挤.
而在某一天下午, 我在手机的界面上无聊滑动, 看着页面上一个个应用的图标, 忽然觉得他们和浏览器书签栏里的网站链接很像, 我们在手机上安装很多的应用, 在浏览器收藏很多的书签, 这些应用和书签都给我们带来了很多美好的体验.
那么浏览器的书签如果能像手机的应用一样在多个页面中平铺开来, 看起来更舒服, 查找起来也更方便.
这就是我开发EasyDesktop的初衷, 让书签像电脑桌面一样平铺展示在浏览器的页面中.
我花了一个周末的时间, 快速的开发了一个原型版本, 它的功能非常简单, 直接读取浏览器的插件然后展示在new tab上.
为了保证和浏览器自带的书签在结构上保持统一, 在功能的设计上做了一些规则预设:
比如浏览器书签栏第一层的链接, 会自动生成类似 Macos下方的菜单栏, 因为这些链接被放在第一层, 则说明它们是最常使用的, 应该被固定在页面的最下方.
书签栏第一层的文件夹, 会自动生成一个书签页面, 内部的书签和文件夹则会以块的形式自由摆放, 这里因为使用的Grid布局技术的限制, 我没法做到让一个元素在可以拖拽的情况下还能点击, 最终只能把书签强制约束在文件夹内, 然后文件夹以块的形式呈现, 即使书签在第一层文件夹中没有被文件夹包裹.
所以, 如果你的tab页面里面, 多了一个 xx-杂项的文件夹, 不要惊讶, 那是把Tab文件夹内第一层零散的书签自动归纳生成的虚拟文件夹.
这样一来, 我们只需要把最常用的书签放在最外层, 然后把优先级低一点的放到第一个文件夹, 然后依次归纳其他的书签, 最后插件就可以根据书签栏的结构, 像电脑桌面一样把书签平铺展示出来.

原型版本发布之后, 自己重度使用了一段时间, 感觉非常不错, 但是还有不少细节可以优化.
于是在最近的几周, 利用周末闲暇时间, 又增补了一些功能, 主要有:
- 支持自定义背景图片(默认使用开发的 bing壁纸api), 整个界面不会再那么单调了, 同时支持调整遮罩的不透明度.
- 支持切换深浅色模式, 使用 shadcn-ui 提供的 theme 逻辑, 非常简单.
- 书签文件夹导出: 默认的浏览器书签导出, 只能全部导出, 如果我们想把自己的部分书签分享给别人, 操作起来十分麻烦, 于是我在文件夹的设置里面扩展了导出的功能, 可以直接把单个文件夹内的书签导出成浏览器支持的标准html文件.
- 文件夹/书签的重命名/删除: 本来打算做一个类似文件管理的通用面板, 但是UI的开发量太大了, 也没找到合适的开源库, 而且浏览器自带的书签管理器本身也很强大, 所以就折中一下, 把最基础的重写了一下, 对于需要批量调整和修改书签的, 可以直接跳转书签管理器编辑.
- 文件夹切换链接模式支持设置列数: 对于喜欢链接模式而且又想拉宽的朋友们应该很有帮助
目前是最新的插件效果

看起来有模有样.
这么好用的插件, 肯定要尽早地分享给大家, 欢迎下载体验:
Chrome商城安装地址
EasyDesktop 浏览器书签管理从未如此简单的更多相关文章
- Dewey – 标记和搜索 Chrome 浏览器书签
Dewey 是一个 Chrome 应用程序,用于标记,搜索和排序你的 Chrome 浏览器书签.借助 Dewey,您可以添加自定义标签,生成你的书签截图,灵活快捷的方式进行搜索和排序. 您可能感兴趣的 ...
- DAY6 使用ping钥匙临时开启SSH:22端口,实现远程安全SSH登录管理就这么简单
设置防火墙策略时,关于SSH:22访问权限,我们常常会设置服务器只接受某个固定IP(如公司IP)访问,但是当我们出差或在家情况需要登录服务器怎么办呢? 常用两种解决方案:1.通过VPN操作登录主机: ...
- 使用ping钥匙临时开启SSH:22端口,实现远程安全SSH登录管理就这么简单
设置防火墙策略时,关于SSH:22访问权限,我们常常会设置服务器只接受某个固定IP(如公司IP)访问,但是当我们出差或在家情况需要登录服务器怎么办呢? 常用两种解决方案:1.通过VPN操作登录主机: ...
- 接口测试从未如此简单 - Postman (Chrome插件)
接口测试从未如此简单 - Postman (Chrome插件) 一个非常有力的Http Client工具用来测试Web服务的, 我这里来介绍如何用它测试restful web service 注:转载 ...
- jspm 是浏览器包管理工具
jspm 是浏览器包管理工具. jspm 是 SystemJS 通用模块加载器的包管理器,基于动态 ES6 模块加载器 直接从任意的 registry(比如 npm 或者 GitHub)加载任意模块格 ...
- [转]使用ping钥匙临时开启SSH:22端口,实现远程安全SSH登录管理就这么简单
原文链接:使用ping钥匙临时开启SSH:22端口,实现远程安全SSH登录管理就这么简单 这个留待后面玩一下,还是有安全隐患,非核心业务 临时用一下可以. 设置防火墙策略时,关于SSH:22访问权限, ...
- 浏览器中 F12 功能的简单介绍
chrome浏览器中 F12 功能的简单介绍 由于F12是前端开发人员的利器,所以我自己也在不断摸索中,查看一些博客和资料后,自己总结了一下来帮助自己理解和记忆,也希望能帮到有需要的小伙伴,嘿嘿! 首 ...
- Idea书签管理器的使用
1. 添加书签 以光标所在的行,为落点, 方式一: F11 , 添加一个默认的书签 方式二:Crtl + Shift + 数字 , 添加一个带编号 的书签 2. 查看书签 方式一:Shift + F1 ...
- [转]chrome浏览器中 F12 功能的简单介绍
本文转自:https://www.cnblogs.com/zhuzhubaoya/p/9758648.html chrome浏览器中 F12 功能的简单介绍 由于F12是前端开发人员的利器,所以我自己 ...
- 【F12】chrome浏览器中 F12 功能的简单介绍
chrome浏览器中 F12 功能的简单介绍 由于F12是前端开发人员的利器,所以我自己也在不断摸索中,查看一些博客和资料后,自己总结了一下来帮助自己理解和记忆,也希望能帮到有需要的小伙伴,嘿嘿! 首 ...
随机推荐
- 【c#】JavaScriptSerializer 不序列化null值
首先引用dll :System.Web.Extensions. 再自定义转换器代码如下: public class JavaScriptSerilizeConvert : JavaScriptConv ...
- Android 12(S) MultiMedia Learning(七)NuPlayer GenericSource
本节来看一下NuPlayer Source中的GenericSource,GenericSource主要是用来播放本地视频的,接下来着重来看以下5个方法: prepare,start,pause,se ...
- win11通过注册表禁用鼠标右键
本经验分为5个步骤,详情如下. 工具/原料 华硕K5 win11专业版21H2 注册表22000.556 方法/步骤 同时按下"win"+"R"键,打开运行 ...
- 利用cycript动态调试app
一.准备 ios系统越狱环境 安装ssh 安装cycript 二.执行命令 找到进程注入: 6187 ?? 0:00.70 /var/containers/Bundle/Application/ 61 ...
- 发现了一个膨胀样式的css库
众所周知,对于前端来说css是最难的了,如果你遇到了一个脑洞大奇思妙想的产品,那就更难了. 很不巧,了不起就经受过这样的痛苦,产品经理看了HarmonyOS4的发布会,脑子一热就让设计师出了一套膨胀蓬 ...
- 霍夫变换原理及实现(Opencv C++)
已知一幅图像中的n个点,假设我们希望找到这些点中位于直线上的子集.一种可能的解决方法是,首先找到由每对点确定的所有直线,然后寻找靠近特定直线的那些点的所有子集.这种方法涉及寻找n(n-1)/2~n2条 ...
- 【Effective C++】设计与声明——考虑写出一个不抛异常的swap函数
wap是个有趣的函数.原本它只是STL的一部分,而后成为异常安全性编程的脊柱,以及用来实现自我赋值可能性的一个常见机制.所谓swap两对象值,就是将两对象的值交换. 典型实现 缺省情况下的swap动作 ...
- 算法金 | Python 中有没有所谓的 main 函数?为什么?
大侠幸会,在下全网同名[算法金] 0 基础转 AI 上岸,多个算法赛 Top [日更万日,让更多人享受智能乐趣] 定义和背景 在讨论Python为何没有像C或Java那样的明确的main函数之前,让 ...
- ts interface
在TypeScript中,接口(interface)用于定义对象的结构,可以描述对象的属性.方法等.下面是一个简单的例子,演示如何使用 TypeScript 接口: // 定义一个接口表示一个人的信息 ...
- switch的穿透
// switch 的 穿透 // 什么是switch的穿透 // 如果在 switch 中没有定义break , switch 会从定位的程序,一直执行到所有sw ...