news 2026/9/9 19:53:24

思源笔记 v2.8.4 发布深度解读:移动端体验重塑、闪卡与搜索增强、新增内核 Move Block API

作者头像

张小明

前端开发工程师

1.2k 24
文章封面图
思源笔记 v2.8.4 发布深度解读:移动端体验重塑、闪卡与搜索增强、新增内核 Move Block API

思源笔记 v2.8.4 发布深度解读:移动端体验重塑、闪卡与搜索增强、新增内核 Move Block API

【免费下载链接】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.8.4 于 2023-04-11 发布,是 2.8.x 系列中一次以“移动端体验重塑 + 内核健壮性加固”为核心的迭代,覆盖交互细节、搜索、闪卡、AI、编辑器与内核 API 等近 40 项改进。本文以仓库中的官方发布说明 v2.8.4.md(及其 简体中文对照版)为主体,结合仓库源码逐条展开说明,帮助读者完整理解本次版本的变化、背后的实现位置,以及可用于二次开发的关键改动。

版本信息与变更日志规范

本次版本为v2.8.4,属于思源笔记桌面端 / 移动端 / 内核同步发布的例行版本。值得注意的是,本版本同时也是思源笔记变更日志管理方式的“分水岭”:此前 CHANGELOG 采用单一文件累积,而本版本起改为每个发布版本独立成文件、并在发布目录内同时提供英文与简体中文两份对照(见 app/changelogs 目录结构)。仓库根目录的 CHANGELOG.md 与 kernel、app 中各模块源码共同构成了可逐条追溯发布内容的完整证据链。

本次变更共分为五个类别,下文按主题重组后逐类展开,确保原发布说明中的每一条都被覆盖并补充说明。

移动端交互体验改进(本版本改进密度最高的区域)

