标点符号导致markdown加粗显示失效

**你好。**好的
**hello.**yes

如上加粗显示失效。

你好。好的

你好。好的

你好。好的

嗯?不管我用 ** 还是 B 按钮,得到的都是粗体字。在 Markdown 编辑器和富文本编辑器(RTE)里也一样。

**Hello. Okay.**hello

最后的**前有标点符号,后面紧跟着文字。你试试。

以下格式会失效
**+文字+标点符号+**+文字

你好。好的。 一些文本

以及

你好好的 没有标点符号

但如果我们在标点和结束的 ** 之后不加空格,就会发生这种情况:

**你好好的。**文本
**你好好的。**文本

对比

**你好好的。** 文本
你好好的。 文本

我不知道这是 Markdown 的 bug 还是特性,还是其他什么。

我认为问题不在于星号前面的标点符号,而在于星号后面没有空格的文本。

带有标点符号。 空格文本
**带有标点符号。**无空格文本

**带有标点符号。** 空格文本
**带有标点符号。**无空格文本

我知道。这是 Markdown 的默认行为。:slight_smile:

2 个赞

这是 Markdown 中的一个已知问题,除非你能更改 Markdown 解析器,否则无法修复。

我的变通方法是使用 <span></span>

**是的。**<span></span>对的。 是的。对的。

根据 CommonMark 规范,** 只有作为右边界定符序列的一部分时,才能结束强强调。如果界定符前面是标点符号(.),后面是单词字符(t),则它不是右边界定符,因此无法结束强调。markdown-it 会将其解析为纯文本。同样的规则也适用于 *___

我想我们对此无能为力,因为我们遵循的是规范,但这让我发现富文本编辑器 Markdown 序列化器存在一个 bug:如果你使用 UI 构建这种情况(**text.**text),它在富文本编辑器中显示正常,但渲染后却变成了纯文本。这个 PR 通过将标点符号从标记区域中排除来解决此问题,使其变为 text.text(**text**.text)。

2 个赞

我仍然可以重现此错误,标点符号仅在我切换到 Markdown 编辑器或发布后才被移出。

富文本编辑器测试:text.text

标点符号最初仍然加粗