Siyuan v2.10.13 版本解析:文档树与块拖拽交互改进、数据同步稳定性及插件新能力
本篇基于 Siyuan 官方变更记录 v2.10.13.md(含 中文版)展开。v2.10.13 是一次以交互体验为核心的发布:重点改进文档树与编辑器块的拖拽交互、修复若干编辑器解析缺陷,并提升了特定文件系统上的数据同步稳定性;同时为插件开发者带来 switch-protyle 事件总线、app.appId 常量、集市包 keywords 字段等多项新能力。读完本篇,你可以完整掌握该版本 25 项功能改进、4 项缺陷修复与 11 项开发者向变更的细节,并结合仓库源码理解其中关键能力的落地位置。
版本概述
官方对本版本的一句话定位是:改进文档树和编辑器块拖拽的交互体验,同时改进数据同步稳定性。变更记录按四个维度组织:
| 类别 | 条目数 | 代表内容 |
|---|---|---|
| 改进功能(Enhancement) | 25 | 更多页签切换快捷键、块拖拽交互改进、文档树拖拽识别改进 |
| 修复缺陷(Bugfix) | 4 | 含数据库模板创建日记的解析异常、折叠标题转文档后块不显示 |
| 开发重构(Refactor) | 1 | 升级 Electron |
| 开发者(Development) | 11 | 插件事件总线 switch-protyle、插件常量 app.appId、集市包 keywords 字段 |
以下按功能域逐条解析。
编辑器与块交互改进
这是本版本篇幅最大的改进域,直接对应“改进编辑器块拖拽交互体验”的主线:
- 支持更多切换页签的自定义快捷键(issue #9210):页签间的键盘导航能力扩展,适合多文档并排工作流;
- 改进块拖拽交互体验(#9502)与改进图标拖拽交互(#9502):拖动块与拖动图标时的命中判定和视觉反馈均有优化;
- 改进文档树子文档拖拽识别(#9505):文档树场景下把子文档拖放到目标节点时的落点识别更准确;
- 支持聚焦状态下“跳转到父级的下一个块”(#9527):在块聚焦编辑模式下,键盘导航可以跳出当前容器块,向上进入父层结构后移动到下一块;
- 改进块属性值为空时自动删除属性(#9529):属性清空后对应的属性行会被自动移除,避免残留空属性;
- 公式与图表编辑框非正常关闭时也保存数据(#9515):编辑 KaTeX 公式或图表时,即使弹窗被异常关闭,输入内容也不会丢失;
- 查找替换支持 HTML 块(#9539):正文中的 HTML 块纳入全文搜索替换范围;
- 只读模式下图片菜单可用(#9557):只读(阅读)状态下点击图片依然能调出图片操作菜单;
- 改进引用搜索框位置(#9533)。
文档导航、页签与浮层行为
- 关闭所有页签后更新应用程序标题(#9498):页签全部关闭时窗口标题回归默认状态,不再残留已关闭文档名;
- 鼠标位于浮窗中时不显示浮动停靠栏(#9535):浮动窗口与停靠栏的联动逻辑修正,避免两者互相干扰;
- 移动端取消钉住插件的交互改进(#9503);
- 移动端搜索界面创建文档的归属改进(#9522、#9544):在移动端搜索页新建文档时,新文档会保存到当前打开文档所属的笔记本下,而非默认笔记本;右侧面板也补充了新建文档入口;
- Android 平板支持“在浏览器上使用”(#9523):平板设备上可以在系统浏览器中打开 Siyuan Web 端;
- Windows 桌面端不再打开地址为空的超链接(#9550):空链接不会再触发“打开文件夹”类副作用。
导出与资源搜索
- PDF 导出时代码块分页行号显示改进(#9471):带行号的代码块跨页时行号渲染更正确;
- 导出 Markdown 时非表格内的
<br />节点替换为\n文本节点(#9509):行内换行在导出后成为标准换行文本,提升与标准 Markdown 的兼容性; - 改进 Markdown 导出中加粗、斜体等元素的处理(#9542);
- 大于 128MB 的 PDF 不纳入资源文件内容搜索(#9500):超大 PDF 的全文提取成本过高,此版本将其排除在资产内容检索之外,属于明确的容量边界;
- 文档题头图(题图)支持在资源文件中搜索(#9524):插入文档题头图时可以从已有资源资产里选取;
- PDF 搜索关键字时移除输入框背景色(#9540):未搜到结果时的视觉状态修正;
- 修复搜索预览区无法调整图片大小(#9545):搜索预览中的图片同样支持拖拽缩放。
数据同步稳定性
官方在概述中单独强调了“改进在某些文件系统上数据同步的稳定性”(#9541)。该项针对的是特定文件系统(如网络盘、特殊挂载介质等)上同步任务偶发异常的问题,属于稳定性修复,不改变同步协议本身的行为。结合仓库中的同步相关实现(如 push_queue.go、sync.go 所在的 model 层),可以推断该改动落在数据推送/持久化链路的容错处理上;具体修复细节以官方发布说明为准。
缺陷修复清单
本版本共修复 4 个缺陷,全部集中在编辑器渲染与数据转换路径:
- 使用包含数据库(属性视图)的模板创建日记时编辑器解析异常(#9504)——模板内嵌数据库块与日记创建流程叠加时的解析问题;
- 将折叠标题转换为文档后,标题下方的块不显示(#9512)——“标题转文档”这一常用操作在标题处于折叠状态时的渲染缺陷;
- 复制粘贴后转义文本不正确(#9534)——含转义字符内容的复制粘贴保真问题;
- 搜索预览区无法调整图片大小(#9545)。
重构:升级 Electron
“开发重构”条目仅一项:升级 Electron(#9519),即桌面端运行时框架版本提升。桌面端入口位于 electron/main.js,构建与打包配置见 electron-builder.yml 及各平台变体配置。此类升级通常带来 Chromium/Node 运行时安全与性能改善,属于常规维护性重构。
开发者与插件生态新能力
本版本对插件开发者最友好,共 11 项,可按“插件 API 扩展”与“数据库(属性视图)功能”两类理解。
插件事件总线 switch-protyle
新增插件事件 switch-protyle(#9454),供插件监听编辑器(Protyle)切换。源码中可在 types/index.d.ts 看到该事件名与 switch-protyle-mode 被登记进插件可监听的事件联合类型;其派发逻辑位于 setEditMode.ts,在编辑/阅读模式切换时向 eventBus 发出 switch-protyle-mode 事件。插件可以据此在视图切换时刷新自身 UI(例如浮窗工具条、选区高亮等),而不再需要轮询。
插件常量 app.appId
新增插件常量 app.appId(#9538):插件运行时可以从应用上下文中读取当前实例的应用标识。从源码结构看,该值在 plugin/index.ts 中由 options.app.appId 注入插件实例,并在 plugin/kernel.ts 中作为查询参数 appId 参与插件资源请求,用于区分不同安装实例的插件数据。
集市包 keywords 字段
插件/模板集市(Bazaar)的包配置 JSON 新增 keywords 字段(#9499),用于集市内搜索。内核侧实现在 package.go:Package 结构体带有 Keywords []string 字段(JSON tag 为 keywords),搜索时经 getSearchKeywords 分词后由 packageContainsKeywords 做包含匹配(见 package.go)。插件作者只需在包配置 JSON 中填写关键词数组即可提升被检索到的概率。
其他插件导出
- 导出
Constants给插件(#9555):内核常量集合对插件可见,减少插件内硬编码; - 跳转/调整 CSS 加载顺序(#9553):修正样式加载次序问题,避免插件或主题样式被覆盖的时序缺陷。
数据库(属性视图)功能增强
- 日期类型支持指定具体时间(#9486):数据库日期字段可精确到时分,而不仅是日期粒度;
- 支持修改数据库列类型(#9513):属性视图列可在类型间调整;
- 数据库启用排序后添加行覆盖数据问题修复(#9517):开启排序状态下新增行不再出现数据被覆盖的异常;
- 移动端编辑数据库单元格时自动滚动到屏幕顶部(#9520);
- 改进数据库表格视图列宽拖拽(#9528);
- 支持将文件拖拽到数据库的资源列(#9543):资产列可直接接受拖入的本地文件。
属性视图的整体实现在 kernel/av/(布局、镜像、关系等)与 kernel/sql/av.go 等文件中,上述条目大多落在这两条链路上。
小结
Siyuan v2.10.13 是一次典型的“体验打磨 + 生态扩展”版本:对终端用户而言,块拖拽、文档树拖拽、页签快捷键、聚焦态块导航与 Markdown/PDF 导出保真度的改进覆盖了日常高频操作路径,128MB PDF 资源搜索边界与同步稳定性修复则守住了大数据量场景的底线;对插件开发者而言,switch-protyle 事件、app.appId 常量、Constants 导出与集市包 keywords 字段显著降低了插件与应用主程序之间的集成成本。完整的逐条变更记录可直接查阅仓库中的 v2.10.13.md。
atomcodeClaude Code 的开源替代方案。连接任意大模型,编辑代码,运行命令,自动验证 — 全自动执行。用 Rust 构建,极致性能。 | An open-source alternative to Claude Code. Connect any LLM, edit code, run commands, and verify changes — autonomously. Built in Rust for speed. Get StartedRust0627
Hy4-previewHy4 preview 是由腾讯混元团队研发的新一代混合专家(MoE)旗舰模型。模型总参数量 770B,每个 token 激活 49B,主干共包含78层,第一层采用标准 FFN,其余 77 层均为 MoE 结构,每层包含 256 个路由专家与 1 个共享专家,每个 token 激活 top-8 路由专家及共享专家。主干之外原生内置 1 层 MTP(总参数量 10B,激活 0.7B)以支持投机解码。Python00
GLM-5.3GLM-5.3 与 GLM-5.2 使用相同的基座模型——所有提升均来自后训练。与 GLM-5.2 相比,它在复杂编程和长程任务上的表现显著提升。Jinja00
GLM-5.3-FlashGLM-5.3-Flash (320B-A18B),是GLM-5系列的首个原生多模态模型。320B总参数,能力超过GLM-5.2Jinja00
Spark-X2.5-4BSpark-X2.5-4B 旨在让强大的 AI 更实用、更高效、更易获得。在广泛日常任务中表现强劲,涵盖对话、写作、翻译、推理、编码、工具调用以及智能体工作流,并在同等规模的开源模型中取得领先成绩。Spark-X2.5 将面向效率的架构与最高 1M tokens 的原生上下文窗口相结合,并支持 200 多种语言。Python00
Spark-X2.5-1.7BSpark-X2.5-1.7B 旨在让强大的 AI 更加实用、高效且易于获取。这些模型在广泛的日常任务中表现出色,涵盖对话、写作、翻译、推理、编程、工具调用和智能体工作流,并在同等规模的开源模型中取得领先结果。Spark-X2.5 将面向效率的架构与最高 1M tokens 的原生上下文窗口相结合,并支持 200 多种语言。Python00