Skip to content

Latest commit

 

History

History
287 lines (233 loc) · 11.2 KB

File metadata and controls

287 lines (233 loc) · 11.2 KB

Obsidian Workflowy 插件

一个强大的 Obsidian 插件,将 Markdown 笔记转换为 Workflowy 风格的大纲编辑器,提供流畅的块级编辑体验。

English

✨ 功能特性

🎯 核心功能

  • 双模式切换:在传统 Markdown 编辑和 Workflowy 风格大纲编辑之间无缝切换
  • 块级编辑:类似 Workflowy 的层级结构和块操作体验
  • 实时同步:保持 Obsidian 原生 Markdown 格式,完全兼容现有笔记
  • 零干扰设计:采用功能隔离架构,不影响 Obsidian 原生 Markdown 编辑体验

⌨️ 快捷键操作

快捷键 功能
Enter 创建新块
Backspace 删除空块/合并块
Delete 删除字符/与下一块合并
Tab / Shift+Tab 增加/减少缩进
Ctrl+Shift+↑/↓ 上下移动块
Alt+Enter 折叠/展开块
Shift+Enter 块内换行
Ctrl+Enter 切换待办状态
Ctrl+Z 撤销
Ctrl+Y / Ctrl+Shift+Z 重做
Ctrl+Backspace 清空块内容
Ctrl+Shift+Backspace 删除当前块
Alt+↑/↓ 缩放导航(上一层/下一层)
↑/↓ 块间导航
/ 打开斜杠命令菜单
# 打开标签建议菜单
Ctrl+滚轮 调整字体大小(10-30px)
Escape 取消多选/关闭菜单
Ctrl+A 全选块(多选模式下)

