README file from
GithubBlock Editor
English | 简体中文
Notion 风格的 Obsidian 块编辑插件:块手柄、拖拽排序、多选、块类型转换、分栏与块颜色。仅桌面端。

功能
-
块手柄:鼠标悬停或光标所在块的左侧显示六点拖拽手柄(Notion 样式),对应块浅色高亮
-
拖拽排序:拖动块出现浮动预览与插入指示线(宽度取编辑器行宽);拖到编辑区上下边缘自动滚动;拖到列表 / 引用 / Callout 正文右侧变为其子块(缩进 4 个字符,可用「缩进步长」调整),向左拖出自动降级缩进;拖到普通段落 / 标题右侧时自动把目标转为列表项(
-前缀)并把被拖块缩进为其子项(Markdown 下只有列表项有父子结构);拖到目标块左 / 右边缘快速与它合成两栏分栏;按住 Alt 拖拽 = 复制到落点;支持跨分屏拖到其他文档(移动 = 目标插入 + 源删除,Alt 同样为复制;同一文件的分屏按文档内移动处理) -
拖动动作提示:拖动时浮动预览上实时显示松手将执行的动作——移动 / 缩进为子块 / 复制(Alt)/ 移动到其他文档 / 复制到其他文档(Alt)/ 分栏 · 左 / 分栏 · 右,不会出现落点提示时(拖回自身等)不显示
-
多选:Shift + 点击手柄把块加入 / 移出选区,可整组拖动、删除、复制、批量转换类型;Esc 退出多选
-
块菜单:点击手柄弹出菜单——18 种类型互转(代码块带 30 种语言子菜单、Callout 带 26 种类型子菜单)、折叠块展开 / 折叠切换、上/下方插入块、复制块内容 / 生成块 ID / 引用其他块…、创建副本(副本不带块 ID)、上移 / 下移、块颜色(设置 / 清除)、分栏(组合为分栏 / 添加分栏 / 添加一栏 / 追加一行 / 取消分栏)、本块字数、删除(标题为删除整段)
-
斜杠命令:正文输入
/模糊搜索(子序列匹配 + 相关度排序,中英文可混查)快速转换块类型,或插入媒体嵌入(图片 / 音频 / 视频 / PDF,从仓库选择附件;代码块内自动禁用) -
块 ID:生成易拼写的
^block-id(正确处理代码块 / 列表等结构化块 ID 独立成行的规则)、复制块链接、图形化「引用其他块…」(选笔记 → 选块 → 插入[[笔记#^id]]链接)、一键清除全文块 ID(带确认框,防误触) -
分栏:Shift 多选相邻块后菜单「组合为分栏」(按空行切段,每段一栏);阅读视图并排显示;Live Preview 渲染为并排分栏,点击展开为源码编辑,点击外部自动收回;支持多行分栏(「追加一行」,宽度按
60-40/60-40/50-50分配)与栏内编辑(拆分一栏 / 合并右栏 / 插入一栏 / 行上移 / 行下移);外壳可写gap=radius=valign=border覆盖默认外观,子栏可写bg=bg-dark=设背景色;分栏块菜单还支持「添加一栏」「取消分栏」,可整体拖动 / 删除 / 跨文档搬运 -
块颜色:任意块可设置背景色(预设色板 / 原生取色器 / 自定义 hex);hex 浅色自动推导深色主题配色与正文对比色,深浅主题自动跟随
-
链接打开位置:内部链接
[[...]]可配置在当前标签页 / 新标签页 / 分屏 / 新窗口打开;Ctrl/Cmd+点击等修饰键行为不受影响 -
命令面板:
Alt+↑/↓移动块、缩进 / 反缩进、打开块菜单、生成块 ID、引用其他块…、重复当前块、设置 / 清除块颜色、清除块 ID,以及每种类型独立的「转换为」命令
设置
设置 → Block Editor:
| 设置项 | 默认 | 说明 |
|---|---|---|
| 显示块手柄 | 开 | 关闭后仅保留命令与斜杠入口 |
| 手柄跟随光标 | 开 | 关闭后仅在鼠标悬停时显示手柄 |
| 块悬停高亮 | 开 | 悬停时给手柄对应的块加一层浅色高亮背景 |
| 高亮颜色 | 跟随主题 | 自定义悬停高亮背景色;留空跟随当前主题的悬停色 |
| 高亮透明度 | 0.55 | 悬停高亮背景的透明度(0~1) |
| 实验:实时预览自渲染分栏 | 开 | 开启后实时预览中分栏由插件自渲染(双击进入编辑);关闭时显示原生嵌套 callout |
| 启用斜杠命令 | 开 | / 建议开关 |
| 拖拽自动滚动 | 开 | 拖到边缘自动滚动 |
| 缩进步长 | 自动 | 固定空格数或自动检测全文最小缩进;同时决定拖动嵌套插入的缩进(自动时为 4) |
| 点击链接时的打开位置 | 当前标签页 | 点击内部链接 [[...]] 时在哪里打开;Ctrl/Cmd+点击等修饰键行为不受影响 |
| 默认栏间距 | 10 px | 分栏外壳未写 gap= 参数时的栏间距 |
| 默认圆角 | 8 px | 分栏外壳未写 radius= 参数时的栏圆角 |
| 默认垂直对齐 | 拉伸(等高) | 分栏外壳未写 valign= 参数时的栏垂直对齐方式 |
| 默认边框 | 关 | 分栏外壳未写 border 参数时是否显示栏边框 |
| 手柄尺寸 | 20 px | 编辑器左侧块手柄的大小 |
| 拖拽阈值 | 4 px | 按住手柄拖动的判定位移,小于该位移视为点击弹出块菜单 |
开发
npm install # 安装依赖
npm run dev # 监听构建(开发时用)
npm run build # 类型检查 + 生产构建 → main.js
npm test # 行为对照测试(未登记用例对照 scripts/legacy-main.cjs)
npm run test:update # 有意变更行为后重新生成预期差异基线 scripts/parity-baseline.json
开源许可
本项目基于 MIT 许可证开源,你可以自由使用、修改和分发,只需保留原始版权与许可声明。
Copyright (c) 2026 MarcBolo
许可证全文见 MIT License。