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 及之后的版本行为分析。版本概述拖拽交互与同步稳定性双主线官方对本版本的定性是两点改进文件树和编辑器块拖拽的互动体验——对应条目包括「改进块拖曳互动体验」「改进文件树文件拖曳互动体验」改进资料同步稳定性——对应「改善在某些档案系统上资料同步的稳定性」。此外原变更日志还附有一则商业化说明功能特性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.goPackage结构体含Keywords []string \json:keywords字段加载时会对其做 HTML 反转义处理第 155-156 行检索链路getSearchKeywords→packageContainsKeywords第 220-277 行附近会按空格拆分查询词并让包名与 keywords 共同参与匹配。对市集作者而言这意味着在包package.json中补充keywords 数组可显著提升被搜索到的概率。3. 新增插件常量app.appId插件 API 的app对象新增appId常量插件可据此判断宿主为 SiYuan 并参与跨应用识别。前端实现证据app/src/index.ts应用主对象声明public appId: string并在构造时赋值为Constants.SIYUAN_APPIDapp/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.appId、Constants暴露与市集包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),仅供参考