SiYuan v3.0.13 版本更新解读:数据库表格体验升级、剪藏增强与移动端快捷键支持
2026/9/10 20:55:59 网站建设 项目流程

SiYuan v3.0.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(思源笔记)v3.0.13 版本的官方更新日志,逐项解读该版本在数据库(属性视图)表格视图、网页剪藏、移动端操作、资源文件历史与桌面端稳定性等方面的改进与缺陷修复。通过对照仓库源码,你将理解"导出数据库时渲染行号列""双向关联同步条目""资源历史忽略隐藏文件"等变更背后的实现细节,掌握该版本带来的实际能力提升与已知问题的规避方法。

一、版本概览

v3.0.13 是一个以"修复缺陷 + 改进细节"为主的稳定版本。官方概述(见 app/changelogs/v3.0.x/v3.0.13/v3.0.13.md)明确指出:

This version fixes some bugs and improves a lot of details.(此版本修复了一些缺陷并改进了很多细节。)

该版本共包含15 项功能改进(Enhancement)、13 项缺陷修复(Bugfix)、1 项架构重构(Refactor)与 1 项面向开发者的变更(Development),变更集中覆盖以下四大主题:

主题代表变更解决的问题
数据库表格视图导出行号列、模板列编辑区限高、删除操作优化、双向关联同步数据表格的展示与导出体验
网页剪藏HTML 中 Base64 图片转换、code元素剪藏改进剪藏内容的完整性与渲染正确性
移动端部分快捷键支持、超链接打开浏览器修复移动端操作效率与可用性
稳定性Electron 降级至 v28.3.1、浏览器/平板加载卡住修复桌面端与 Web 端崩溃问题

二、数据库(属性视图)相关改进

v3.0.13 是数据库功能高频迭代的一个版本,本次共涉及 7 项数据库相关的增强与 3 项缺陷修复,是版本更新的重头戏。

2.1 导出数据库时支持渲染行号列

在数据库表格视图中,用户可以为每条记录维护一个行号列。此前该行号列在导出时会被忽略,v3.0.13 起导出时会一并渲染行号,保证导出结果与界面所见一致。

从源码实现看,行号渲染贯穿了 CSV 与 Markdown 两种导出路径:

  • CSV 导出:在 kernel/model/export.go 中,导出逻辑遍历table.Rows,逐行维护rowNum计数器,当列类型匹配行号列(val = strconv.Itoa(rowNum))时写入当前行号,并在写出一行后自增;
  • Markdown 表格导出:在 kernel/model/export.go 中,同样以rowNum := 1起步,在构造 Markdown 表格单元格时为行号列填充递增的数字。

这意味着无论你将数据库导出为 CSV 还是 Markdown,行号信息都会稳定保留,便于后续在外部表格软件中核对行序。

2.2 模板列编辑文本区限制最大高度

在数据库表格视图中编辑"模板"(Template)列时,此前编辑文本区会随内容无限增高,导致界面失控。该版本为模板列的编辑文本区设置了最大高度,超出后内部滚动,保证编辑区域始终可控。

2.3 删除操作改进

