Github Markdown锚仅链接到页面顶部

时间:2018-10-31 20:56:51

标签: github markdown anchor

我不确定这个地方是否适合询问有关Github Wiki降价问题。如果是这样,我将其删除。

因此,我正在为存储库编写一个Wiki页面,并且我一直在尝试添加锚点。但是,锚点似乎只会导致重新加载页面或导致页面顶部。我很确定我的语法是正确的,但是我不知道出了什么问题。

我举个例子:

链接为: <a name="#dinpanel"></a>

然后我通过以下方式访问它: [text to show](myrepositoryweburl#dinpanel) 另外,如果我只是在URL上键入“ myrepositoryweburl#dinpanel”,它仍会加载到页面顶部。我想知道Markdown发生了什么。任何帮助将不胜感激!

3 个答案:

答案 0 :(得分:3)

使用Markdown标头而不是原始HTML锚点。

github/markup中所述,在Markdown转换为HTML之后...

  

对HTML进行了清理,积极删除了可能危害您和您的亲属的东西,例如script标签,内联样式以及classid属性。

虽然没有特别提到name属性,但是id属性却起着类似的作用。链接到previous version的文档sanitation script,在批准的属性的白名单中不包含name属性。换句话说,GitHub的清理工具正在删除您的name属性。

实际上,如果您使用浏览器的view source功能,那么我希望您会发现该页面HTML上缺少name属性。但是,一切并没有丢失。如果您注意到,则第4步包括(强调):

  

HTML通过html管道中的其他过滤器传递,这些过滤器添加了特殊的调味料,例如表情符号,任务列表, named anchors ,用于图像的CDN缓存和自动链接。

换句话说,文档中的每个标题(h1h2,... h6)都分配有唯一的id。因此,您可以指向分配给任何标头的id,您将获得所需的行为。

# Din Panel

...

[link](#din-panel)

请注意,要生成id,所有字符都将转换为小写ASCII字符,将删除所有标点符号(期望连字符和空格),并用连字符(-)替换所有空格。最后,如果需要,可以在末尾附加一个递增的数字,以确保每个id是唯一的。

如果您无法正确猜出自动生成的id,则始终可以在GitHub上查看生成的页面,并且将鼠标悬停在标题上时,文本旁边会出现一个锚图标。该图标将包含指向具有正确id的特定标题的链接。或者,您可以使用浏览器的view source功能(或inspect开发人员工具)来确定分配给标题的id

答案 1 :(得分:0)

GitHub Wiki剥离了您可能会嵌入HTML的所有“ id =”标记。这意味着,除非您链接到由GitHub Wiki自动生成的ID,否则页面内链接将无法工作。

例如,要在GitHub Wiki上做脚注:

首先,为您的Wiki页面的每个部分使用标题。该标题将自动生成一个ID,您可以通过预览页面并将鼠标光标稍微移到标题左侧来查看链接。转换是可以预测的:“ 这样的标题”将成为相对URL“ S.of(context)”。

从您的Wiki文档中,链接到带有如下所示内联HTML的脚注,每个脚注都有其自己的编号,从1开始。

#a-heading-like-this

在Wiki页面的末尾,按以下方式排列脚注,每个脚注都指向在其中找到脚注链接的标题:

<sup><a href="#93">[93]</a></sup>

答案 2 :(得分:-1)

我对页面中的锚点使用 Markdown 如下。

链接为:

<a id="idtext"></a>  

然后我访问它:

[text to show](#idtext)