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

问题描述 投票:0回答:2

我想在 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 中则不然。

仅供参考:

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

visual-studio-code hyperlink gitlab markdown
2个回答
1
投票

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
    

1
投票

我找到了解决 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>
标签。

© www.soinside.com 2019 - 2024. All rights reserved.