Skip to content

SaXz2/orca-tabs-plugin

Repository files navigation

Orca Tabs Plugin

为 Orca Note 提供浏览器式标签页管理功能的强大插件,支持多面板、拖拽排序、工作区管理等高级特性。

Version License

✨ 核心特性

📑 标签页管理

  • 多面板支持 - 独立管理多个面板的标签页,互不干扰
  • 智能标签读取 - 自动识别活跃编辑器块,生成对应标签
  • 拖拽排序 - 支持标签页拖拽重新排序
  • 标签固定 - 双击标签固定重要页面,防止意外关闭
  • 快速切换 - 点击标签即可跳转到对应块和面板
  • 块类型识别 - 自动检测并显示20+种块类型图标

🎨 个性化定制

  • 自定义样式 - 支持读取块的 _color_icon 属性
  • 主题适配 - 自动适配 Orca 明暗主题
  • 响应式布局 - 支持水平和垂直两种布局模式
  • 可拖拽悬浮栏 - 自由定位标签栏位置
  • 毛玻璃效果 - 优雅的背景模糊效果

🚀 高级功能

  • 工作区管理 - 保存和切换不同的标签页集合
  • 最近关闭 - 记录最近关闭的标签页,支持一键恢复
  • 多标签保存 - 保存常用标签页组合,快速切换
  • 贴边隐藏 - 标签栏贴边自动隐藏,节省屏幕空间
  • 气泡模式 - 垂直布局下的紧凑显示模式
  • 侧边栏对齐 - 自动与侧边栏对齐,保持界面整洁

⚡ 性能优化

  • 防抖机制 - 减少不必要的更新操作
  • 批量处理 - 优化 DOM 操作性能
  • 内存保护 - 防止内存泄漏
  • 懒加载 - 按需加载功能模块

📦 安装

方式一:从 Releases 下载(推荐)

  1. 访问 Releases 页面
  2. 下载最新版本的插件包
  3. 解压到 Orca Note 插件目录
  4. 重启 Orca Note

方式二:从源码构建

# 克隆仓库
git clone https://github.com/SaXz2/orca-tabs-plugin.git
cd orca-tabs-plugin

# 安装依赖
npm install

# 构建插件
npm run build

# 构建产物在 dist/ 目录

🎯 使用指南

基础操作

标签页操作

  • 切换标签 - 点击标签页
  • 关闭标签 - 中键点击标签页
  • 固定标签 - 双击标签页(固定后显示 📌 图标)
  • 拖拽排序 - 拖动标签页到目标位置
  • 右键菜单 - 右键标签页查看更多操作

新建标签页

  • 块菜单 - 右键块标选择"在新标签页打开"(后台打开)
  • Ctrl+点击块引用 - 按住 Ctrl 点击块引用在后台新标签页打开
  • 加号按钮 - 点击标签栏的 + 按钮新建标签页

高级功能

工作区管理

  1. 点击顶部工具栏的工作区按钮
  2. 选择"保存当前工作区"
  3. 输入工作区名称和描述
  4. 在工作区列表中快速切换

最近关闭标签页

  1. 点击顶部工具栏的最近关闭按钮
  2. 查看最近关闭的标签页列表(最多20个)
  3. 点击恢复需要的标签页

多标签页保存

  1. 点击顶部工具栏的保存按钮
  2. 选择"保存当前标签页集合"
  3. 自定义名称和图标
  4. 在集合列表中管理和切换

布局切换

  • 水平布局 - 标签页横向排列,适合宽屏显示
  • 垂直布局 - 标签页纵向排列,适合侧边显示
  • 固定到顶部 - 将标签栏固定到 Orca 顶部工具栏
  • 右键新建标签页的 + 按钮切换布局模式

贴边隐藏

  1. 在设置中启用"贴边隐藏功能"
  2. 将标签栏拖动到屏幕边缘
  3. 标签栏会自动隐藏,只露出提示边缘
  4. 鼠标悬停时自动展开

气泡模式(仅垂直布局)

  1. 在设置中启用"气泡模式"
  2. 标签页会以紧凑的气泡形式显示
  3. 鼠标悬停时展开显示完整内容

快捷键

