Github Markdown anchor 仅链接到页面顶部

标签 github markdown anchor

我不确定这个地方是否适合询问 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, and class or id 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 (h1h2、...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/

相关文章:

java - 如何使用 Java 获取 GitHub 提交的 SHA?

xcode - 使用 Github Release 模型托管应用程序的 Sparkle appcast

angular - 如何使用 UI-Router 防止持久性 URL anchor 链接哈希值?

laravel - 如何忽略vuejs中的html元素

ruby - 铁道3号逃离丸久

cocos2d-iphone - 如何在 cocos2d 中显示 CCNode 的 anchor ?

css - 为什么在 Windows Phone 7 的 IE 中可点击具有较低 z-index 的 div 中的链接 anchor ?

javascript - 是否可以使用 Google Analytics 信息显示博客查看计数器

java - Git:将文件自动 merge 为冲突文件

r - 将 R markdown 中的三向列联表打印到 docx