外部链接后输入中文标点,出现渲染bug(1.13.6)


故障类反馈

问题描述以及问题的复现步骤

  1. 实时预览模式下,输入一个经渲染的外部链接;
  2. 在链接末尾,即“)”的后面输入中文句号/或逗号/或顿号等等,注意是中文标点;
  3. 该标点出现2个,链接渲染出现异常,并会影响预览视图下其他渲染;
  4. 此时再在其后增加字符,或者是删除那两个标点重新输入,都可以使渲染正常化。

是否已经按 故障排查指南 进行故障排查?

是

期望的结果

输入一个句号即是一个句号,输入完后由于光标已经移动到句号之后,也就是链接之外,链接自动隐藏只显示前面的文字部分,正常渲染为一个链接。

当前 Obsidian 的版本及安装环境

SYSTEM INFO:
Obsidian version: 1.13.6
Installer version: 1.10.3
Operating system: Windows 11 Home China 10.0.26200
Login status: not logged in
Language: zh
Insider build toggle: off
Live preview: on
Base theme: adapt to system
Community theme: none
Snippets enabled: 0
Restricted mode: on

RECOMMENDATIONS:
none

哦由于我的设备里没有微软输入法之外的输入法,我就没有尝试其他输入法。

但此前微软输入法输入没有这个问题,这是更新到1.13.6版本后我才遇到的。

是的,在最新的1.14.4也有这个问题。

在实时预览模式下,对于一个 markdown 格式的外链 [text](URL),如果 URL 被识别就会在该链接后出现灰色外链图标(经过我测试,被识别的充要条件应该是 URL 包含 :,所以 [](:) 就可以被识别)。但问题是,只要该链接被识别并且带有这个外链图标,在该链接之后键入一个中文标点就会同时打出来两个该标点,比如逗号、句号、顿号、左右圆括号,都有这个问题(我怀疑应该是 Unicode 值相近的字符都会引起这个问题)。并且在该问题被触发后整个实时预览模式的某些渲染组件似乎就卡死了,所有后续新增的 markdown 语法和数学公式都无法被渲染(但原有的渲染还是会正常保留),此时如果我在它输出的两个中文标点之后再键入一个中文标点则可以恢复渲染(但之后如果再次在外链之后键入中文标点还是会触发这个问题)。

用下面的 CSS Snippet 去掉外链的图标就可以解决此问题:

.cm-url.external-link {
    display: none !important;
}

只不过这样就无法直观地区别内链和外链(不过这不是很大的问题,至少和原有的问题相比)。期待这个问题被解决……