假设我想***cat***
使用 CommonMark 标准将字符串解析为 Markdown。该标准说(http://spec.commonmark.org/0.28/#phase-2-inline-structure):
……
如果找到一个:
弄清楚我们是强调还是强调强调:如果更近的跨度和更开放的跨度的长度> = 2,我们有强的,否则是规则的。
相应地插入一个 emph 或强 emph 节点,在对应于 opener 的文本节点之后。
从分隔符堆栈中删除开启者和关闭者之间的任何分隔符。
从开始和结束文本节点中删除 1(对于常规 emph)或 2(对于强 emph)分隔符。如果它们因此变为空,则删除它们并删除分隔符堆栈的相应元素。如果关闭节点被移除,则将 current_position 重置为堆栈中的下一个元素。
……
根据我对此的阅读,结果应该是<em><strong>cat</strong></em>
首先<strong>
添加,然后添加<em>
. 但是,我在 output 中尝试过的所有在线降价编辑器<strong><em>cat</em></strong>
。我错过了什么?
这是我认为应该发生的事情的视觉表示
TextNode[***] TextNode[cat] TextNode[***]
TextNode[*] StrongEmphasis TextNode[cat] TextNode[*]
TextNode[] 强调 StrongEmphasis TextNode[cat] TextNode[]
强调 StrongEmphasis TextNode[cat]