Markdown: как ссылаться на элемент в нумерованном списке по номеру (например, ref / label LaTeX)?
есть ли способ в markdown сделать эквивалент перекрестных ссылок в этом фрагменте 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}.
этот латекс производит
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.
2 ответов
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>
обратите внимание, что нет указания на то, какой элемент является, насколько нумерация идет. Это все выводится во время рендеринга браузером. Тем не менее, числовые значения не сохраняются в документе и не referancable или linkable. Они предназначены только для показа и не служат никому другому цель.
теперь вы могли бы написать некоторые пользовательские HTML для идентификации каждый элемент списка и делать их referencable:
<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>
однако эти идентификаторы жестко закодированы и не имеют никакого отношения к номерам, используемым для отображения элементов. Хотя, я предполагаю, что это то, что вы хотите. Чтобы внести обновленные изменения:
<ol>
<li is="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>
идентификаторы остаются с элементом по назначению. Однако давайте перейдем к ссылкам на эти элементы списка. Заметим, что на первой итерации мы имел:
<a href="#item1>1</a>
и с обновлением у нас было:
<a href="#item1>2</a>
единственным отличием является метка ссылки (изменена с" 1 "на"2"). Это на самом деле изменение текста документа через какой-то макро-магический материал. Не то, что HTML может сделать, по крайней мере, без помощи JavaScript и/или CSS.
другими словами, текст каждой ссылки на элемент необходимо будет вручную обновлять по всему документу каждый раз, когда список обновляется. И это для ФОРМАТ HTML. Как насчет уценки? Как правила:
Markdown не является заменой HTML или даже близко к нему. Его синтаксис очень мал, соответствует только очень маленькому подмножеству HTML-тегов.
поэтому в стандартной уценке нет даже никакого способа назначить идентификаторы элементам списка.
мне кажется, вам нужно либо использовать что-то другое, чем списки, либо использовать что-то другое, кроме 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>