是否存在等价的markdown语法:
Take me to <a href="#pookie">pookie</a>
...
<a name="pookie">this is pookie</a>
是否存在等价的markdown语法:
Take me to <a href="#pookie">pookie</a>
...
<a name="pookie">this is pookie</a>
当前回答
Markdown Anchor支持hashmark,因此在页面中链接到一个锚将简单地[Pookie](# Pookie)
在Gruber Markdown中实际上不支持生成锚,但在其他实现中支持,例如Markdown Extra。
在Markdown Extra中,锚点ID用{#pookie}附加到标题或子标题中。
Github调味Markdown在Git存储库页面(但不是在gist)自动生成在所有标题(h1, h2, h3等)上带有几个标记标记的锚,包括:
id = " user-content-HEADERTEXT " 类=“锚” href = " # HEADERTEXT” Aria-hidden ="true"(这是用于鼠标悬停时显示的SVG链接图标)
除了咏叹调/svg图标,当有人写道:
#标题标题
Github生成:
<h1><a id=“user-content-header-title” class=“anchor” href=“#header-title”>Header Title</a></h1>
因此,一个人不需要做任何事情来创建头链接,并且总是可以链接到它们:
链接到[标题标题](# Header - Title)
其他回答
对于任何喜欢使用不同级别的头文件的人来说,注意到头文件的链接应该只使用一个#,不管头文件的级别是多少:
# This is an H1
## This is an H2
### This is an H3
...
[Take me to H3](#this-is-an-H3)
[Take me to H1](#this-is-an-H1)
[This won't work](##-this-is-an-H2)
使用一个名字。在HTML 5中不需要使用id,它会在JavaScript中创建全局变量
参见HTML 5规范,5.9.8导航到片段标识符- id和name都被使用。
重要的是要知道大多数浏览器仍然将id转换为全局变量。这里有一个快速测试。使用名称可以避免创建全局变量和可能导致的任何冲突。
使用名称的示例:
Take me to [pookie](#pookie)
和目的锚点:
### <a name="pookie"></a>Some heading
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现在在使用id=时在JavaScript中创建了一个全局变量,这可能不是你想要的。因此,使用name=现在可能更加友好。
(感谢Slipp Douglas向我解释XHTML,感谢nailer指出HTML5的副作用——更多细节请看评论和nailer的回答。name=似乎在任何地方都可以工作,尽管它在XHTML中已被弃用。)
正如我们所看到的(从答案中),这没有标准的方法;不同的降价处理器在提供这种可能性的降价扩展方面会有所不同。
使用pandoc,你可以得到你想要的:
Take me to [pookie](#pookie)
...
[this is pookie]{#pookie}
这给出了(通过pandoc-2.9.2.1):
<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>
除此之外,对于pandoc和大多数常见的markdown生成器,在每个报头中都有一个简单的自生成锚。(请参阅此处和其他答案,以方便地(自动)生成和引用此类锚。)
对于头部包含表情符号的情况,我将快速补充,在这种情况下,只需删除引用链接中的表情符号就更简单了。例如
# ⭐ Title 2
....
[Take me to title 2](#-title-2)
在某些情况下,由于一些奇怪的原因,这不起作用,例如在这里的设置中。这种情况下的解决方案是包括表情符号的整个代码。