是否有等价于以下语法的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=
与name=
的注意事项此前版本的发布建议使用<a id='tith' />
,使用XHTML的自闭合语法,并使用id
属性而不是name
。
XHTML允许任何标签为空和自闭合。也就是说,<tag />
是<tag></tag>
的简写形式,一个空主体匹配对的标签。大多数浏览器将接受XHTML,但有些不支持。为避免跨浏览器问题,请明确地使用<tag></tag>
关闭标签,如上所建议。
最后,XHTML中的name=
属性已被弃用,因此我最初使用了id=
,这是每个人都熟知的。然而,HTML5在使用id=
时会创建JavaScript中的全局变量,这可能不是您想要的。因此,现在使用name=
可能更友好。
(感谢Slipp Douglas向我解释XHTML,nailer指出了HTML5的副作用——请参见评论和nailer的答案以获取更多详细信息。name=
似乎在任何地方都可用,尽管已被弃用在XHTML中)。
## 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文件的源代码并查看如何创建锚点)。
## 我的段落标题
将产生以下锚点 user-content-my-paragraph-title
,因此您可以使用 [某些文本](#user-content-my-paragraph-title)
引用它。但是,我没有找到官方文档来支持此功能。 - toto_tico使用name
。在HTML 5中使用id
是不必要的,它会在JavaScript中创建全局变量
请参阅HTML 5规范,5.9.8 跳转到片段标识符 - id
和name
都在使用。
重要的是要知道,大多数浏览器仍将ID转换为全局变量。这里有一个快速测试。使用name
避免创建全局变量和由此可能导致的任何冲突。
使用名称的示例:
Take me to [pookie](#pookie)
并且目标锚点为:
### <a name="pookie"></a>Some heading
fineuploader
的元素,则无法使用fineuploader
模块。 避免创建不必要的全局变量有助于避免这些冲突。 - mikemaccanawindow.Stripe``window.olark
和window.twttr
。了解更多信息,请访问http://www.2ality.com/2012/08/ids-are-global.html。 - mikemaccanaMarkdown Anchor支持使用hash标记,因此页面中的锚点链接可以简单地用[Pookie](#pookie)
表示。
在Gruber Markdown中实际上不支持生成锚点,但在其他实现中(例如Markdown Extra),是支持的。
在Markdown Extra中,锚点ID会附加到标题或子标题后面,格式为{#pookie}
。
Github Flavored Markdown在Git仓库页面(但不包括Gists)上自动为所有标题(h1、h2、h3等)生成锚点,包括以下若干个标记:
id="user-content-HEADERTEXT"
class="anchor"
href="#HEADERTEXT"
aria-hidden="true"
(这是一个SVG链接图标,在悬停时显示)除了aria/svg图标之外,当输入以下内容时:
# Header Title
Github将生成:
<h1><a id="user-content-header-title" class="anchor" href="#header-title">Header Title</a></h1>
因此,您无需执行任何操作即可创建标题链接,并且始终可以使用[Header Title](#header-title)
来链接它们。
[标题](#标题)
- Max Cascone### Header Title
标题可以使用大写字母,但 (#header-title)
的 markdown 必须全部小写。还有一个逗号被编码为 %2C
,我在 markdown 中使用了这样的格式 (#header-title%2C-etc)
。 - HappyGoLucky### Header Title
标题可以使用大写字母,但(#header-title)
的markdown全部是小写字母。还有一个逗号被编码为%2C
,我在markdown中使用它,就像这样(#header-title%2C-etc)
。 - undefined对于任何在GitBook中寻求解决此问题的人。这是我如何使其工作(在GitBook中)。您需要明确标记您的标题,例如:
# My Anchored Heading {#my-anchor}
那么像这样链接到此锚点
[link to my anchored heading](#my-anchor)
解决方案和其他示例可以在这里找到:https://seadude.gitbooks.io/learn-gitbook/
在原始的Markdown语法中,没有现成的语法可以实现这一点,但是Markdown Extra提供了一种至少可以将ID分配给标题的方法,然后您可以轻松地链接到它们。请注意,您可以在Markdown和Markdown Extra中使用常规HTML,并且在更高版本的HTML中,name
属性已被id
属性取代。
# 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).
从答案中我们可以看出,这方面没有标准的方式,不同的Markdown处理器在提供此类可能性的Markdown扩展方面也会有所不同。
使用Pandoc,您可以像这样获取您所要求的内容:
Take me to [pookie](#pookie)
...
[this is pookie]{#pookie}
<p>Take me to <a href="#pookie">pookie</a></p>
<p>…</p>
<p><span id="pookie">this is pookie</span></p>
你也可以用一个带有锚点id的空span:
Take me to [pookie](#pookie)
...
this is pookie []{#pookie}
这将产生:
<p>Take me to <a href="#pookie">pookie</a></p>
<p>…</p>
<p>this is pookie <span id="pookie"></span></p>
使用最新的Markdown,您应该能够使用以下语法:
[](){:name='anchorName'}
这应该会创建以下HTML:
<a name="anchorName"></a>
如果您想要锚点带有文本,只需在方括号内添加锚点文本:
[一些文本](){:name='anchorName'}
<a>
没有href
属性没有样式,这并不意味着它是自闭合的。除非我完全疯了,这两个链接: test-xhtml11 和 test-html5 在<a>
标签内渲染出页面的其余部分。使用您选择的Web检查器进行检查。 - Slipp D. Thompson<a id="hi"/> rest of doc
,但它被视为<a id="hi"> rest of doc</a>
。(网页元素分析也显示了这一点。)我犯了错误:我看的是显示的元素而不是原始源代码。考虑到这一点,您认为答案是否应该修改? - Steve Powellname
属性还会创建全局变量(参见 https://dev59.com/-3A75IYBdhLWcg3wK1wp),因此最好使用id
属性作为片段标识符 URL 的目标,以便达到预期的效果。 - Bobby Jack