news 2026/9/8 21:19:11

SiYuan v2.10.13 版本解析:文件树与块拖拽交互优化、同步稳定性改进与开发者新特性

作者头像

张小明

前端开发工程师

1.2k 24
文章封面图
SiYuan v2.10.13 版本解析:文件树与块拖拽交互优化、同步稳定性改进与开发者新特性

SiYuan v2.10.13 版本解析:文件树与块拖拽交互优化、同步稳定性改进与开发者新特性

【免费下载链接】siyuanAn open-source, privacy-first, self-hosted knowledge workspace where humans and AI agents work together 开源、隐私优先、自托管的知识工作空间,让人与智能体在此协作项目地址: https://gitcode.com/GitHub_Trending/si/siyuan

本文基于 SiYuan 官方变更日志梳理 v2.10.13 版本的完整内容:本版本聚焦文件树与编辑器块的拖拽交互体验改进,同时提升了数据同步在部分文件系统上的稳定性,并带来一系列编辑、导出、移动端与插件生态的增强。读完后你将掌握该版本全部改进/修复/重构/开发者清单的语义含义,并能从仓库源码中印证 PDF 资源检索上限、插件事件switch-protyle、市集包keywords字段与插件常量app.appId的实际实现位置。

适用说明:以下内容以仓库中 v2.10.13 变更日志(繁中版) 为主体,配套源码佐证来自当前仓库快照,适用于 SiYuan v2.10.13 及之后的版本行为分析。

版本概述:拖拽交互与同步稳定性双主线

官方对本版本的定性是两点:

  1. 改进文件树和编辑器块拖拽的互动体验——对应条目包括「改进块拖曳互动体验」「改进文件树文件拖曳互动体验」;
  2. 改进资料同步稳定性——对应「改善在某些档案系统上资料同步的稳定性」。

此外,原变更日志还附有一则商业化说明:功能特性(PRO Features)当时处于早鸟价阶段,且年付订阅已包含功能特性,订阅会员无需单独购买。属于发布时的营销信息,此处仅做记录,与功能实现无关。

改进功能(Enhancement)完整清单

以下逐条继承变更日志中的 25 项改进,并按主题归类,便于按需检索:

交互与导航类

  • 支援更多切换页籤快捷鍵;
  • 改進塊拖曳互動體驗;
  • 改進文件樹文件拖曳互動體驗;
  • 改進行動端取消釘住外掛程式;
  • 縮小大綱面板標題圖示;
  • 改進引用搜尋框位置;
  • 滑鼠位於浮窗時不再顯示浮動停靠列;
  • 在行動端搜尋介面建立文件時,將文件儲存於目前開啟的文件所屬筆記本下;
  • 在 Android 平板上支援「在瀏覽器上使用」;
  • 改進行動端建立新文件;
  • 唯讀模式下支援顯示圖片選單。

编辑器能力类

  • 關閉所有頁籤後更新應用程式標題;
  • 在聚焦狀態下支援「跳到父級的下一個塊」;
  • 改進塊屬性為空時自動刪除屬性;
  • 公式和圖表編輯框非正常關閉時也會儲存資料;
  • 插入文件題頭圖支援在資源文件中搜尋;
  • 支援更新 AI 操作;
  • 支援在 HTML 塊中進行搜尋替換。

导出与检索类

  • 改進匯出 PDF 時程式碼塊行號顯示;
  • 大於 128MB 的 PDF 檔案不再納入資源檔案搜尋;
  • 匯出 Markdown 時非表格內的<br />節點替換為\n節點;
  • 改進匯出 Markdown 時加粗、斜體等元素的處理;
  • PDF 搜尋關鍵字時移除輸入框背景色。

平台与同步类

  • 改善在某些檔案系統上資料同步的穩定性;
  • Windows 桌面端不再能夠開啟位址為空的超連結(避免误点开文件管理器)。

源码印证:128MB PDF 检索上限