改进了数据库表格视图的删除操作细节。结合本版本同时修复的"某些情况下绑定块后的新数据库条目会丢失"(issue #11269),可以看出本版本对"删除""新增"与"块绑定"三者之间的一致性做了系统性梳理,避免删除动作误伤已绑定块的数据条目。

2.4 允许在"关联"字段中引用当前数据库

此前"关联"(Relation)字段只能指向其他数据库,v3.0.13 起允许引用当前数据库自身。这一能力使同一张数据表内部可以建立自关联(self-reference),例如"任务依赖任务""分类包含子分类"等树形或网状关系都可以在单张表内表达,配合双向关联(见 2.5)使用效果更佳。

2.5 创建双向关系时同步相关条目

数据库创建"双向关系"时,如果仅更新当前条目,另一侧引用方会处于不同步状态。该版本在创建双向关系时会同步两侧的相关条目,确保关系视图两侧的数据即时一致,避免出现"一边改了另一边没变"的脏数据。

2.6 数据库搜索框的只读模式与清除按钮优化

  • 只读模式支持粘贴:此前数据库搜索框在只读(read-only)模式下无法粘贴搜索关键字,该版本放开限制,只读模式下的检索效率得到提升;
  • 清除搜索按钮改进:优化了表格视图搜索框的清除按钮交互细节,清空搜索条件更加顺手。

2.7 相关缺陷修复

  • 双击数据库资源列导致界面卡住(issue #11220):修复了资源(Asset)列双击时的界面冻结问题;
  • 数据库表格视图多选列快速选择异常(issue #11268):修复了多选列在快速连续操作时的状态错乱。

三、编辑器与网页剪藏增强

3.1 移动端支持部分快捷键

移动端此前几乎无法使用快捷键,v3.0.13 起为移动端接入了一批快捷键支持(issue #10342)。在触屏设备上配合外接键盘(如 iPad + 妙控键盘)时,用户可以在移动端获得接近桌面端的快捷操作体验,这是移动端生产力场景的重要补强。

3.2 HTML 剪藏时转换 Base64 图片

剪藏网页时,部分页面中的图片以data:image/...;base64,...形式内嵌在 HTML 里。此前的剪藏流程无法正确处理这类图片,导致剪藏内容缺失或图片异常。该版本在剪藏 HTML 时会将 Base64 图片转换为常规资源文件,确保剪藏内容完整落盘。

3.3 改进 HTMLcode元素剪藏

针对网页中的<code>元素,优化了剪藏后的内容映射。此前部分code元素剪藏后格式混乱或内容丢失,该版本改进了其剪藏映射逻辑,保证代码片段在剪藏后保持正确结构与可读性。

3.4 为块导航新增两个快捷键

块导航(在相邻块之间跳转)此前缺少快捷键入口,该版本新增两个快捷键用于块导航(issue #11193),显著提升了长文档中的键盘流式阅读与编辑效率。

3.5 改进删除图片功能

优化了编辑器中删除图片的操作细节(issue #11209),改善删除资源图片时的交互与资源清理一致性。相关逻辑可在 app/src/editor/deleteFile.ts 中进一步查看。

3.6 相关缺陷修复

  • Shift+↓ 无法扩展折叠列表的选择(issue #11194):修复了折叠列表场景下键盘扩展选择的失效问题;
  • 复制图片并粘贴后文件名编码异常(issue #11246):修复了图片复制粘贴后文件名出现编码错乱的问题,保证资源文件名的稳定性。

四、文档树与国际化改进

4.1 文档树多选时右键菜单增加"打开"选项

当在文档树中选中多个文档时,右键菜单此前只有"打开"之外的其他操作。该版本在右键菜单中新增"打开"选项(issue #11150),支持一次打开多个选中文档,批量查看多个笔记的效率得到提升。

4.2 国际化支持日语

v3.0.13 的国际化(i18n)支持新增日语(issue/pull #11212)。在仓库中可以看到对应的日语语言包 app/appearance/langs/ja.json 已存在,与中文(zh-CN.json)、英文(en.json)等 20 余种语言包并列存放于 app/appearance/langs 目录下。日语用户可以在设置中切换界面语言。

4.3 笔记本保存路径覆盖全局设置的修复

"笔记本设置文档保存路径在某些情况下不会覆盖全局设置"(issue #11196)的问题在本版本得到修复。此前在特定配置组合下,笔记本级自定义的文档保存路径会失效,回落到全局设置;修复后笔记本级配置可稳定优先生效。

五、资源文件历史与稳定性修复

5.1 生成资源文件历史时忽略隐藏文件

资源文件(assets)历史功能用于追踪资源文件的历史版本。此前的历史生成逻辑会把隐藏文件(如 macOS 的.DS_Store、临时文件等)也纳入历史,产生大量无意义的历史快照。该版本在生成资源历史时忽略隐藏文件(issue #11253)。

从源码看,资源历史的生成入口位于 kernel/model/history.go 的recentModifiedAssets()函数:它通过cache.FilterAssets筛选最近修改的资源,并做两层过滤:

  1. filelock.IsHidden(absPath):剔除隐藏文件;
  2. util.IsOfficeTempFile(absPath):剔除 Office 文档编辑时产生的临时文件(如~$xxx.docx)。

只有通过这两层过滤的资源才会进入historyDir(位于工作空间data/assets/.siyuan/history,见 kernel/model/history.go),从而显著减少无效历史快照对磁盘空间和同步负载的浪费。

5.2 无法导出包含符号链接的 Data 的修复

此前当工作空间中存在符号链接(symbolic link)时,导出 Data 会失败(issue #11217)。该版本修复了导出流程对符号链接的处理,保证含符号链接的工作空间也能正常打包导出。

5.3 Linux 桌面端最大化窗口后界面崩溃的修复

修复了 Linux 桌面端在最大化窗口后界面崩溃的问题(issue #11218)。这属于 Electron 桌面端窗口管理的底层缺陷,与该版本同步进行的 Electron 降级(见第六节)存在直接关联。

5.4 其他稳定性修复

  • 浏览器/平板在加载界面时卡住(pull #11195):修复了 Web 端(浏览器与平板)启动加载时界面卡死的问题;
  • PDF 注解引用无法跳转(issue #11197):修复了 PDF 注解后点击引用无法跳转的问题;
  • 集市-已下载中 README 包大小为空(issue #11224):修复了集市"已下载"列表页中 README 显示的包大小为空的显示问题;
  • 移动端点击超链接不打开浏览器(issue #11240):修复了移动端点击超链接无响应的问题;
  • 卸载挂件后数据同步未清空挂件文件夹(issue #11279):修复了卸载挂件(Widget)后同步未清理残留文件夹的问题,避免同步数据残留。

六、架构重构与开发者变更

6.1 Electron 降级至 v28.3.1

v3.0.13 将桌面端 Electron 从更高版本降级回v28.3.1(issue #11226),这是本版本最重要的架构级决策。降级的主要动因是修复 Electron 新版本带来的桌面端问题(如前述 Linux 最大化崩溃),换取更稳定的桌面运行体验。

需要注意的是,版本降级意味着开发者在后续开发中需要基于 Electron v28.3.1 的行为进行适配。当前仓库主线版本已演进到更高版本(截至本仓库当前状态,app/package.json 中electron依赖为 42.6.1),说明团队在后续迭代中重新跟进并锁定了新的稳定基线。这也提示桌面端框架版本的选择需要结合目标平台稳定性综合权衡,而非一味追新。

6.2 为item.direction设置默认值

面向开发者的变更中,为数据库筛选器中的item.direction字段补充了默认值(pull #11214)。在属性视图的筛选逻辑(见 app/src/protyle/render/av/filter.ts)中,direction用于相对日期(relativeDate)筛选的方向判断,取值为-1 | 0 | 1,分别代表"过去""今天/不限""未来":

const direction = parseInt(dirSel?.value || "0", 10); // ... direction: direction as -1 | 0 | 1,

此前若上层调用未显式传入direction,筛选行为可能不稳定;设置默认值后,未显式指定方向时将以0(即不区分过去/未来)作为安全默认,保证筛选条件构造的一致性与可预期性。

七、如何获取与升级

v3.0.13 版本可从官方渠道下载:

  • 桌面端安装包可从 B3log 官网下载页获取;
  • 发布版压缩包可从 GitHub Releases 获取。

升级建议:

  1. 升级前先对工作空间做一次完整备份,尤其关注数据库、资源文件等高频变更数据;
  2. 若正在使用数据库的"关联"字段并计划启用自关联(引用当前数据库),升级后可先在小范围表内验证双向关系同步行为;
  3. 若你的环境存在隐藏文件较多的资源目录(如 macOS),升级后可观察资源历史生成量是否显著下降,以验证 5.1 节所述优化效果。

结语

v3.0.13 是 SiYuan 在数据库能力与稳定性之间取得平衡的一个重要版本:数据库表格视图的导出行号、自关联、双向关系同步等改进进一步巩固了其结构化知识管理能力;剪藏侧的 Base64 图片转换与code元素处理提升了网页剪藏的完整性;而 Electron 的主动降级则体现了项目对桌面端稳定性的一贯重视。结合 kernel/model/history.go 与 kernel/model/export.go 等源码实现,可以更深入地理解这些变更背后的设计取舍。

【免费下载链接】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),仅供参考

需要专业的网站建设服务?

联系我们获取免费的网站建设咨询和方案报价,让我们帮助您实现业务目标

立即咨询