交叉引用(命名锚点)在降价

是否有等价的标记语法:

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=

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

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

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

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

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

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

知道大多数浏览器仍然把ID变成全局variables是很重要的。 这是一个快速testing 。 使用name避免了创build全局variables和可能导致的任何冲突。

使用名称的示例:

 Take me to [pookie](#pookie) 

而目的地主播:

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

在bitbucket.org投票解决scheme将无法正常工作。 相反,当使用标题(使用##)时,可以通过将它们作为#markdown-header-my-header-name前缀来引用它们,其中#markdown-header-是由呈现器生成的隐式前缀,剩下的就是使用破折号replace空格的小头字幕标题。

 ## 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文件的源代码,看看锚是如何制作的)。

在原始的Markdown语法中没有现成的语法来执行此操作,但是Markdown Extra提供了一种方法来至less为标题分配标识,然后您可以轻松地将其链接到标题。 还要注意的是,在Markdown和Markdown Extra中都可以使用普通的HTML,并且name属性已经被更新版本的HTML中的id属性所取代。

晚会之后,但我认为这个补充可能对那些正在使用rmarkdown人有用。 在rmarkdown中内置了对文档中头文件的引用的支持。

任何标题定义

 # Header 

可以被引用

 get me back to that header(#header) 

以下是显示此行为的最小独立.rmd文件。 它可以编织成.pdf.html

 --- title: "references in rmarkdown" output: html_document: default pdf_document: default --- # Header Write some more text. Write some more text. Write some more text. Write some more text. Write some more text. Write some more text. Write some more text. Write some more text. Write some more text. Write some more text. Write some more text. Go back to that [header](#header). 

对于大多数普通的降价发电机。 你有一个简单的自我生成的锚在每个头。 例如使用pandoc ,生成的锚点将会是一个烤肉串的情况。

  echo "# Hello, world\!" | pandoc # => <h1 id="hello-world">Hello, world!</h1> 

根据你使用哪种markdownparsing器,锚点可以改变(以symbolrush和La Pelleu的答案为例,它们是不同的!)。 看到这个babelmark ,你可以看到生成的锚定取决于你的降价实施

Markdown Anchor支持哈希标记,因此链接到页面中的一个锚点就是[Pookie](#pookie)

在Gruber Markdown中实际上不支持生成锚点,但在其他实现中,如Markdown Extra 。

在Markdown Extra中,锚点ID将附加到包含{#pookie}的标题或子标题。

在Git仓库页面(但不是在Gist)中,Github Flavored Markdown会 自动在所有标题(h1,h2,h3等)上生成带有多个标记标签的锚点 ,其中包括:

  • id="user-content-HEADERTEXT"
  • class="anchor"
  • href="#HEADERTEXT"
  • aria-hidden="true" (这是一个在鼠标hover上显示的svg链接图标)

不包括aria / svg图标,当一个人写道:

  • # Header Title

Github生成:

  • <h1><a id="user-content-header-title" class="anchor" href="#header-title">Header Title</a></h1>

因此,不需要创build标题链接,可以始终链接到它们:

  • 链接到[Header Title](#header-title)

使用最新的Markdown,您应该能够使用以下语法:

[](){:name='anchorName'}

这应该创build下面的HTML:

<a name="anchorName"></a>

如果你想让锚点有文字,只需在方括号内添加testing:

`一些文字{:name ='anchorName'}