快捷键 功能
Ctrl + 点击块引用 在后台新标签页打开
中键点击标签 关闭标签页
双击标签 固定/取消固定标签
拖动标签 重新排序标签

⚙️ 配置选项

插件设置

在 Orca Note 设置中找到"Orca Tabs Plugin"配置项:

  • 主页块ID - 设置新建标签页的默认块ID(必填)
  • 缓存编辑器数量 - 控制最大标签页数量
  • 显示块类型图标 - 是否在标签页中显示块类型图标
  • 在顶部栏显示按钮 - 是否在 Orca 顶部工具栏显示插件按钮
  • 启用最近关闭标签页 - 是否记录最近关闭的标签页
  • 启用多标签页保存 - 是否允许保存标签页组合
  • 刷新后恢复聚焦标签页 - 软件刷新后是否自动打开当前聚焦的标签页
  • 启用工作区功能 - 是否启用工作区管理
  • 启用中键固定标签页 - 中键点击是否固定标签页
  • 启用双击关闭标签页 - 双击是否关闭标签页
  • 隐藏标签页提示 - 是否隐藏标签页的悬停提示
  • 启用贴边隐藏功能 - 是否启用贴边隐藏
  • 启用气泡模式 - 是否启用气泡模式(仅垂直布局)
  • 调试模式 - 启用详细日志输出

块属性支持

在块属性中设置以下属性可自定义标签样式:

  • _color - 设置标签背景色(60%透明度)和文字颜色,需要 type=1
  • _icon - 设置标签图标(emoji或文本),需要 type=1

注意:只有同时具有 _color_icon 属性的标签才会应用加粗字体

🏗️ 项目结构

orca-tabs-plugin/
├── src/
│   ├── main.ts                 # 插件主入口
│   ├── constants.ts            # 常量定义
│   ├── types.ts                # TypeScript 类型定义
│   ├── orca.d.ts               # Orca API 类型定义
│   ├── libs/                   # 第三方库
│   │   └── l10n.ts             # 国际化支持
│   ├── services/               # 服务层
│   │   ├── storage.ts          # 存储服务
│   │   └── tabStorage.ts       # 标签页存储服务
│   ├── features/               # 功能模块
│   │   ├── contextMenu/        # 右键菜单
│   │   ├── recentlyClosed/     # 最近关闭
│   │   ├── tabSets/            # 标签页集合
│   │   └── workspace/          # 工作区管理
│   ├── utils/                  # 工具函数
│   │   ├── blockUtils.ts       # 块处理工具
│   │   ├── domUtils.ts         # DOM 操作工具
│   │   ├── dialogUtils.ts      # 对话框工具
│   │   ├── tabOperationsUtils.ts # 标签页操作工具
│   │   ├── performanceUtils.ts # 性能优化工具
│   │   └── ...                 # 其他工具模块
│   └── translations/           # 翻译文件
│       └── zhCN.ts             # 中文翻译
├── dist/                       # 构建产物
├── scripts/                    # 构建脚本
│   ├── package.js              # 打包脚本
│   └── release.js              # 发布脚本
├── release-package/            # 发布包
├── package.json                # 项目配置
├── tsconfig.json               # TypeScript 配置
├── vite.config.ts              # Vite 构建配置
└── README.md                   # 项目文档

🛠️ 开发

开发环境

# 安装依赖
npm install

# 启动开发服务器(在 Orca 沙箱中运行)
npm run dev

# 类型检查
npm run typecheck

# 构建生产版本
npm run build

# 预览构建结果
npm run preview

# 清理构建产物
npm run clean

构建命令

# 完整构建流程
npm run build

# 监听模式构建
npm run build:watch

# 打包发布
npm run package

# 版本发布
npm run release:patch   # 补丁版本 (2.9.0 -> 2.9.1)
npm run release:minor   # 次版本 (2.9.0 -> 2.10.0)
npm run release:major   # 主版本 (2.9.0 -> 3.0.0)

技术栈

  • TypeScript - 类型安全的 JavaScript 超集
  • Vite - 快速的构建工具
  • React - UI 组件库(peer dependency)
  • Valtio - 状态管理(peer dependency)
  • date-fns - 日期处理库

