参考(命名锚点)在降价

有相当于下面的markdown语法:

Take me to <a href="#pookie">pookie</a>

... 

<a name="pookie">this is pookie</a>

Take me to [pookie](#pookie)

应该是正确的markdown语法来跳转到名为pookie的锚点。

要插入该名称的锚点,请使用HTML:

<a name="pookie"></a>

Markdown似乎并不介意放置锚点的位置。 一个有用的地方放在它的标题。 例如:

### <a name="tith"></a>This is the Heading

工作得很好。 (我会在这里演示,但是SO的渲染器会去掉锚点。)

请注意自动关闭标签和id= vs name=

这篇文章的早期版本建议使用<a id='tith' /> ,使用XHTML的自动关闭语法,并使用id属性而不是name

XHTML允许任何标签都是“空的”和“自封闭的”。 也就是说, <tag />对于<tag></tag> <tag />是简短的,它是一对匹配的具有空体的标签。 大多数浏览器都会接受XHTML,但有些则不会。 为避免跨浏览器问题,请使用<tag></tag>显式关闭<tag></tag> ,如上所述。

最后,属性name=在XHTML中被弃用,所以我最初使用了id= ,每个人都可以识别。 但是,当使用id=时,HTML5现在在JavaScript中创建一个全局变量,而这可能不一定是您想要的。 所以,使用name=现在可能会更友好。

(感谢Slipp Douglas向我解释XHTML,并指出HTML5的副作用 - 请参阅评论和nailer的答案以获取更多详细信息。name name=似乎可以在任何地方工作,但它在XHTML中已弃用)。


使用一个name 在HTML 5中使用id不是必需的,并且会在JavaScript中创建全局变量

请参阅HTML 5规范,5.9.8导航到片段标识符 - 使用idname

知道大多数浏览器仍将ID变成全局变量很重要。 这是一个快速测试。 使用name避免了创建全局变量以及可能导致的任何冲突。

使用名称的示例:

Take me to [pookie](#pookie)

目的地主播:

### <a name="pookie"></a>Some heading

在bitbucket.org上投票的解决方案将无法正常工作。 相反,当使用标题(带有##)时,可以通过将它们作为#markdown-header-my-header-name前缀来引用它们,其中#markdown-header-是由呈现器生成的隐式前缀,并且其余部分是使用破折号替换空格的小头标题。

## My paragraph title

会产生一个像这样的隐式锚

#markdown-header-my-paragraph-title

每个锚点引用之前的整个URL都是可选的,即

[Some text](#markdown-header-my-paragraph-title)

相当于

[Some text](https://bitbucket.org/some_project/some_page#markdown-header-my-paragraph-title) 

只要它们在同一页面中即可。

来源:https://bitbucket.org/tutorials/markdowndemo/overview(编辑这个.md文件的源代码,并看看锚是如何制作的)。

链接地址: http://www.djcxy.com/p/89007.html

上一篇: reference (named anchor) in markdown

下一篇: fix header offsetting an html anchor