「大於 128MB 的 PDF 檔案不再納入資源檔案搜尋」这条改进在 Go 内核中有精确落点。kernel/model/asset_content.go 定义了常量PDFAssetContentMaxSize = 1024 * 1024 * 128,即 128 MiB;同文件第 875 行附近的注释直接引用了对应的 issue 号(#9500),说明资源内容索引进程在构建 PDF 文本时会先校验文件大小,超限文件不再进入全文索引。可以推断该限制用于控制内存与索引耗时,避免超大 PDF 拖慢资源检索。

修复缺陷(Bugfix)

本版本修复 4 个缺陷:

  • 使用包含資料庫的範本建立日記時,編輯器解析異常;
  • 將標題塊轉換為文件時,標題下塊不顯示;
  • 複製貼上後轉義文字不正確;
  • 搜尋預覽區無法調整圖片大小。

其中「模板含数据库导致日记解析异常」与「折叠标题转文件后块不显示」两个修复,都落在「块 → 文件」这一 SiYuan 核心数据模型的操作路径上,属于结构性缺陷修复,值得在升级前重点回归验证。

重构:升级 Electron

开发重构仅一项:升级 Electron。Electron 是桌面端运行时底座,升级通常带来渲染进程安全补丁与内核能力更新;从变更日志本身无法确认具体版本差异,需以 app/electron/main.js 所在目录与 app/package.json 中的依赖声明为准。

开发者特性(Development)详解

本版本对插件/开发者生态的投入最为密集,共 12 项。以下逐条展开,并对 4 个有源码实证的关键特性做深入说明。

1. 新增插件事件switch-protyle

该事件用于在编辑器实例切换时通知插件(例如多文档切换、移动端前进/后退恢复页面)。从源码结构看,前端统一通过事件总线发出switch-protyle事件并携带当前protyle实例,触发点包括:

  • app/src/editor/util.ts:桌面端切换编辑器实例时item.eventBus.emit("switch-protyle", {protyle: options.protyle})
  • app/src/mobile/editor.ts:移动端编辑器初始化/恢复路径同样发出该事件;
  • app/src/mobile/util/MobileBackFoward.ts:移动端前进/后退导航恢复页面后发出;
  • app/src/types/index.d.ts:事件名被列入类型声明联合类型("switch-protyle" | "switch-protyle-mode" | ...),保证 TS 侧类型安全。

另有伴生事件switch-protyle-mode(见 app/src/protyle/util/setEditMode.ts)在编辑模式切换时发出,插件可同时监听二者以感知「切文档」与「切模式」。

2. 市集包新增keywords字段

市集(Bazaar)包描述 JSON 新增keywords字段,用于增强插件/模板/主题的检索命中。内核实现位于 kernel/bazaar/package.go:Package结构体含Keywords []string \json:"keywords"`字段,加载时会对其做 HTML 反转义处理(第 155-156 行);检索链路getSearchKeywordspackageContainsKeywords(第 220-277 行附近)会按空格拆分查询词,并让包名与 keywords 共同参与匹配。对市集作者而言,这意味着在包package.json中补充keywords` 数组可显著提升被搜索到的概率。

3. 新增插件常量app.appId

插件 API 的app对象新增appId常量,插件可据此判断宿主为 SiYuan 并参与跨应用识别。前端实现证据:

  • app/src/index.ts:应用主对象声明public appId: string并在构造时赋值为Constants.SIYUAN_APPID
  • app/src/plugin/kernel.ts:插件内核在构造插件实例 URL 时通过URLSearchParams({ name: this.#name, appId: this.#appId })透传该标识,移动端窗口对象(app/src/mobile/index.ts)与独立窗口对象(app/src/window/index.ts)同样暴露appId,保证桌面/移动两条链路行为一致。

4. 导出Constants给插件

变更日志「匯出Constants給外掛程式」表明常量模块(app/src/constants.ts)对插件暴露面扩大,插件可直接引用 SiYuan 定义的内联块类型等常量。从 app/src/plugin/index.ts 可见工具栏项校验逻辑Constants.INLINE_TYPE.concat("|").includes(toolbarItem.name)即依赖该常量集,插件侧复用后可避免硬编码类型名。

其余开发者条目

  • 資料庫日期類型支援指定具體時間(日期字段可携带时间分量);
  • 支援修改資料庫列類型(属性视图列类型可在创建后变更);
  • 資料庫啟用排序後新增行時覆蓋異常(修复);
  • 行動端編輯資料庫儲存格時自動捲動(自动滚动到视口顶部);
  • 改進資料庫表格視圖列寬拖曳;
  • 支援拖曳檔案到資料庫資源列(拖文件入资源列即完成附件绑定);
  • 跳到 CSS 載入順序(CSS 加载顺序调整,影响主题/插件样式优先级)。

小结与升级建议

v2.10.13 是一个「体验 + 生态」版本:普通用户收益集中在拖拽交互、聚焦导航(跳到父级下一个块)、Markdown/PDF 导出修正与同步稳定性;插件开发者收益集中在switch-protyle事件、app.appIdConstants暴露与市集包keywords字段。若你维护市集包,建议本版本优先补充keywords;若你依赖块切换时序写插件,应在升级后基于switch-protyle事件重新梳理监听点。所有清单条目均可回溯至 app/changelogs/v2.8.4-v2.12.8/v2.10.13/v2.10.13_zh_CHT.md(英文/简中对照见同目录 v2.10.13.md、v2.10.13_zh_CN.md)。

【免费下载链接】siyuanAn open-source, privacy-first, self-hosted knowledge workspace where humans and AI agents work together 开源、隐私优先、自托管的知识工作空间,让人与智能体在此协作项目地址: https://gitcode.com/GitHub_Trending/si/siyuan

创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考

版权声明: 本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若内容造成侵权/违法违规/事实不符,请联系邮箱:809451989@qq.com进行投诉反馈,一经查实,立即删除!
网站建设 2026/9/8 21:17:54

Atmosphere 定制固件最简上手:从黑屏到跑通

Atmosphere 定制固件最简上手&#xff1a;从黑屏到跑通 【免费下载链接】Atmosphere Atmosphre is a work-in-progress customized firmware for the Nintendo Switch. 项目地址: https://gitcode.com/GitHub_Trending/at/Atmosphere &#x1f3db;️ 一句话讲清它是什么…

作者头像 李华
网站建设 2026/9/8 21:17:46

在AWS上部署CANoe--打造企业级ECU云端流水线

“转载自维克多汽车技术&#xff08;上海&#xff09;有限公司&#xff0c;作者Vector China” 在越来越多的汽车企业里&#xff0c;“软件工程效率”已经成为左右竞争力的核心变量。ECU越来越复杂&#xff0c;功能迭代越来越快。这些变化让传统的基于电脑的本地工具模式逐渐捉…

作者头像 李华
网站建设 2026/9/8 21:15:43

LWPLS风电功率预测实战:原理、源码与参数调优

简介&#xff1a;这是一份以即时学习&#xff08;JITL&#xff09;与局部加权偏最小二乘法&#xff08;LWPLS&#xff09;为核心的风电功率预测毕业设计项目&#xff0c;面向电力系统、新能源或数据挖掘方向的本科生/研究生&#xff0c;帮助理解基于相似样本动态建模的预测思路…

作者头像 李华
网站建设 2026/9/8 21:11:24

基于Python的电池故障诊断与数据诊断项目实战解析

简介&#xff1a;这是一份基于Python的电池故障诊断与数据诊断完整项目源码&#xff0c;适合计算机、人工智能、自动化等相关专业学生及从业者&#xff0c;用于期末大作业、课程设计或毕业设计参考。项目为个人高分大作业&#xff0c;代码经过调试&#xff0c;可直接运行&#…

作者头像 李华
网站建设 2026/9/8 21:10:34

配电网最优潮流与二阶锥松弛:微电网灵活性优化及Matlab实现

很多人第一次看到“考虑微电网灵活性的含分布式电源配电网二阶锥松弛最优潮流优化研究”这个题目&#xff0c;第一反应是“这又是课题组的年度包装”&#xff0c;但如果你真在配电网规划、微电网调度或者新能源消纳一线待过&#xff0c;就会明白这个题目其实指向一个非常现实的…

作者头像 李华