簡體   English   中英

Markdown:如何通過編號(如 LaTeX 的 \\ref / \\label)引用編號列表中的項目?

[英]Markdown: How to reference an item in a numbered list, by number (like LaTeX's \ref / \label)?

在降價中有什么方法可以在此 LaTeX 片段中進行等效的交叉引用? (取自這里。)

\begin{enumerate}
    \item \label{itm:first} This is a numbered item
    \item Another numbered item \label{itm:second}
    \item \label{itm:third} Same as \ref{itm:first}
\end{enumerate}
Cross-referencing items \ref{itm:second} and \ref{itm:third}.

這個 LaTeX 產生

1. This is a numbered item
2. This is another numbered item
3. Same as 1

Cross-referencing items 2 and 3.

也就是說,我希望能夠在不顯式編號的情況下引用降價列表中的項目,以便我可以將上面的列表更改為以下內容,而無需手動更新交叉引用:

1. This is the very first item
2. This is a numbered item
3. This is another numbered item
4. Same as 2

Cross-referencing items 3 and 4.

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 不是 HTML 的替代品,甚至不是 HTML 的替代品。 它的語法非常小,僅對應於 HTML 標簽的一個非常小的子集。

因此,在標准 Markdown 中,甚至沒有任何方法可以為列表項分配 ID。

在我看來,您要么需要使用列表以外的其他內容,要么使用 Markdown/HTML 以外的其他內容。

也許你需要使用 H1.. H6 然后 Markdown 生成一個錨點,你可以鏈接到:

# H1
## H2
### H3
#### H4
##### H5
###### H6

就像是:

###### 1. This is a numbered item
###### 2. This is another numbered item
###### 3. Same as 1

產生:

<h6 id="1-this-is-a-numbered-item">1. This is a numbered item</h6>
<h6 id="2-this-is-another-numbered-item">2. This is another numbered item</h6>
<h6 id="3-same-as-1">3. Same as 1</h6>

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM