【解答合集】实时预览/编辑模式粗体斜体显示问题

编辑视图模式,加粗到符号,就自动加粗到整个段落。但是阅读模式又不会出现这个问题。
2ae6279247371b23d17b115909a8198f
d7126f39f2ef18213e71f743b16be518

不知道有没有办法解决

这个显示问题貌似存在很久了,这种情况下在中文的标点后面加个空格显示就正常了。
不晓得是不是为了顺应英文输入习惯刻意保留的一个效果。按照英文输入习惯,标点号后面要加上空格。

2 个赞

编辑视图下在粗体前后有文字时,以符号开头会显示异常
但在阅读视图下正常

这是一句**.示例**文本

编辑视图
image

阅读视图
image

环境 :Windows11 1.5.3 已在沙箱复现


临时解决方案在粗体前后加空格

编辑视图
image

来自 PlayerMiller 的备注:抱歉归档时帖子重复了,请继续阅读。

一个最简单粗暴的办法:用中文代替。如果没有特殊要求的话可以这样做。
其他会自动改变字体的符号也是一样。

找到了新的解决方案:在每个会导致格式转换的符号前,输入一个英文的“\”,这种属于转义符号。如果你退出该行的编辑,转义符号就不会显示出来。不影响排版和阅读。

25年还是没解决

1 个赞

我最终解决了这个问题,我也不知道是否还有人看,本着分享精神,分享一次。

用Linter插件的自定义正则,按顺序添加如下的三个正则,实现加粗项两边加空格,解决ob的加粗渲染问题。在做这个正则的过程中,前前后后花了我有一个月左右,因为每次我觉得没问题了,总是又冒出bug,所以异常辛苦。

([^ \t\n([(【])(**)替换为$1 $2
(**)([^ \t\n)!].,?;:)】!。,?;:])替换为$1 $2
(**)[ \t]+([^\n*]+?)[ \t]+(**)替换为$1$2$3

其实我还有很多类似优化的正则,但就先分享这三个吧。

这是个很玄学的问题,并且不止在中文环境中会出现。
英文中也有,常见在加粗链接的情况,中文里更常见是因为中文不用空格。

关键不在于空格,而在于加粗,斜体等标记两边有没有特殊符号,如空格,&等。

我最终找到了一个插件解决了这个问题
ebibibi/obsidian-cjk-bold-fix:Obsidian 插件:修复 CJK(中文/日文/韩文)在实时预览模式下的粗体和斜体渲染问题

遗憾的是,众所周知,在实时预览模式中,当光标位于加粗等特殊标记文本时,会显示其源码形式。但是当某个段落出现这种斜体问题时,这个插件表现不正常。而且存在一些原因不明的渲染错误