HTML 甚至无法做到这一点,而 Markdown 是 HTML 的子集,所以答案是否定的。
例如,您的列表将如下所示(当由 Markdown 呈现时):
<ol>
<li>This is a numbered item</li>
<li>This is another numbered item</li>
<li>Same as 1</li>
</ol>
请注意,就编号而言,没有指示哪个项目是哪个项目。这都是浏览器在渲染时推断的。但是,数值不存储在文档中,并且不可引用或链接。它们仅用于展示,没有其他目的。
现在您可以编写一些自定义 HTML 来唯一标识每个列表项并使它们可引用:
<ol>
<li id="item1">This is a numbered item</li>
<li id="item2">This is another numbered item</li>
<li id="item3">Same as <a href="#item1>1</a></li>
</ol>
但是,这些 ID 是硬编码的,与用于显示项目的数字无关。虽然,我想这就是你想要的。要进行更新的更改:
<ol>
<li id="item0">This is the very first item</li>
<li id="item1">This is a numbered item</li>
<li id="item2">This is another numbered item</li>
<li id="item3">Same as <a href="#item1">2</a></li>
</ol>
ID 按预期保留在项目中。不过,让我们继续讨论这些列表项的链接。请注意,在第一次迭代中我们有:
<a href="#item1">1</a>
通过更新,我们得到了:
<a href="#item1">2</a>
唯一的区别是链接的标签(从“1”更改为“2”)。这实际上是通过某种宏魔法来改变文档文本。 HTML 无法做到这一点,至少没有 JavaScript 和/或 CSS 的帮助。
换句话说,每次更新列表时,都需要在整个文档中手动更新对该项目的每个引用的文本。这是针对 HTML 的。那么 Markdown 呢?作为规则状态 http://daringfireball.net/projects/markdown/syntax#html:
Markdown 并不是 HTML 的替代品,甚至不能接近它。它的语法非常小,仅对应于 HTML 标签的一个非常小的子集。
因此,在标准 Markdown 中,甚至没有任何方法可以为列表项分配 ID。
在我看来,你要么需要使用列表以外的东西,要么使用 Markdown/HTML 以外的东西。