我想在 Markdown 中使用指向列表或表格(或文本)中的元素的链接,而不是专门指向标题的链接。
我发现的 Markdown 唯一解决方案是使用 HTML 锚点:
This is a list of actions:
- <a id="action-one">action one</a>`: blablanla
- <a id="action-two">action two</a>`: patata
Later, in text, [action one](#action-one) is mandatory...
这在 VScode 中运行良好(例如),但在 Gitlab 中则不然。
仅供参考:
欢迎任何想法或解决方案。谢谢。
GitLab 不允许用户在 Markdown 中设置 HTML ID 属性。 文档确实详细介绍了 HTML 清理。
我只找到了两种解决方法:
如果您只关心同一页面内的锚点,请使用
id
和 name
,例如
<a id="action-one" name="action-one">action one</a>
或者,如果您不希望锚文本带有下划线,则可以将其保留在
a
标签之外,例如
<a id="action-one" name="action-one"></a>action one
在 VS Code 和 GitLab 中,这对于同一页面中的锚点似乎很有效
对于指向其他页面的锚链接,VS Code 和 GitLab 都会显示其他页面,但不会转到锚点(尽管这可能因浏览器而异)
特别是,GitLab 将删除
id
标签,例如
<a name="action-one">action one</a>
如果您必须在不同页面中显示锚点,我找到的唯一解决方案是使用 Markdown 标题,例如 .
#### Action one
这些在 VS Code 和 GitLab 中都很有效。 GitLab 会将 Markdown 转换为如下内容:
<h4><a aria-hidden="true" href="#action-one" class="anchor" id="user-content-action-one"></a>Action one</h4>
虽然这并不理想,但一件好事是标题可以在列表中使用,并且您可以使用较小的标题(例如 h5 甚至 h6)来使它们不那么显眼。使用问题中的示例,这可能看起来像:
This is a list of actions:
- ##### action one: blablanla
- ##### action two: patata
我找到了解决 bmaupin 解决方案限制的方法,即使用
<a>
和 id
:添加一个空链接到
name
标签
<a id="link-ref" name="link-ref"></a>
<a href="#link-ref"></a>
特别是,我将其用于这样的标题:
## 2.3 ▸ some section <a id="2.3" name="2.3"></a><a href="#2.3"></a>
将标题文本呈现为“2.3 ▸ 某些部分”
这个链接是需要的,因为 gitlab 的 markdown 引擎对我们来说太智能了,并且“猜测”如果没有指向它的链接,则不需要
<a>
标签。