是否存在等价的markdown语法:

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

... 

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

当前回答

正如我们所看到的(从答案中),这没有标准的方法;不同的降价处理器在提供这种可能性的降价扩展方面会有所不同。

使用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)

在某些情况下,由于一些奇怪的原因,这不起作用,例如在这里的设置中。这种情况下的解决方案是包括表情符号的整个代码。

使用一个名字。在HTML 5中不需要使用id,它会在JavaScript中创建全局变量

参见HTML 5规范,5.9.8导航到片段标识符- id和name都被使用。

重要的是要知道大多数浏览器仍然将id转换为全局变量。这里有一个快速测试。使用名称可以避免创建全局变量和可能导致的任何冲突。

使用名称的示例:

Take me to [pookie](#pookie)

和目的锚点:

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

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

[] () {: name =‘anchorName}

这将创建以下HTML:

<a name=“anchorName”></a>

如果你想要锚点有文本,只需在方括号内添加锚点文本:

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

在最初的Markdown语法中没有现成的语法来做到这一点,但是Markdown Extra提供了一种方法,至少可以将id分配给标题-然后可以轻松地链接到标题。还要注意,您可以在Markdown和Markdown Extra中使用常规HTML,并且在最新版本的HTML中,name属性已经被id属性所取代。

对于在GitBook中寻找此问题解决方案的任何人。这就是我如何使它工作(在GitBook)。你需要显式地标记你的标题,像这样:

# My Anchored Heading {#my-anchor}

然后像这样链接到这个锚

[link to my anchored heading](#my-anchor)

解决方案和其他示例可以在这里找到:https://seadude.gitbooks.io/learn-gitbook/