Skip to content

web-dahuyou/NiceTab

Repository files navigation

NiceTab

NiceTab

扩展安装

  • 谷歌 Chrome 应用商店:Chrome Web Store
  • 微软 Edge 商店:Microsoft Edge Addons ((由于审核周期比较长,版本发布会比Chrome版本慢))
  • Firefox 暂未发布。

基础介绍

  • 本项目是一个方便快捷管理浏览器标签页的浏览器插件。
  • 取名 NiceTab 是希望它是一个用起来很 nice 的 tab 标签页管理工具(不过本人的UI和交互设计太差,只能凑合凑合了)。
  • 类似于 OneTabN-Tab 等标签页管理插件,支持谷歌ChromeFirefox微软Edge等浏览器。
  • 采用 react 语言,基于wxt框架开发(wxt框架内置 vanilla | vue | react | svelte | solid 语言的初始化模板)。
  • UI直接使用了 Ant Design 这个常用的 UI 框架。

项目初衷

我本人有点强迫症,浏览器标签页开多了就会焦虑,而且想要在众多标签页中切换到指定的页面也比较费劲儿。
后来用上 OneTab 之后,管理标签页方便了不少,提升了效率也节省了内存。因此很长一段时间一直使用 OneTab 插件来管理浏览器标签页。

经过一段时间对 OneTab 的使用体验,个人感觉有几个点不是特别顺手:

  • 标签组虽然能重命名,但是导出后再导入就会丢失。
  • 由于标签组重命名会丢失,所以我懒得花时间重命名,当标签组积累多了之后,很难找到指定的标签组。
  • 插件图标右键菜单经常会出现好几个重复的菜单组,其中只有一个菜单组是能用的,但是你得挨个试才知道。
  • 有时候我只是想要将一些标签页收藏进列表,并不想关闭它们,但是 OneTab 没有对应的设置项(这个只是我个人体验)。
  • 还有就是,我想将某个标签组中的标签页移动到新的标签组,但是又没办法创建标签组,只能通过插件图标发送标签页到 OneTab 列表来创建新标签页。
  • 。。。

另外,N-Tab 插件是开源的,当我看了它的源码后发现技术栈相对比较老旧,想参与共建有心无力了。

基于上面几点原因,最终促使我开发了 NiceTab 这个插件,在借鉴 OneTabN-Tab 等插件现有部分功能的基础上,添加了一些其他的功能。

功能介绍

  • 支持分类、标签组、标签页管理,包括一键收集保存、恢复、星标、锁定、增删改查、拖拽排序等功能。
  • 分类支持展开/收起,支持创建分类和标签组,方便移动其他标签组/标签页到新分类/新标签组。
  • 支持多种插件格式的 导入/导出 功能,支持导出到本地。目前支持 NiceTabOneTab 格式的交叉导入导出(比如:可选择导入OneTab格式并导出为NiceTab格式;或者将NiceTab格式导出为OneTab格式),后续可根据需求增加其他插件格式的导入导出功能。
  • 支持远程同步,您可根据需求将标签页同步到自己的 github 和 gitee 账号,只需要配置自己的 access token 即可(注意 token 权限只勾选 gists 操作),后期看看能否扩展配置其他平台方案。
  • 支持手动切换亮色/暗黑主题
  • 支持皮肤主题切换,目前暂时设置了有限的几种主题色提供选择,后续可根据需求扩大选择范围。
  • 支持多语言,目前暂时支持中英文切换 (非地道英语,期待英语大佬帮忙校正)。
  • 支持回收站功能,回收站中的标签页可还原到标签列表或者彻底删除。标签列表和回收站支持根据分类和标签组归类合并,方便管理。
  • 支持设置 发送标签页时-是否自动关闭标签页
  • 支持设置 发送标签页时-是否打开NiceTab管理后台
  • 支持设置 发送标签页时-是否发送固定标签页到NiceTab
  • 支持设置 恢复标签页/标签组时-是否保留或删除标签页/标签组
  • 支持设置 是否固定NiceTab管理后台
  • 支持设置 删除标签页时, 是否自动删除空标签组
  • 支持设置 发送标签组/标签页时是否去重
  • 支持标签页手动去重。
  • 支持一键发送 所有标签页、当前标签页、其他标签页、左侧标签页、右侧标签页。
  • 支持发送新版浏览器自带的标签组到NiceTab, 支持以标签组形式打开到浏览器。
  • 支持快捷键(目前只添加了分类、标签组的上下移动排序的快捷键操作,后续可根据需求添加其他功能的快捷键操作)。
  • 标签页支持自定义编辑修改标题和url。
  • 添加固定置顶的特殊分类-中转站,发送标签页/标签组时自动收集到中转站中。
  • 添加标签组按字母排序功能
  • 支持一键复制标签组所有标签页的链接, 复制链接支持自定义模板

