Answers:
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>
,请按照上述建议使用明确关闭标签。
最后,该属性name=
在XHTML中已弃用,因此我最初使用id=
,每个人都可以识别。但是,HTML5现在在使用时会在JavaScript中创建一个全局变量id=
,而这不一定是您想要的。因此,使用name=
现在可能会更友好。
(感谢Slipp Douglas向我解释了XHTML,以及nailer指出了HTML5的副作用- 有关更多详细信息,请参见注释和nailer的答案。name=
尽管XHTML中已弃用了该方法,但它似乎无处不在。)
<a>
没有href的样式没有任何样式,并不意味着它就自动关闭。除非我完全发疯,否则这两个:test-xhtml11和[ sln.6bitt.com/public/test-html5.html](test-html5)会在<a>标记内呈现页面的其余部分。继续并与您选择的网络检查器一起检查。
<a id="hi"/> rest of doc
,但是被当作<a id="hi"> rest of doc</a>
。(页面的元素分析也显示了这一点。)我的错误:我查看的是显示的元素,而不是原始数据。根据这种观察,您认为答案应该修改吗?
在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文件的来源,并查看锚的制作方式)。
## My paragraph title
将产生以下锚点user-content-my-paragraph-title
,因此您可以使用[Some text](#user-content-my-paragraph-title)进行引用。但是,我还没有找到官方文档。
[linky](#header)
已经足够了,并且在发布给Gist时也起作用。
使用name
。id
在HTML 5中不必使用,而是会在JavaScript中创建全局变量
请参阅HTML 5规范5.9.8导航至片段标识符 - id
和name
都使用。
重要的是要知道大多数浏览器仍会将ID转换为全局变量。这是一个快速测试。使用a name
避免创建全局变量以及可能导致的任何冲突。
使用名称的示例:
Take me to [pookie](#pookie)
和目标锚点:
### <a name="pookie"></a>Some heading
name
和id
是不同的。
fineuploader
,则将无法使用该fineuploader
模块。避免创建不必要的全局变量有助于避免这些冲突。
Markdown Anchor支持井号,因此指向页面中锚点的链接就是[Pookie](#pookie)
Gruber Markdown实际上并不支持生成锚,但其他实现(例如Markdown Extra)则支持生成锚。
在Markdown Extra中,锚ID通过附加到标头或子标头{#pookie}
。
Git储存库页面中的Github Flavored Markdown(而不是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)
最初的Markdown语法中没有现成的语法可以执行此操作,但是Markdown Extra提供了一种至少将ID分配给标头的方法,然后可以轻松地链接到标头。还要注意,您可以在Markdown和Markdown Extra中都使用常规HTML,并且该name
属性已被id
最新版本的HTML 中的属性所取代。
对于正在GitBook中寻求此问题解决方案的任何人。这就是我使其工作的方式(在GitBook中)。您需要显式标记标头,如下所示:
# My Anchored Heading {#my-anchor}
然后像这样链接到该锚点
[link to my anchored heading](#my-anchor)
解决方案和其他示例可以在这里找到:https : //seadude.gitbooks.io/learn-gitbook/
晚会晚了,但我认为此添加可能对与之合作的人有用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).
使用最新的Markdown,您应该能够使用以下语法:
[](){:name='anchorName'}
这将创建以下HTML:
<a name="anchorName"></a>
如果您希望锚点具有文本,只需在方括号内添加锚点文本:
[Some Text](){:name='anchorName'}
Maruku
知道这种语法。请参阅babelmark。