一种输入标题导致运行时错误的情况

问题表现就是输入标题之后回车下一行也是标题,之后报运行时错误,直接贴操作过程了

  1. 首先在编辑器中正常输入(本次复现条件是输入列表)

  2. 输入列表,之后通过回车返回到段落块

  3. 输入 #Ctrl+Alt+1建立标题

    PixPin20250324092425.png

  4. 输入文本。注意到此时大纲列表中并不正常刷新当前标题文本

    PixPin20250324092446.png

  5. 按下删除键会直接删除当前整个标题,重建标题仍然报错

  6. 重建索引有概率解决问题,不过我在未报运行时错误时重建索引之后仍然出现问题

  7. 如果输入标题后出现当前问题:

    1. 已经输入回车出现第二个标题块,则只能删除整个标题块
    2. 未输入回车,光标仍在当前标题块
      1. 通过Ctrl+Alt+0可以转换回段落块

      2. 通过Ctrl+Alt+1可以转换回标题块

      3. 此时标题块文本右侧可能出现 <protyle-html> 标签,也可能没有

        PixPin20250324092523.png

      4. 不过此时大纲中显示当前标题名称,可以正常继续输入不会触发运行时错误

本次复现条件是主题,默认主题下没有测试,不过不容易观察也不容易复现,暂且认为是使用第三方主题都能复现。复现并不局限于单个文档,也不局限于某个主题 ,甚至不局限于输入法

  • 思源笔记

    思源笔记是一款隐私优先的个人知识管理系统,支持完全离线使用,同时也支持端到端加密同步。

    融合块、大纲和双向链接,重构你的思维。

    25523 引用 • 105573 回帖 • 1 关注

相关帖子

欢迎来到这里!

我们正在构建一个小众社区,大家在这里相互信任,以平等 • 自由 • 奔放的价值观进行分享交流。最终,希望大家能够找到与自己志同道合的伙伴,共同成长。

注册 关于
请输入回帖内容 ...
  • 可以试试把主题的 JS 都注释掉再重启思源测试

    还能复现,不过这次的条件细致到列表有第二项开始,只有一项的时候没有复现
    EmptyLight
    @EmptyLight 那就再一块一块排查一下 CSS,看看什么 CSS 会出问题
    JeffreyChen
    @JeffreyChen 以 VSCE 主题为测试对象,在主题添加了::before 或::after 之后会出现,表现在标题前面的那个图标。Savor 如果能复现就可能和标题后面那些点有关
    EmptyLight
  • 其他回帖
  • EmptyLight

    siyuan-vscodelite-edit/src/block/title-icon.scss at scss · emptylight370/siyuan-vscodelite-edit 编译得到,图标为单独 svg,这里由于长度限制只取一到三级标题

    @charset "UTF-8"; /* 用于修复显示图标之后标题会显示在下一行的问题 */ [data-node-id].h1 div:nth-child(1), .protyle-preview h1 div:nth-child(1) { display: inline-block; word-wrap: break-word; overflow-wrap: break-word; } [data-node-id].h2 div:nth-child(1), .protyle-preview h2 div:nth-child(1) { display: inline-block; word-wrap: break-word; overflow-wrap: break-word; } [data-node-id].h3 div:nth-child(1), .protyle-preview h3 div:nth-child(1) { display: inline-block; word-wrap: break-word; overflow-wrap: break-word; } /* h1标签基本样式 */ [data-node-id].h1[fold="1"][data-type=NodeHeading]::before, .protyle-preview h1[fold="1"]::before, [data-node-id].h1::before, .protyle-preview h1::before { content: ""; display: inline-block; position: relative; width: 1.75rem; height: 1.75rem; mask: url(../../resources/h1.svg) no-repeat center center; mask-size: contain; background-color: var(--mk-block-header-h1); top: 0.2rem; margin-right: 0.2rem; } /* h1标签 */ [data-node-id].h1[fold="1"][data-type=NodeHeading]::before, .protyle-preview h1[fold="1"]::before { height: 1.75rem !important; border-radius: unset; margin-top: unset; left: unset !important; top: 0.2rem !important; } /* h2标签基本样式 */ [data-node-id].h2[fold="1"][data-type=NodeHeading]::before, .protyle-preview h2[fold="1"]::before, [data-node-id].h2::before, .protyle-preview h2::before { content: ""; display: inline-block; position: relative; width: 1.55rem; height: 1.55rem; mask: url(../../resources/h2.svg) no-repeat center center; mask-size: contain; background-color: var(--mk-block-header-h2); top: 0.2rem; margin-right: 0.2rem; } /* h2标签 */ [data-node-id].h2[fold="1"][data-type=NodeHeading]::before, .protyle-preview h2[fold="1"]::before { height: 1.55rem !important; border-radius: unset; margin-top: unset; left: unset !important; top: 0.2rem !important; } /* h3标签基本样式 */ [data-node-id].h3[fold="1"][data-type=NodeHeading]::before, .protyle-preview h3[fold="1"]::before, [data-node-id].h3::before, .protyle-preview h3::before { content: ""; display: inline-block; position: relative; width: 1.38rem; height: 1.38rem; mask: url(../../resources/h3.svg) no-repeat center center; mask-size: contain; background-color: var(--mk-block-header-h3); top: 0.2rem; margin-right: 0.2rem; } /* h3标签 */ [data-node-id].h3[fold="1"][data-type=NodeHeading]::before, .protyle-preview h3[fold="1"]::before { height: 1.38rem !important; border-radius: unset; margin-top: unset; left: unset !important; top: 0.2rem !important; } /*# sourceMappingURL=title-icon.css.map */
  • 如果有能稳定重现问题的 CSS 片段,麻烦发一下看看

    1 回复
  • VSCode Lite Edit 主题在启用标题图标开关后可复现

    我重现不了,你安装 https://github.com/siyuan-note/siyuan/releases/tag/v3.1.26-dev3 试一下,还能重现的话录屏看看

    2 回复
  • 查看全部回帖