🎨 界面特性

  • Workflowy 风格界面:简洁的圆点标记和层级缩进线
  • 折叠展开:支持块的折叠和展开(点击三角形图标、垂直缩进线或按 Alt+Enter
  • 缩放功能:点击圆点可缩放到特定块,专注编辑子内容
  • 实时搜索:快速查找和高亮匹配内容(支持高亮和过滤模式)
  • 拖拽重排序:直观的拖拽操作重新排列块
  • 多选操作:支持多选块进行批量操作(支持按住 Ctrl 点击或鼠标左键拖拽选择)
  • 主题切换:内置多种主题,支持明暗模式
  • 响应式设计:完美适配桌面和移动设备

📝 编辑模式

  • 源码模式:直接编辑 Markdown 文本
  • Live Preview 模式:实时渲染 Markdown,所见即所得
    • 完整的 Markdown 格式支持(加粗、斜体、链接、标题等)
    • 内部链接预览和导航
    • 嵌入支持(图片、笔记、块引用)
    • 代码语法高亮

⚡ 斜杠命令菜单(新功能)

输入 / 触发斜杠命令菜单,快速插入:

命令类型 功能
时间 设置任务时间 [HH:MM],支持时间范围(兼容 TickTickSync)
优先级 🔺最高 / ⏫高 / 🔼中 / 🔽低 / ⏬最低(兼容 obsidian-tasks)
日期 📅截止日期 / ⏳计划日期 / 🛫开始日期 / ➕创建日期 / ✅完成日期
状态 ☐待办 / ◐进行中 / ☑已完成 / ⊘已取消 / •普通项目

🏷️ 标签建议(新功能)

输入 # 触发标签建议菜单:

  • 自动读取 Vault 中的所有标签
  • 实时过滤匹配标签
  • 键盘导航选择
  • 快速插入标签

✅ 多状态待办支持(新功能)

支持四种待办状态,兼容 obsidian-tasks 插件:

  • [ ] 待办
  • [/] 进行中
  • [x] 已完成
  • [-] 已取消

🔗 链接支持

  • 内部链接([[笔记]])点击跳转
  • 标题链接([[笔记#标题]])滚动并高亮
  • 块引用([[笔记#^blockid]])精确导航
  • 嵌入链接(![[笔记]])点击跳转
  • Ctrl+悬停显示预览弹窗
  • Ctrl+Alt+点击或Shift+点击分屏打开

📎 链接建议

输入 [[![[ 触发链接建议:

  • 自动搜索 Vault 中的文件
  • 输入 # 选择标题
  • 输入 ^ 选择块引用
  • 支持模糊搜索和键盘导航

🔀 跨文档拖拽

  • 普通拖拽:在不同文档间移动块
  • Alt+拖拽:创建块引用(![[file#^blockid]]
  • 自动生成符合 Obsidian 规范的块 ID
  • 支持多选块批量拖拽

📝 Thino 兼容(新功能)

兼容 Thino/Memos 插件格式:

  • Tab 缩进支持:第1级列表项的续行内容支持 Tab 缩进
  • 自动时间戳:创建新块时自动添加时间戳
  • 时间戳格式:可选择 HH:mmHH:mm:ss 格式
  • 无缝切换:Markdown 和大纲视图切换时保持 Tab 缩进不变

✍️ Live Preview 编辑增强

在 Live Preview 模式下支持 Markdown 快捷键:

快捷键 功能
Ctrl+B 加粗
Ctrl+I 斜体
Ctrl+K 插入链接
Ctrl+Shift+H 高亮
右键菜单 更多格式选项

📱 移动端工具栏

移动端底部固定工具栏,提供快捷操作:

按钮 功能
≡← 减少缩进
→≡ 增加缩进
+ 新增节点
切换待办
B 加粗
I 斜体
收起键盘

📁 文件拖拽与粘贴

  • 拖拽文件:将文件拖入编辑器自动插入链接
  • 粘贴图片:直接粘贴剪贴板图片,自动保存并插入
  • 拖拽图片:拖入图片文件自动上传并插入链接
  • 支持自定义附件保存路径

📖 使用方法

切换视图

切换到 Workflowy 视图:

  1. 打开任意 Markdown 文件
  2. 使用命令面板(Ctrl/Cmd+P)搜索"切换大纲/Markdown视图"
  3. 或右键文件选择"打开为大纲笔记"

切换回 Markdown 视图:

  1. 在 Workflowy 视图中,使用命令面板搜索"切换大纲/Markdown视图"
  2. 或右键选择"打开为Markdown"

基础操作

  • 创建块:按 Enter 在当前块后创建新块
  • 缩进管理:使用 TabShift+Tab 调整层级
  • 移动块:使用 Ctrl+Shift+↑/↓ 或拖拽移动
  • 折叠/展开:点击左侧三角形图标、点击垂直缩进线或按 Alt+Enter
  • 缩放聚焦:点击圆点可缩放到该块,专注编辑其子内容
  • 多选操作:按住鼠标左键上下拖拽,或按住 Ctrl 点击多个块进行批量操作

搜索功能

  • 点击搜索图标或使用顶部搜索栏
  • 高亮模式:高亮匹配内容,显示所有块
  • 过滤模式:仅显示包含搜索词的块
  • 支持区分大小写选项

📦 安装方法

手动安装

  1. Releases 下载最新版本
  2. 解压到 Obsidian 插件目录:{vault}/.obsidian/plugins/obsidian-workflowy-plugin/
  3. 在 Obsidian 设置中启用插件

使用 BRAT

使用 BRAT 允许你直接从 GitHub 安装并自动更新插件:

  1. 安装 Obsidian Community Plugins 的 BRAT 插件
  2. 在设置 → 社区插件中启用 BRAT
  3. 打开 BRAT 设置,点击 "Add Beta plugin"
  4. 输入仓库网址:https://github.com/springrain1/obsidian-workflowy-plugin
  5. 点击 "Add Plugin",BRAT 会自动安装 obsidian-workflowy-plugin
  6. 在设置 → 社区插件中启用 obsidian-workflowy-plugin

提示:BRAT 会自动检查更新,并在新版本可用时通知你。

⚙️ 配置选项

UI 设置

  • 缩进大小:自定义层级缩进距离(默认:30px)
  • 主题选择:多种内置主题可选
  • 显示圆点:切换圆点标记显示
  • 显示折叠指示器:切换折叠箭头显示
  • 显示垂直线:切换垂直缩进线显示
  • 动画效果:启用/禁用界面动画
  • 字体大小:自定义编辑器字体大小(也可用 Ctrl+滚轮调整)
  • 行高:自定义行高倍数
  • 圆点对齐:选择圆点对齐方式(顶部/居中/底部)
  • 字体来源:选择字体来源(跟随主题/系统字体/自定义)

编辑器设置

  • 渲染模式:选择源码模式或 Live Preview 模式
  • 自动保存:启用自动保存,可配置延迟时间
  • 占位符文本:自定义空块占位符
  • 附件路径:配置文件附件的保存位置

功能开关

  • 斜杠命令:启用/禁用斜杠命令菜单(/
  • 标签建议:启用/禁用标签建议(#
  • 链接建议:启用/禁用链接建议([[
  • 跨文档拖拽:启用/禁用在不同文档间拖拽块
  • 自动块 ID:Alt+拖拽时自动生成块 ID
  • 移动端工具栏:启用/禁用移动端底部工具栏

搜索设置

  • 搜索模式:高亮模式或过滤模式
  • 区分大小写:切换大小写敏感搜索
  • 自动展开匹配:自动展开包含匹配内容的折叠块

拖拽设置

  • 启用拖拽:切换拖拽功能
  • 显示放置指示器:拖拽时显示视觉反馈
  • 允许嵌套放置:允许将块作为子块放置

折叠状态记忆

  • 启用:在文档中记住折叠状态
  • 标记符:自定义折叠状态标记(以 HTML 注释形式存储)

Thino 兼容

  • 启用 Thino 模式:支持第1级列表项的续行内容使用 Tab 缩进
  • 自动时间戳:创建新块时自动添加时间戳
  • 时间戳格式:可选择 HH:mmHH:mm:ss 格式

🏗️ 技术架构

核心组件

  • BlockEditor:块级编辑逻辑和状态管理
  • OutlineParser:Markdown 与大纲结构的双向转换
  • WorkflowyView:自定义视图组件
  • IsolationLayer:功能隔离系统,确保不干扰原生 Obsidian

数据流

Markdown 文件 ↔ OutlineParser ↔ BlockEditor ↔ WorkflowyView ↔ 用户界面

隔离架构

插件采用 5 层隔离架构设计:

  1. ViewStateManager:视图状态追踪
  2. IsolationLayer:边界强制执行
  3. CommandProxy:命令拦截
  4. EventDelegator:事件隔离
  5. RuntimeValidator:运行时验证

这确保了插件功能完全独立,不会影响 Obsidian 原生 Markdown 编辑体验。

🔧 兼容性

  • Obsidian 版本:0.15.0+
  • 平台支持
    • ✅ Windows / macOS / Linux 桌面端
    • ✅ iOS / Android 移动端
    • ✅ 平板设备(iPad / Android Tablet)
  • 主题兼容:完美支持所有 Obsidian 主题,自动适配明暗模式

📱 移动端优化

  • 触摸交互优化:所有交互元素符合 44px 最小触摸目标标准
  • 响应式布局:自动适配不同屏幕尺寸
  • 优化字体大小:移动端使用 16px 字体,防止自动缩放
  • 简化缩进:移动端使用更小的缩进间距,节省屏幕空间
  • 触摸拖拽:支持触摸拖拽重排序
  • 平台自动检测:自动识别设备类型并应用相应优化

🤝 贡献指南

欢迎提交 Issue 和 Pull Request!

🙏 致谢

💬 反馈与支持