代码规范

  • 使用 TypeScript 编写所有代码
  • 遵循两空格缩进
  • 优先使用箭头函数
  • 接口和类型使用 PascalCase
  • 变量和函数使用 camelCase
  • 提交信息使用中英文混合,以动词开头

📝 版本历史

v2.9.0 (当前版本)

  • 完整的标签页管理系统
  • 工作区功能
  • 最近关闭标签页
  • 多标签页保存
  • 贴边隐藏和气泡模式
  • 性能优化和内存保护

v2.3.5

  • 🔧 工作区功能重构优化
  • 🐛 修复工作区切换导航问题
  • ⚡ 性能优化
  • 🛠️ 修复面板索引冲突

v2.3.3

  • 🚀 完整的工作区管理系统
  • 📁 工作区管理界面
  • 🔄 快速切换工作区
  • 💾 数据持久化

v2.3.2

  • 🚀 标签集合详情中的备注功能
  • 💭 备注编辑系统
  • ➕ 添加到已有标签组功能
  • 🔄 标签集合管理增强

v2.3.1

  • 🚀 顶部置顶布局
  • 🔧 界面优化和修复
  • 📏 垂直布局宽度调整优化
  • 🎨 样式系统重构

v2.3.0

  • 🚀 最近关闭标签页功能
  • 💾 多标签页保存功能
  • 🎯 智能对话框层级管理
  • 🐛 修复多个问题

v2.2.1

  • 🚀 智能块类型检测系统
  • 🎨 块类型图标显示
  • 🔧 内容解析优化
  • 📍 位置管理增强

v2.1.6

  • 🐛 修复侧边栏交互问题
  • 🐛 修复日期块导航问题
  • 🐛 修复拖拽状态问题
  • 🔧 优化事件处理机制

v2.1.5

  • 🐛 修复固定标签页被替换问题
  • 🔧 优化标签插入逻辑
  • 🛡️ 增强固定标签保护

v2.1.4

  • 基础功能完善

❓ 常见问题

Q: 标签栏什么时候会显示?
A: 当检测到活跃的编辑器块时自动显示,会实时监听 DOM 变化。

Q: 标签数量有限制吗?
A: 是的,受"缓存编辑器数量"设置控制,默认为 10 个。

Q: 标签栏位置会丢失吗?
A: 不会,位置保存在 Orca 存储中,应用重启后自动恢复。

Q: 如何固定标签?
A: 双击标签可以切换标签的固定状态,固定标签会显示 📌 图标。

Q: 如何关闭标签?
A: 可以使用中键点击或右键菜单来关闭标签。

Q: 为什么有些标签无法关闭?
A: 固定标签默认不可关闭,只有一个标签时也无法关闭。

Q: 在固定标签上打开新标签会发生什么?
A: 新标签会自动插入到固定标签的后面,保持固定标签的位置和状态不变。

Q: 工作区和标签页集合有什么区别?
A: 工作区会完全替换当前标签页,而标签页集合只是保存一组标签供快速添加。

Q: 贴边隐藏和气泡模式可以同时启用吗?
A: 可以,但气泡模式仅在垂直布局下生效。

Q: 如何重置插件设置?
A: 在 Orca 设置中找到插件配置,删除相关设置项即可恢复默认值。

🤝 贡献

欢迎提交 Issue 和 Pull Request!

  1. Fork 本仓库
  2. 创建特性分支 (git checkout -b feature/AmazingFeature)
  3. 提交更改 (git commit -m 'Add some AmazingFeature')
  4. 推送到分支 (git push origin feature/AmazingFeature)
  5. 开启 Pull Request

📄 许可证

本项目采用 MIT 许可证 - 查看 LICENSE 文件了解详情。

🙏 致谢

  • Orca Note - 优秀的笔记应用
  • 所有贡献者和用户的支持

📮 联系方式


⚠️ 重要提示:首次使用请务必在设置中配置"主页块ID",否则可能出现 BUG!

设置方法:选中需要设置为新标签页的块 → 右键块标 → 选中更多 → 复制块ID → 粘贴到插件设置页面中的主页块ID中

About

用于Orca Note 的TAB显示插件

Resources

License

Stars

Watchers

Forks

Packages

 
 
 

Contributors

Languages