我不确定这个地方是否适合询问 Github wiki markdown 问题。如果是的话我会把它删除。
所以,我正在为存储库编写一个 wiki 页面,并且我一直在尝试添加 anchor 。然而, anchor 似乎只导致重新加载页面,或者导致页面顶部。我很确定我的语法是正确的,但我不知道出了什么问题。
我的例子是:
链接为:
<a name="#dinpanel"></a>
然后我通过以下方式访问它:
[text to show](myrepositoryweburl#dinpanel)
另外,如果我只是在 URL 中输入“myrepositoryweburl#dinpanel”,它仍然会加载到页面顶部。我想知道 Markdown 是怎么回事。任何帮助将不胜感激!
最佳答案
使用 Markdown header 而不是原始 HTML anchor 。
如 github/markup 中所述,Markdown 转换为 HTML 后...
The HTML is sanitized, aggressively removing things that could harm you and your kin—such as
script
tags, inline-styles, andclass
orid
attributes.
虽然没有特别提及 name
属性,但 id
属性却有,并且它们具有类似的功能。一个previous version链接到sanitation script的文档的,它不将 name
属性包含在已批准属性的白名单中。换句话说,GitHub 的清理程序正在删除您的 name
属性。
事实上,如果您使用浏览器的查看源代码
功能,我希望您会发现该页面的 HTML 中缺少 name
属性。然而,一切并没有失去。如果您注意到,步骤 4 包括(已添加重点):
The HTML is passed through other filters in the html-pipeline that add special sauce, such as emoji, task lists, named anchors, CDN caching for images, and autolinking.
换句话说,文档中的每个 header (h1
、h2
、...h6
)都被分配了一个唯一的 id
。因此,您可以指向分配给任何 header 的id
,您将获得您想要的行为。
# Din Panel
...
[link](#din-panel)
请注意,要生成 id
,所有字符都会转换为小写 ASCII 字符,所有标点符号(连字符和空格除外)都会被删除,所有空格都会替换为连字符 (-
)。最后,如果需要,会在末尾附加一个递增的数字,以确保每个 id
都是唯一的。
如果您无法正确猜测自动生成的 id
,您可以随时在 GitHub 上查看生成的页面,并且将鼠标悬停在标题上时,文本旁边会出现一个 anchor 图标。该图标将包含指向具有正确 id
的特定 header 的链接。或者,您可以使用浏览器的查看源代码
功能(或inspect
开发人员工具)来确定分配给 header 的id
。
关于Github Markdown anchor 仅链接到页面顶部,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/53091847/