功能截图

点击扩展图标

  • 点击扩展图标,弹出popup面板。
  • popup面板,可快速访问 列表页,设置页面,导入导出页面,回收站页面。
  • popup面板,可快捷切换主题色。
  • popup面板,可快捷访问和关闭当前打开的标签页。

NiceTab-扩展图标点击

NiceTab-扩展图标点击

右键菜单

右击扩展图标,展示右键菜单,可打开扩展管理后台页面。支持 一键发送 所有标签页、当前标签页、其他标签页、左侧标签页、右侧标签页。

NiceTab-扩展图标右键菜单

扩展管理后台-列表页

  • 管理发送到NiceTab的标签页,支持分类,标签组管理。
  • 左侧列表支持拖拽和快捷键排序,右侧面板展示当前分类中的所有标签组和标签页,可进行相应的操作。
  • 支持标签组删除和跨分类移动,以及多选标签页删除和跨标签组移动。

NiceTab-列表页

扩展管理后台-偏好设置页

您可根据自己的喜好,作相应的偏好设置。

NiceTab-偏好设置页

扩展管理后台-导入导出

导入导出功能目前支持 NiceTabOneTab 格式的交叉导入导出。

  • 可导入 OneTab 格式的列表并解析为 NiceTab 格式。
  • 可将 NiceTab格式的列表导出为 NiceTabOneTab 格式。

NiceTab-导入导出

远程同步功能

您可根据需求将标签页同步到自己的 github 和 gitee 账号,只需要配置自己的 access token 即可。
注意:token 权限只勾选 gists 操作,后期看看能否扩展配置其他平台方案

NiceTab-远程同步功能

主题色切换

插件支持主题色切换,您可以在扩展管理后台页或者 popup 弹窗中进行切换。

NiceTab-主题色切换

亮色/暗黑主题切换

插件支持亮色/暗黑主题切换,您可以在扩展管理后台页中进行切换。

NiceTab-亮色-黑暗主题切换

切换语言

插件支持语言切换,您可以在扩展管理后台页进行切换。

NiceTab-切换语言

扩展管理后台-回收站

  • 分类、标签组、标签页删除后,会保留到回收站,您可将回收站的分类、标签组等还原到列表页或者彻底删除。

NiceTab-回收站

使用

  • 点击扩展图标,打开popup面板,显示当前已打开的标签页列表,可快速访问扩展管理后台,快速切换主题。
  • 右击扩展图标,展示快捷操作菜单,可发送标签页到扩展管理后台。
  • 打开管理后台,可进行语言切换和主题切换。
  • 打开管理后台,可进行亮色/暗黑主题切换。
  • 打开管理后台 > 标签列表页,查看已发送的标签页列表,支持分类和标签组管理。
  • 打开管理后台 > 设置页,可保存扩展的偏好设置。
  • 打开管理后台 > 导入导出页,可进行NiceTab和OneTab格式的标签页导入导出操作。
  • 打开管理后台 > 同步页,可根据需求将标签页同步到自己的 github 和 gitee 账号,只需要配置自己的 access token 即可(注意 token 权限只勾选 gists 操作)。
  • 打开管理后台 > 回收站页,可查看和管理从标签列表页中删除的分类、标签组、标签页,并进行还原和删除操作。

更新计划

  • NiceTab 和 OneTab 格式导入导出功能
  • 回收站功能
  • 切换皮肤功能
  • 支持切换亮色/暗黑主题
  • 支持多语言(目前暂时支持中英文切换)
  • 标签页支持自定义编辑修改标题和url
  • 版本检测,提示更新
  • 发送标签页支持浏览器自带的标签组单独成组,打开NiceTab标签组时支持以浏览器自带标签组形式打开。
  • 新增设置项:删除标签页时, 是否自动删除空标签组
  • 新增设置项:发送标签组/标签页时是否去重
  • 远程同步功能:由于 Chrome Api限制,远程同步有数据大小和频次限制,大小限制 100K,频次限制 1次/2秒。所以采用将标签页同步到自己的 github 和 gitee 账号,只需要配置自己的 access token 即可(注意 token 权限只勾选 gists 操作)
  • 发送标签页操作添加快捷键
  • 扩展图标右键菜单支持按需配置
  • 其他

参考链接

插件开发

  • 依赖安装:npm install
  • 启动插件服务:npm run dev

注意:每个js文件都必须有 export default 默认导出,否则本地启动服务时会报错。