Gitlab中,如何在Markdown中使用除标题以外的锚点?

9

我希望在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中不起作用。

提示信息:

欢迎任何想法或解决方案。谢谢。


我要说没有一个。VSCode正在解释HTML,所以它可以工作,但在GitLab上,HTML通常不被支持在描述/评论中使用。 - undefined
1个回答

1
GitLab在Markdown中不允许用户设置HTML ID属性。文档对HTML清理有更详细的说明。
我只找到了两种解决方法:
如果您只关心同一页内的锚点,请使用idname,例如:
<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标题,例如:
#### 动作一
这在VS Code和GitLab中都很好用。GitLab会将Markdown转换成类似以下的内容:
<h4><a aria-hidden="true" href="#action-one" class="anchor" id="user-content-action-one"></a>动作一</h4>
虽然这不是理想的解决方案,但一个好处是标题在列表中也可以使用,并且你可以使用较小的标题(例如h5甚至h6)使它们不那么显眼。使用问题中的示例,可以这样写:
这是一个动作列表:
- ##### 动作一:blablanla - ##### 动作二:patata

谢谢你的时间和回复,@bmaupin。正如我在问题中提到的,使用标题标签不是一个选项;解决方案需要指向一个列表。在我2020年的原始帖子中,我尝试了你提出的使用id和name属性的解决方案,但没有成功。也许现在会有效。我将测试并确认该解决方案是否适用于GitLab和VSCode。再次感谢你。 - undefined

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接