
SiYuan v3.1.2 版本更新详解网页剪藏、数据库能力与引用导出的全面增强【免费下载链接】siyuanAn open-source, privacy-first, self-hosted knowledge workspace where humans and AI agents work together 开源、隐私优先、自托管的知识工作空间让人与智能体在此协作项目地址: https://gitcode.com/GitHub_Trending/si/siyuanv3.1.2 是 SiYuan思源笔记在 3.1.x 系列中的一次质量型版本迭代核心方向是改进网页剪藏、修复缺陷并优化细节。本指南以该版本的官方更新日志v3.1.2_zh_CN.md为骨架结合仓库源码逐项拆解 11 项功能改进、4 项缺陷修复与 1 项开发重构帮助你理解这些变更背后的实现机制并掌握对应的使用与排查方法。版本概览与定位该版本的主要变化集中在三个领域网页剪藏HTML 代码、代码块、kbd标签的剪藏质量得到系统化改进覆盖了浏览器剪藏插件到编辑器粘贴链路的多个环节数据库属性视图复制绑定块自动入库、模板字段导出、网络资源转本地、日期字段排序等能力增强让基于数据库的内容组织更加顺滑引用与导出块引用锚文本导出、嵌入标题块导出行为得到修正。此外还包括大纲面板渲染、块引用搜索、表情字符集等细节优化以及 Electron 运行时的升级。网页剪藏改进从 HTML 到块级内容的链路优化此版本对剪藏相关的改进多达三项均围绕HTML 内容进入编辑器这条核心链路展开改进 HTML 代码剪藏issue #11924粘贴或剪藏包含行内代码code的 HTML 时转换结果更贴近原始语义改进 HTML 代码块剪藏issue #12014针对pre/代码块结构的识别与块级转换进行增强改进 HTML kbd 剪藏issue #12027kbd键盘按键标签在剪藏后的渲染与转义行为得到修正。从源码结构看这条链路在前端主要由 paste.ts 承载——它负责将剪贴板中的 HTML 转换为 SiYuan 的块级 DOM 结构并处理行级元素如行内代码、kbd与块级元素如代码块的分流。而在内核侧clipboard.go 提供了与系统剪贴板交互的 API如readFilePaths/writeFilePath其中明确注释了Linux 端不再支持粘贴为纯文本时处理文件绝对路径对应 issue #5825这说明不同平台下剪藏/粘贴的行为存在差异跨平台使用剪藏功能时需要留意系统剪贴板能力的边界。对使用者而言改进后最直观的收益是从网页复制包含代码段、键盘按键说明的内容时粘贴到思源后能获得更干净、更少多余标签的块级结果减少手工清理成本。数据库属性视图能力增强数据库是 SiYuan 组织结构化内容的核心能力此版本围绕它做了四项改进内核侧的对应实现位于 kernel/av 模块av.go、filter.go、sort.go、value.go、relation.go等。数据库绑定块复制后自动加入数据库issue #11959此前将一个已绑定数据库的行块复制为副本后副本不会自动进入数据库容易造成数据视图与内容不同步。此版本改进了复制行为绑定块被复制为副本后会自动添加到数据库保证副本同样参与该数据库的行管理与属性维护降低了手工补录的成本。改进数据库模板字段导出issue #11988模板字段Template 字段在导出时此前可能存在占位符未被解析或解析不完整的问题。此版本改进后模板字段的导出结果与编辑态保持一致。从实现角度看字段值的导出涉及 kernel/av/value.go 中对不同类型字段值的序列化处理模板类字段属于其中需要特殊展开的类型。支持将数据库中的网络资源转换为本地issue #12096此前数据库单元格中的图片等资源若以网络 URL 形式存在会依赖外链可用性离线或外链失效时无法正常展示。此版本新增能力可将数据库中的网络资源一键转换为本地资源转换后资源被纳入仓库的资产管理受备份与同步机制保护。改进数据库日期字段排序issue #12127日期字段的排序此前可能在特定格式或边界情况下出现顺序异常。此版本修正了日期字段的排序逻辑相关实现可参考 kernel/av/sort.go 中对属性视图排序规则的底层支持确保按日期升序/降序排列的结果符合直觉。引用与导出锚文本与嵌入块行为修正改进块引用锚文本导出issue #11995块引用在导出如导出 Markdown时锚文本即引用的显示文字此前可能出现丢失或与引用目标不一致的情况。此版本改进了块引用锚文本的导出行为使导出的引用内容更忠实于编辑器中的呈现。导出相关流程的核心实现在 kernel/model/export.go 与 export_merge.go它们负责将块树转换为目标格式并处理引用关系的文本还原。修复导出嵌入的标题块时缺少其下方内容issue #12075修复了导出嵌入的标题块时没有下面的块的问题。此前在文档中嵌入{{引用嵌入一个标题块并导出时标题块下方的所属内容不会被一并导出导致导出结果残缺。此版本修正后导出嵌入的标题块会连带其后的从属块一并输出保证导出文档的结构完整性。大纲面板与块引用搜索的细节优化改进大纲面板转义渲染issue #12001大纲面板中标题文本若包含特殊字符如*、等 Markdown 标记或 HTML 转义字符此前可能被错误解析导致显示异常。此版本改进了大纲面板的转义渲染确保标题在面板中按字面内容显示而不是被当作格式语法处理。改进块引用搜索issue #12010块引用在插入时需要通过搜索定位目标块。此版本改进了块引用搜索的匹配体验搜索结果的命中与排序更准确。内核侧的搜索实现可参考 kernel/search/find.go 与 mark.go前端搜索界面位于 app/src/search 目录。表情字符集与视觉细节改进表情字符集PR #12051更新了内置的表情字符集数据使表情选择面板覆盖的 Unicode 表情范围更完整。仓库中与表情资源加载相关的实现包括前端 app/src/emoji 与内核侧的 emojis_watcher.go负责监听表情资源目录变化。缺陷修复四项关键问题标题块更新时间异常issue #11996修复了标题块在特定编辑操作下更新时间updated 属性不刷新或异常变动的问题。标题块是文档结构的骨架其元数据如更新时间的准确性直接影响排序、索引与历史记录相关块元数据维护逻辑位于 kernel/treenode 与 kernel/model/block.go 中。设置搜索后关于消失issue #12013修复了在设置界面执行搜索后关于About设置项消失的界面缺陷。该面板的前端实现位于 aboutTab.ts此修复确保搜索过滤不会误隐藏关于面板的入口。超级块中拖动嵌入块导致重复issue #12077修复了在超级块Super Block中拖动嵌入块时嵌入块被重复复制的问题。此前拖拽过程中可能产生多余的嵌入副本干扰文档内容修复后拖拽仅改变块的位置而不产生冗余副本。开发重构Electron 运行时升级此版本将桌面端运行时Electron 升级至 v31.3.1issue #12134以获取 Chromium 与 Node.js 底层的安全修复与稳定性改进。需要说明的是当前仓库的 app/package.json 中应用版本为 3.7.2、Electron 依赖已演进至 42.6.1即仓库已历经后续多个版本的迭代。因此 v3.1.2 中记录的 Electron v31.3.1 属于该版本发布时的依赖快照如需复现当时的构建环境应以该版本的 tag 与 lockfile 为准。如何获取该版本v3.1.2 属于稳定版发布可通过以下渠道获取桌面端安装包覆盖 Windows含 NSIS 安装程序相关配置见 installer.nsh、macOS见 electron-builder-darwin.yml、Linux 各发行版内核源码构建内核为 Go 语言实现入口在 kernel/main.go可通过 Go 工具链编译运行官方下载渠道思源官网下载页与 GitHub Releases 均提供各平台安装包。如果你是开发者想了解构建与打包的完整配置可参考 app/electron-builder.yml 及各平台的 builder 配置文件。小结v3.1.2 虽是小版本却覆盖了内容进入剪藏— 内容组织数据库/大纲— 内容输出导出的完整内容工作流。理解这些变更背后的源码实现不仅能帮助你更好地使用这些功能也能在遇到类似问题时快速定位到对应的代码路径——例如剪藏问题查 paste.ts 与 clipboard.go数据库问题查 kernel/av导出问题查 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),仅供参考