新闻详情

新闻详情

首页 / 资讯中心 / 详情

SiYuan v3.5.4 版本解析:导出管线、编辑器交互与安全机制的深度改进

发布时间:2026/9/10 9:39:07来源:尧图网络
SiYuan v3.5.4 版本解析:导出管线、编辑器交互与安全机制的深度改进
SiYuan v3.5.4 版本解析导出管线、编辑器交互与安全机制的深度改进【免费下载链接】siyuanAn open-source, privacy-first, self-hosted knowledge workspace where humans and AI agents work together 开源、隐私优先、自托管的知识工作空间让人与智能体在此协作项目地址: https://gitcode.com/GitHub_Trending/si/siyuanSiYuan v3.5.4 是一次以「细节打磨」为基调的例行版本围绕文档导出尤其是 Word/.docx 与 Pandoc 管线、编辑器输入行为、数据视图数据库功能、同步安全与桌面端运行时五大主线做了系统性改进。本文基于仓库中的 v3.5.4 繁体中文变更日志 全文展开逐项梳理本版本引入的能力与修复并结合 kernel 端 Go 内核与 app/src 端前端源码说明这些改进背后的实现位置与工作机制帮助开发者与维护者理解 SiYuan 在导出链路、安全防护与跨平台打包上的工程实践。版本概览v3.5.4 官方将其定位为「改进了某些细节」的版本变更分为三类改进功能31 项覆盖导出、编辑器、数据库、安全、平台适配修复缺陷6 项涵盖 iOS 滚动、页签图标、快照页卡死、编辑器选中、标题批量转换与一处任意文件读取漏洞开发重构1 项桌面端运行时升级至 Electron v39.3.0。下文按主题分组完整继承变更日志中的全部条目并对关键条目给出仓库内的源码级佐证。导出管线Pandoc、.docx 与 .sy.zip导出是 v3.5.4 改动最集中的模块变更日志中直接相关的条目包括新增导出设置包含子文件、包含关联文件支持多選文件匯出 .sy.zip改進匯出為 Word .docx 的功能在匯出設定中新增「從資源名稱移除 ID」開關改進資料庫資源欄位的圖片匯出尺寸匯出資料庫為CSV 時包含關聯資源改進 Microsoft Excel 相容性支援為匯出 docx設定 Pandoc 參數內建 Pandoc 匯出 .docx 範本填入 Base64 後圖片網址列會自動轉換為資源。从源码结构看这些能力落在内核的两条链路上模板与资源解析。InitPandoc()负责定位随发行版分发的模板文件模板.docx优先在工作区目录查找pandoc-resources/pandoc-template.docx找不到时回退到内置的 pandoc 资源目录——该目录下确实存放了 pandoc-template.docx 与 pandoc_color_filter.lua 两个文件分别对应「内建 Pandoc 导出 .docx 模板」与导出时保留颜色的过滤器。相关全局变量定义于 kernel/util/pandoc.govar ( PandocBinPath string // Pandoc 可执行文件路径 PandocTemplatePath string // Pandoc Docx 模板文件路径 PandocColorFilterPath string // Pandoc 颜色过滤器路径 )可自定义的 Pandoc 参数。变更日志中「支援為匯出 docx 設定 Pandoc 參數」对应的是通用转换接口 kernel/api/pandoc.go该接口接收dir输出子目录与args完整的 Pandoc 命令行参数数组最终交由 ConvertPandoc 执行。执行时会在工作区temp/convert/pandoc/dir下创建临时目录并将 Pandoc 的工作目录设定为该目录转换成功后返回以/开头的相对路径供前端取回产物func ConvertPandoc(dir string, args ...string) (path string, err error) { if PandocBinPath || ContainerStd ! Container { err ErrPandocNotFound return } pandoc : exec.Command(PandocBinPath, args...) // ... pandoc.Dir absPath output, err : pandoc.CombinedOutput() // ... }值得注意的是其「内置优先 自定义覆盖」策略InitPandoc()会先检查工作区配置conf.json中的export.pandocBin若用户已显式指定自定义 Pandoc 路径且不是工作区临时目录内的副本则直接使用自定义版本否则按平台/架构Windows amd64、macOS amd64/arm64、Linux amd64/arm64从 app/pandoc 下的平台 zip 包解压出内置二进制。IsValidPandocBin还会校验候选二进制的文件魔数ELF、Mach-O、PE「MZ」、FAT并拒绝 shebang 脚本最后以--version输出确认真实可用——这与「改進匯出為 Word .docx」的稳定性目标直接相关。此外「包含子文件 / 包含关联文件」两个导出开关、「从资源名称移除 ID」开关属于导出对话框中控制产物范围的设置前者决定导出单篇文档时是否级联打包其子树与反向关联文档后者用于在导出时把资源文件名中的 SiYuan 块 ID 前缀形如20240101120000-abc123剥离使导出的.md/.docx配套资源目录对外部工具更友好。「多選文件匯出 .sy.zip」则把原本单文档的「打包为 .sy.zip」能力扩展到批量场景多个.sy文件及其资源会被合并进同一个压缩归档。「匯出資料庫為 CSV 時包含關聯資源」与「資料庫資源欄位的圖片匯出尺寸」两项则针对数据视图AV前者保证 CSV 中引用的附件随导出产物一并落地后者修正了资源字段图片在导出产物中的尺寸渲染问题。编辑器交互与输入行为v3.5.4 对编辑体验的改进集中在「触发器行为」与「块级操作」两类改進提示、清單和標題的嵌套編輯改進輸入{{、/或#及貼上行為塊超連結支援fullscreen1以實現全螢幕顯示改進游標在表格單元格內的縱向移動支援使用AltEnter 開啟提示塊對話框支援MLIR 程式碼塊語法高亮改進在複製 PDF 標註後「以純文字貼上」的功能改進瀏覽器剪藏擴充功能對 MathJax 公式的支援。其中「塊超連結支援 fullscreen1」的实现可以在前端找到对应逻辑编辑器全屏入口 app/src/protyle/breadcrumb/action.ts 中fullscreen()通过切换fullscreenCSS 类完成进入/退出并处理多个编辑实例之间全屏状态的互斥export const fullscreen (element: Element, btnElement?: Element) { // ... const isFullscreen element.className.includes(fullscreen); if (isFullscreen) { element.classList.remove(fullscreen); } else { element.classList.add(fullscreen); } // 遍历其他编辑器实例退出它们的全屏状态 ... };块超链接在 URL 查询串中携带fullscreen1时目标文档加载后会自动走这条全屏路径适合把某个块嵌入演示或监控大屏场景。「提示块calloutAltEnter 打开对话框」则补齐了纯键盘操作链路在提示块内按 AltEnter 即可弹出属性对话框而无需鼠标点击菜单。触发器类改进{{、/、#与粘贴行为针对的是输入防抖与候选面板的时序问题属于编辑器核心输入管线app/src/protyle内部的细节修正本版本未改变触发语法本身只改善了触发时机与粘贴合并逻辑。数据视图数据库与搜索一致性改進 Microsoft Excel 相容性資料庫過濾遵循搜尋的大小寫敏感設定改進資料庫資源欄位的圖片匯出尺寸匯出資料庫為 CSV 時包含關聯資源。「資料庫過濾遵循搜尋的大小寫敏感設定」打通了搜索设置与 AV 过滤两个此前各自为政的开关。大小写敏感开关位于搜索设置页见 app/src/config/tabs/searchTab.tsgroup.switch(search.caseSensitive, { ... });从源码结构看该配置项属于全局搜索配置search.caseSensitivev3.5.4 之前数据视图的过滤条件不读取这一设置两个入口的行为可能不一致本版本让 AV 过滤条件在构造查询时同样遵循该开关用户在全局设置里切换一次即可统一影响全文搜索与数据库过滤。安全与隐私v3.5.4 包含三项直接涉及安全的变更与一项同步加固任意檔案讀取漏洞修复預設不會執行伺服的 SVG 中的腳本以防止 XSS改進資料同步過程中的加密校驗提示使用者在非 SSD 硬碟上執行時可能的效能問題性能提示亦与本地数据环境评估相关。「預設不會執行伺服的 SVG 中的腳本以防止 XSS」针对的是 SiYuan 作为本地 Web 服务器托管工作区资源时的风险面当用户请求工作区内的 SVG 资源时若 SVG 内嵌script直接在浏览器上下文执行可能被恶意构造的 SVG 利用。本版本默认禁用了这类脚本执行属于「默认安全secure by default」策略。「任意檔案讀取漏洞」的修复位于内核 HTTP 服务端SiYuan 内核通过 Gin 路由暴露工作区文件接口若路径拼接或前缀校验存在缺陷攻击者可构造请求读取工作区外的系统文件。此类修复通常伴随路径规范化和工作区根前缀断言的强化可在 kernel/server 与 kernel/api/file.go 的静态资源处理逻辑中追溯相关守卫代码。「改進資料同步過程中的加密校驗」则对应加密工作区的同步链路同步包在传输前后执行加密一致性校验本版本改进了该校验的覆盖范围降低同步过程中数据损坏或篡改被静默放过的概率。平台、性能与运行时插入資源的大小限制已從 8G 調整為 16G单资源图片、音视频等附件插入上限翻倍方便导入 4K 视频等大体积媒体改進網路伺服位址清單优化设置页中「网络服务地址」列表的展示与生成逻辑多网卡/多网段环境下地址列表更准确改進最近文件的處理最近文件列表的更新与清理逻辑修正改進 macOS 初始化介面及暗黑模式支援macOS 桌面端首次初始化界面的样式与系统深色模式联动改進瀏覽器與 PWA 中編輯器、閃卡和關係圖的全螢幕顯示网页版与 PWA 下全屏 API 的兼容处理浏览器 Fullscreen API 在不同标签页/iframe 上下文下行为差异的适配區分被引用的定義塊是不存在還是未被索引块引用报错时给出更精确的提示便于排查「引用了尚未索引的块」与「块已被删除」两种情况減少桌面端應用的體積打包产物瘦身iOS 上無法進行水平滾動修复重新開啟已關閉的頁籤時不顯示其圖示修复在資料快照頁面執行某些操作後介面卡死修复在編輯器中使用滑鼠三擊未能選取全部文字修复標題等級批次轉換功能異常修复。运行时层面变更日志标注的重构项是「升級至 Electron v39.3.0」。需要说明的是当前仓库主分支的 app/package.json 中 Electron 依赖已演进为更高版本electron: 42.6.1即 v3.5.4 发布时点的基线是 v39.3.0后续版本继续滚动升级。桌面端打包脚本同样在 app/package.json 中可见通过electron-builder配合多平台配置文件electron-builder.yml、electron-builder-darwin-arm64.yml、electron-builder-linux-arm64.yml等产出各平台安装包dist: cross-env ELECTRON_MIRRORhttps://npmmirror.com/mirrors/electron/ electron-builder --config electron-builder.yml --publishnever, dist-arm64: electron-builder --arm64 --config electron-builder-arm64.yml --publishnever, dist-darwin-arm64: electron-builder --arm64 --mac --config electron-builder-darwin-arm64.yml --publishnever「減少桌面端應用體積」与上述打包配置直接相关常见的瘦身手段包括压缩内置资源、裁剪平台无关资产等。而「提示使用者在非 SSD 硬碟上執行時可能的效能問題」则是启动阶段的硬件探测SiYuan 的索引与块存储依赖大量小文件随机读写机械盘上性能差距明显本版本在检测到非 SSD 环境时给出用户提示帮助用户理解潜在的卡顿来源。变更条目全量索引为便于逐条检索以下按变更日志原始分组完整列出 v3.5.4 的全部条目原文中的外部 issue 链接已按规范省略分类条目改进改進在複製 PDF 標註後「以純文字貼上」的功能改进改進提示、清單和標題的嵌套編輯改进改進包含多個頁籤的新視窗的拖曳手柄改进改進瀏覽器剪藏擴充功能對 MathJax 公式的支援改进新增匯出設定包含子文件、包含關聯文件改进支援多選文件匯出 .sy.zip改进改進網路伺服位址清單改进改進匯出為 Word .docx 的功能改进改進輸入{{、/或#及貼上行為改进塊超連結支援 fullscreen1 以實現全螢幕顯示改进在匯出設定中新增「從資源名稱移除 ID」開關改进填入 Base64 後圖片網址列會自動轉換為資源改进改進 Microsoft Excel 相容性改进改進資料庫資源欄位的圖片匯出尺寸改进資料庫過濾遵循搜尋的大小寫敏感設定改进匯出資料庫為 CSV 時包含關聯資源改进支援使用 AltEnter 開啟提示塊對話框改进改進最近文件的處理改进支援 MLIR 程式碼塊語法高亮改进改進資料同步過程中的加密校驗改进提示使用者在非 SSD 硬碟上執行時可能的效能問題改进改進 macOS 初始化介面及暗黑模式支援改进預設不會執行伺服的 SVG 中的腳本以防止 XSS改进支援為匯出 docx 設定 Pandoc 參數改进改進瀏覽器與 PWA 中編輯器、閃卡和關係圖的全螢幕顯示改进區分被引用的定義塊是不存在還是未被索引改进內建 Pandoc 匯出 .docx 範本改进減少桌面端應用的體積改进改進游標在表格單元格內的縱向移動改进插入資源的大小限制已從 8G 調整為 16G修复iOS 上無法進行水平滾動修复重新開啟已關閉的頁籤時不顯示其圖示修复在資料快照頁面執行某些操作後介面卡死修复在編輯器中使用滑鼠三擊未能選取全部文字修复標題等級批次轉換功能異常修复任意檔案讀取漏洞重构升級至 Electron v39.3.0版本要点总结导出是主战场内置 Pandoc 模板pandoc-template.docx 颜色过滤器pandoc_color_filter.lua 可自定义 Pandoc 参数的通用转换接口kernel/api/pandoc.go构成了本版本 .docx 导出体验改进的完整底座.sy.zip多选导出与「包含子文件/关联文件」开关则扩展了打包导出的覆盖面。安全默认收紧伺服 SVG 脚本默认不执行、任意文件读取漏洞修复、同步加密校验加固三项变更都指向同一方向——本地自托管服务面的攻击面收缩。行为一致性AV 过滤遵循搜索的大小写敏感设置消除了两个入口间的配置割裂块引用错误提示细分「不存在」与「未索引」提升了排障精度。运行环境基线发布时点桌面端升级至 Electron v39.3.0当前仓库主分支已演进至 42.x资源上限提升至 16G并对非 SSD 环境给出性能提示。适用前提说明本文基于当前仓库主分支代码与 v3.5.4 变更日志 撰写变更日志描述的是 v3.5.4 发布时点的行为而仓库中的实现如 Electron 版本、部分导出逻辑可能已随后续版本演进阅读源码时请以对应版本的 changelogs 为准。【免费下载链接】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),仅供参考
网站建设高端定制企业官网
RELATED