v2.8.4 在移动端(Android / iOS)投入了大量交互打磨,主要围绕“手势防误触、软键盘配合、面板拉出、图片浏览、退出路径”等高频场景:

  • 退出与返回路径更清晰:移动端退出应用按钮被调整到更易点击的位置(#7879);Android 端按返回键时提示返回桌面,而非直接退出(#7886);Android 浏览图片时支持通过系统返回键返回上一级(#7938)。
  • 手势与面板冲突修复:在移动端图表上滑动不再拉出侧栏面板(#7882);左右滑动拉出侧栏面板时,编辑器自动失焦(#7896);iOS 端拖拽音频块播放进度条时不再误拉出左右侧栏(#7898);移动端支持悬浮软键盘(#7940)。
  • 工具栏与菜单呈现优化:改进移动端编辑工具栏+的点击交互一致性(#7885);行级元素(内联样式)菜单仅在点击BIU或选中文本后才弹出,避免误触(#7892);修复移动端编辑工具栏下方空白遮挡问题(#7880);改进某些移动设备上非全屏菜单的显示(#7912);为移动端弹出菜单增加过渡动画(#7934)。
  • 斜杠菜单与键盘联动:在移动端点击斜杠菜单后,隐藏键盘即可关闭斜杠菜单(#7895)。
  • 编辑器内容支持增强:移动端支持 KaTeX 宏定义渲染(#7909),保证数学公式宏在移动端与桌面端一致;在标题块开头输入#不再弹出标签搜索列表(#7933),消除输入歧义。
  • 整体体验:针对移动端用户交互体验做了一轮系统性改进(#7335),涉及多处细节收敛;移动端搜索输入(代码块语言、模板、嵌入块等场景)与整体搜索功能均有增强(#7597、#7830),相关交互实现位于 app/src/mobile 目录下的移动端专属逻辑中。

提示:移动端与桌面端共享编辑器内核(app/src/editor、app/src/protyle),差异部分集中在 app/src/mobile,上述改动大多通过该目录与平台适配代码实现。

编辑器、文档编排与布局

桌面端编辑器与内容组织同样有多处行为调整,直接影响日常书写效率:

  • 标题块级别快速修改:现在可以直接在标题行首输入#来调整标题级别(#7924),配合“标题块开头输入#不再弹出标签搜索”的改动(#7933),两者共同构成更顺手的标题编辑流。大纲面板同步支持显示标题块的外观样式(#7872),便于在文档结构视图中直接看到标题所用样式。
  • 页签与分屏定位:改进页签分屏切换后的浏览位置定位(#7915),切换页签后会按区域(range)重新定位到原阅读位置;修复快速关闭页签导致编辑区白屏的问题(#7878),保证多页签高频操作下的稳定性。
  • 布局保存:保存布局(layout)支持同名覆盖(#7893),避免重复新建同名布局;同时修复保存新窗口布局时的错误(#7913)。
  • 超级块排版:超级块水平布局时增加了子块之间的间隔(#7939),缓解多个子块紧贴带来的视觉拥挤。
  • 表格解析修复:修复表格内超链接地址或标题包含|时的解析错误(#7917),避免 Markdown 表格分隔符被误判。

以上布局相关代码主要位于 app/src/layout,文档树与标题相关的折叠/移动逻辑见 kernel/api/block_op.go、kernel/treenode。

搜索:输入体验与性能监控

本版本对搜索进行了输入体验与性能两个层面的改进:

  • 搜索输入优化:代码块语言、模板、嵌入块等“结构化候选”的搜索输入体验得到改进(#7597),输入更少字符即可命中目标项。
  • 移动端搜索增强(#7830)覆盖移动端搜索交互链路。
  • 搜索性能监控:新增搜索性能监控并在必要时给出优化建议(#7873)。该主题在文档层面也有呼应——本次随版本在用户指南中新增了“性能优化”章节(#7889)。

从内核看,搜索链路分布在 kernel/api/search.go(对外 API)、kernel/model/search.go(执行逻辑)与 kernel/search(底层索引与命中等),其中中文繁简处理还受 kernel/conf/search.go 中hanSensitive(是否区分繁简字形)等配置约束;前端搜索交互则在 app/src/search 目录中维护。性能建议的落地通常与数据量、索引规模相关,若在超大数据集上检索变慢,可按用户指南中的性能优化章节排查。

闪卡(间隔重复)体系的同步增强

闪卡相关改动横跨“入口便捷性、移动端展示、编辑撤销、写入可靠性、底层事务模型”五个层次:

  • 入口便捷:闪卡被加入“最近打开文档”与切换器(Switcher)候选列表(#7881),可像切换文档一样快速定位到卡包。
  • 移动端展示:闪卡间隔复习界面支持在移动端全屏显示(#7932)。
  • 编辑撤销:快速制卡(Quick Mark / Quick Card)支持 Ctrl+Z 撤销(#7937),与普通块编辑的操作历史打通。
  • 可靠性修复:修复快速制卡与快速标记未完成写入的问题(#7923)。
  • 底层重构:将addRiffCards/removeRiffCards调整为异步事务(#7936),避免大量卡片批量操作时阻塞主流程。

内核中的对应实现可以直接对照源码验证:两个 API 均注册于 kernel/api/router.go(POST /api/riff/addRiffCardsPOST /api/riff/removeRiffCards),其实现分别位于 kernel/api/riff.go(addRiffCards)与 kernel/api/riff.go(removeRiffCards)。从源码看,二者接收deckIDblockIDs,通过构造addFlashcards/removeFlashcards操作组装成model.Transaction后调用model.PerformTransactionsmodel.FlushTxQueue落库——这正是“异步事务”重构后的执行模型,保证批量卡片增删与数据同步队列(kernel 侧事务系统)一致。

AI 能力:翻译语种扩展与动作行为修正

本版本对 AI 功能有两处行为层面的调整:

  • 翻译支持繁体中文(#7891):AI 翻译的目标语种列表新增“繁体中文”,中文用户在简繁之间互译时不再依赖外部转换工具。内核侧 AI 相关能力集中在 kernel/api/ai.go 与 kernel/agent(智能体与会话、模型元数据、工具定义均在此目录)。
  • 自定义 AI 动作不再将自身插入到内容中(#7894):此前执行自定义 AI 动作时,动作指令文本可能残留进正文;本次修正后动作仅产生结果内容,保持文档干净。

内核健壮性与系统稳定性

内核层(Go 实现)本次重点加固了“服务崩溃恢复、网络连通检测、配置容错”三类问题:

  • 改进内核 HTTP 服务崩溃恢复(#7888):增强内核 HTTP 服务的 panic recover 机制,避免单个请求异常拖垮整个内核进程。内核服务端入口与路由装配见 kernel/server/serve.go 与 kernel/api/router.go。
  • 改进数据同步的联网检查(#7890):优化同步前对网络连通性的探测方式,减少因网络探测误判导致同步失败或卡顿;相关逻辑位于 kernel/api/sync.go 与 kernel/model/sync.go。
  • local.json 损坏自动恢复(#7911):当本地配置文件local.json损坏时,不再阻塞进入主界面,而是清空该文件后以默认配置启动,显著提升异常断电等场景下的可用性。
  • 报错通知附带版本信息(#7899):所有错误通知的结尾统一附加当前版本号,用户向社区反馈问题时可直接复制版本上下文。
  • 升级后显示“思源笔记最新变化”(#7902):升级完成后弹出 What's New 说明,帮助用户快速了解新版本要点(其内容来源即本目录中的各版本发布说明)。
  • 导出与预览细节:修复导出 PDF 在缩放比例不为 1 时边距错误(#7900);修复“聚焦后切换到导出预览、再切回编辑模式未恢复焦点”的问题(#7901);修复fetchPost调用getBlockInfo时 API 端点地址错误(#7918,pull 对应修复 上游逻辑)。
  • 文档树快捷键:修复文档树中 Ctrl+↑ 折叠失效(#7931)。
  • 托盘与桌面细节:修复切换外观语言后系统托盘菜单文案未同步更新的问题(#7935);修复间隔复习界面全屏后窗口按钮重叠(#7877);修复 macOS 端初始化界面挂起(#7887);修复点击工具栏并隐藏键盘后移动端出现空白区域(#7880)。

新增内核 API:Move block

本次版本最重要的开发者向改动是新增了移动块的官方内核 API(#7903):POST /api/block/moveBlock。其路由注册见 kernel/api/router.go,实现位于 kernel/api/block_op.go。

从 实现源码 可以确认该 API 的关键语义与约束:

  • 请求参数包括id(待移动块的 ID,必填)以及可选的parentIDpreviousID
  • 移动目标由两个参数协同决定:指定previousID时,目标块会移动到该块之后;未指定previousID而指定parentID时,则作为该容器块的子块插入;
  • 参数有严格校验:previousID对应的块不允许是文档块(类型为"d",源码见 kernel/api/block_op.go);仅依靠parentID定位时目标必须是容器块,否则会进行非法嵌套检查并拒绝执行。

参考调用示例(JSON body):

{ "id": "2023041100000000000000000000000a", "parentID": "2023041100000000000000000000000b", "previousID": "2023041100000000000000000000000c" }

需要说明的是,previousIDparentID同时为空时目标块无法确定,内核会返回错误;实际业务中两个参数通常只显式提供一个即可。该 API 适合需要在文档间或文档内批量重排块的插件开发者使用,也是后续自动化整理工作流的基础能力之一。

其他值得关注的能力

  • 微信思源小助手剪藏解析改进(#7942):改进从微信“思源小助手”转发剪藏内容的链接解析,减少剪藏内容进入笔记本后的格式错乱。
  • 错误通知版本信息WhatsNew等已在上文覆盖。

文档、重构与开发者基础工作

  • 文档更新:用户指南新增“性能优化”章节(#7889),并补充了 Docker 伺服(自托管部署)的注意事项与限制(#7897)。部署相关内容可进一步查阅仓库 Dockerfile 以及 kernel/entrypoint.sh。
  • 重构addRiffCards/removeRiffCards改为异步事务(#7936),见 kernel/api/riff.go。
  • 开发者基础工作
    • 属性视图(Attribute View)开始向数据库表映射演进(#7677),这是思源“块级数据库化”能力的早期铺垫。如今该能力已在仓库中沉淀为独立的 kernel/av(属性视图引擎)与 kernel/sql 中的 av 系列文件(av.go 等),以及 kernel/api/av.go 对外 API;
    • 变更日志管理方式调整(#7904、#7905、#7906):将 CHANGELOG.md 迁入 app/changelogs 目录、为每个版本拆分独立文件并补充简体中文版本——当前仓库的变更日志目录结构(如 v2.8.4 目录 下同时存在v2.8.4.mdv2.8.4_zh_CN.md)正是这一规范落地后的结果。

小结

v2.8.4 虽然只是 2.8.x 系列的一次例行迭代,但其改进覆盖面并不“例行”:移动端在手势、软键盘、面板与菜单四个维度完成了密集的体验修正;闪卡体系从入口、展示到内核事务模型得到系统性加强;搜索在输入与性能监控两端同步推进;内核层以 panic 恢复、联网检测与配置容错提升了自托管场景下的稳定性。对开发者而言,本版本最大的增量是新增moveBlock内核 API,配合闪卡异步事务重构,为块级自动化操作提供了更可靠的基础。若需逐条核对,可直接翻阅 英文发布说明 与 简体中文发布说明,并对照上文给出的源码路径深入阅读。

【免费下载链接】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/9 19:48:40

Win11 LTSC 2024安装全攻略:U盘、PE与备份还原详解

如果你最近在搜索“Win11 LTSC 2024 企业版 24H2”,大概率不是冲着新鲜功能去的,而是被系统更新、后台进程、笔记本续航或者莫名其妙的卡顿折腾过。LTSC 这个称呼在中文互联网里经常被误解成“精简版”“去商店版”,但从实际部署逻辑看&#…

作者头像 李华
网站建设 2026/9/9 19:44:08

深入解析燃料电池ECMS能量管理策略:从原理到工程落地

1. 为什么偏偏是ECMS:燃料电池能量管理的选型思路 1.1 能量管理到底在管什么 很多刚接触燃料电池系统的朋友,第一反应是“燃料电池不就是发电的吗,直接把电送到电机不就行了”。真做起来就会发现,事情远没有那么简单。燃料电池电…

作者头像 李华
网站建设 2026/9/9 19:43:43

Windows 10内测版Build 9916虚拟机安装崩溃排查指南

如果你也和我一样,喜欢在旧硬盘里囤一些 Windows 内测版镜像,大概率遇到过这种非常分裂的场景:同一个虚拟机软件,同一台宿主机,装 Build 9926 一路顺畅,装 Build 9901 折腾半小时也能进到桌面,偏…

作者头像 李华
网站建设 2026/9/9 19:43:30

Parallels Desktop 27 详解:Mac上高效运行Windows 11/10虚拟机

Parallels Desktop 27 是 macOS 上跑 Windows 11/10 虚拟机的高频方案。很多人被“一行代码安装”的标题吸引,结果找到一个第三方脚本,既没讲许可证,也没讲 Windows 镜像,最后卡在创建虚拟机那一步。真正能落地的路线是&#xff1…

作者头像 李华