推荐标签 标签

  • Shell

    Shell 脚本与 Windows/Dos 下的批处理相似,也就是用各类命令预先放入到一个文件中,方便一次性执行的一个程序文件,主要是方便管理员进行设置或者管理用的。但是它比 Windows 下的批处理更强大,比用其他编程程序编辑的程序效率更高,因为它使用了 Linux/Unix 下的命令。

    125 引用 • 74 回帖 • 1 关注
  • JetBrains

    JetBrains 是一家捷克的软件开发公司,该公司位于捷克的布拉格,并在俄国的圣彼得堡及美国麻州波士顿都设有办公室,该公司最为人所熟知的产品是 Java 编程语言开发撰写时所用的集成开发环境:IntelliJ IDEA

    18 引用 • 54 回帖 • 1 关注
  • 人工智能

    人工智能(Artificial Intelligence)是研究、开发用于模拟、延伸和扩展人的智能的理论、方法、技术及应用系统的一门技术科学。

    170 引用 • 315 回帖
  • Sym

    Sym 是一款用 Java 实现的现代化社区(论坛/BBS/社交网络/博客)系统平台。

    下一代的社区系统,为未来而构建

    524 引用 • 4601 回帖 • 706 关注
  • OnlyOffice
    4 引用 • 22 关注
  • Elasticsearch

    Elasticsearch 是一个基于 Lucene 的搜索服务器。它提供了一个分布式多用户能力的全文搜索引擎,基于 RESTful 接口。Elasticsearch 是用 Java 开发的,并作为 Apache 许可条款下的开放源码发布,是当前流行的企业级搜索引擎。设计用于云计算中,能够达到实时搜索,稳定,可靠,快速,安装使用方便。

    117 引用 • 99 回帖 • 200 关注
  • Access
    1 引用 • 3 回帖 • 1 关注
  • Word
    13 引用 • 41 回帖
  • 钉钉

    钉钉,专为中国企业打造的免费沟通协同多端平台, 阿里巴巴出品。

    15 引用 • 67 回帖 • 277 关注
  • SendCloud

    SendCloud 由搜狐武汉研发中心孵化的项目,是致力于为开发者提供高质量的触发邮件服务的云端邮件发送平台,为开发者提供便利的 API 接口来调用服务,让邮件准确迅速到达用户收件箱并获得强大的追踪数据。

    2 引用 • 8 回帖 • 500 关注
  • Follow
    4 引用 • 12 回帖 • 11 关注
  • Caddy

    Caddy 是一款默认自动启用 HTTPS 的 HTTP/2 Web 服务器。

    12 引用 • 54 回帖 • 178 关注
  • CAP

    CAP 指的是在一个分布式系统中, Consistency(一致性)、 Availability(可用性)、Partition tolerance(分区容错性),三者不可兼得。

    12 引用 • 5 回帖 • 631 关注
  • 招聘

    哪里都缺人,哪里都不缺人。

    188 引用 • 1057 回帖 • 1 关注
  • DNSPod

    DNSPod 建立于 2006 年 3 月份,是一款免费智能 DNS 产品。 DNSPod 可以为同时有电信、网通、教育网服务器的网站提供智能的解析,让电信用户访问电信的服务器,网通的用户访问网通的服务器,教育网的用户访问教育网的服务器,达到互联互通的效果。

    6 引用 • 26 回帖 • 529 关注
  • RYMCU

    RYMCU 致力于打造一个即严谨又活泼、专业又不失有趣,为数百万人服务的开源嵌入式知识学习交流平台。

    4 引用 • 6 回帖 • 57 关注
  • CentOS

    CentOS(Community Enterprise Operating System)是 Linux 发行版之一,它是来自于 Red Hat Enterprise Linux 依照开放源代码规定释出的源代码所编译而成。由于出自同样的源代码,因此有些要求高度稳定的服务器以 CentOS 替代商业版的 Red Hat Enterprise Linux 使用。两者的不同在于 CentOS 并不包含封闭源代码软件。

    239 引用 • 224 回帖 • 1 关注
  • wolai

    我来 wolai:不仅仅是未来的云端笔记!

    2 引用 • 14 回帖 • 6 关注
  • Gzip

    gzip (GNU zip)是 GNU 自由软件的文件压缩程序。我们在 Linux 中经常会用到后缀为 .gz 的文件,它们就是 Gzip 格式的。现今已经成为互联网上使用非常普遍的一种数据压缩格式,或者说一种文件格式。

    9 引用 • 12 回帖 • 167 关注
  • OAuth

    OAuth 协议为用户资源的授权提供了一个安全的、开放而又简易的标准。与以往的授权方式不同之处是 oAuth 的授权不会使第三方触及到用户的帐号信息(如用户名与密码),即第三方无需使用用户的用户名与密码就可以申请获得该用户资源的授权,因此 oAuth 是安全的。oAuth 是 Open Authorization 的简写。

    36 引用 • 103 回帖 • 29 关注
  • DevOps

    DevOps(Development 和 Operations 的组合词)是一组过程、方法与系统的统称,用于促进开发(应用程序/软件工程)、技术运营和质量保障(QA)部门之间的沟通、协作与整合。

    59 引用 • 25 回帖 • 3 关注
  • MySQL

    MySQL 是一个关系型数据库管理系统,由瑞典 MySQL AB 公司开发,目前属于 Oracle 公司。MySQL 是最流行的关系型数据库管理系统之一。

    693 引用 • 537 回帖
  • CSDN

    CSDN (Chinese Software Developer Network) 创立于 1999 年,是中国的 IT 社区和服务平台,为中国的软件开发者和 IT 从业者提供知识传播、职业发展、软件开发等全生命周期服务,满足他们在职业发展中学习及共享知识和信息、建立职业发展社交圈、通过软件开发实现技术商业化等刚性需求。

    14 引用 • 155 回帖
  • 快应用

    快应用 是基于手机硬件平台的新型应用形态;标准是由主流手机厂商组成的快应用联盟联合制定;快应用标准的诞生将在研发接口、能力接入、开发者服务等层面建设标准平台;以平台化的生态模式对个人开发者和企业开发者全品类开放。

    15 引用 • 127 回帖 • 2 关注
  • 笔记

    好记性不如烂笔头。

    310 引用 • 794 回帖
  • CodeMirror
    2 引用 • 17 回帖 • 162 关注
  • Typecho

    Typecho 是一款博客程序,它在 GPLv2 许可证下发行,基于 PHP 构建,可以运行在各种平台上,支持多种数据库(MySQL、PostgreSQL、SQLite)。

    12 引用 • 67 回帖 • 451 关注