相关资讯

更多精彩内容,欢迎继续阅读

较早相关资讯

最新相关资讯

FastAPI-Users 实战指南:异步认证、RBAC 权限与生产配置 2026/9/10 10:27:14

FastAPI-Users 实战指南:异步认证、RBAC 权限与生产配置

简介:本资源是一个基于FastAPI-Users的轻量级用户管理系统实战示例,面向Python后端开发者及FastAPI初学者,解决RESTful API场景下快速集成安全认证与权限管理的共性难题。压缩包共11个文件,含6个核心Python源码(如main…

阅读更多 →
python学习7---多进程 2026/9/10 10:27:14

python学习7---多进程

一、介绍 多进程是指在同一程序中创建多个独立的进程来执行任务。每个进程都有自己独立的内存空间,相互之间不干扰。 因为GIL锁的存在,对于CPU密集型任务(例如计算密集型操作),使用多进程可以提高程序的效率。 优点&am…

阅读更多 →
HTTP/3 协议详解:从 QUIC 到下一代 Web 传输 2026/9/10 10:27:14

HTTP/3 协议详解:从 QUIC 到下一代 Web 传输

1. 引言:为什么我们需要 HTTP/3在互联网诞生的最初几十年里,HTTP 协议一直建立在 TCP 之上。TCP 为上层应用提供了可靠、有序的字节流传输,曾经是 Web 世界的坚实底座。然而,随着移动互联网、实时通信、视频流媒体和高并发 Web 应…

阅读更多 →
HTTP/2 协议详解:从二进制分帧到多路复用的完整演进 2026/9/10 10:27:14

HTTP/2 协议详解:从二进制分帧到多路复用的完整演进

1. 引言:为什么需要 HTTP/2 HTTP 协议是万维网的基础,从 1991 年 Tim Berners-Lee 提出 HTTP/0.9 至今,已经走过了三十多年的演进历程。其中,1999 年发布的 HTTP/1.1(RFC 2616,后由 RFC 7230 系列取代&…

阅读更多 →
CANN/GE模型执行配置创建 2026/9/10 10:27:14

CANN/GE模型执行配置创建

aclmdlCreateExecConfigHandle 【免费下载链接】ge GE(Graph Engine)是面向昇腾的图编译器和执行器,提供了计算图优化、多流并行、内存复用和模型下沉等技术手段,加速模型执行效率,减少模型内存占用。 GE 提供对 PyTor…

阅读更多 →
QtScrcpy指南:3步USB连接免费安卓投屏控制 2026/9/10 10:24:14

QtScrcpy指南:3步USB连接免费安卓投屏控制

QtScrcpy指南:3步USB连接免费安卓投屏控制 【免费下载链接】QtScrcpy Android real-time display control software 项目地址: https://gitcode.com/GitHub_Trending/qt/QtScrcpy QtScrcpy 是一款免费开源的安卓投屏控制工具,通过 USB 或 WiFi 把…

阅读更多 →

今日资讯

本周资讯

本月资讯

看完文章仍有疑问?

联系尧图顾问,获取一对一建站咨询

立即免费咨询 📞 400-888-8888
📞