如何链接到多标记中的命名锚点?

我曾多次提到MultiMarkdown对内部链接/命名锚点的支持,但我找不到一个实际操作的示例。

那么,表示命名锚点的语法是什么,链接到它的语法是什么,就像链接到任何其他URL一样(仅使用#foo而不是http://....)?

527097 次浏览

取自MultiMarkdown用户指南(感谢Twitter上的@MultiMarkdown指出)

[Some Text][]将链接到名为“一些文本”的标头
例如

### Some Text ###

您选择的可选标签,以帮助消除多个标头具有相同标题的情况:

### Overview [MultiMarkdownOverview] ##

这允许您使用[MultiMarkdown Overview]专门引用此部分,而不是另一个名为Overview的部分。这适用于atx或settext样式的标题。

如果您已经使用标头使用的相同id定义了锚点,则定义的锚点优先。

除了文档中的标题之外,您还可以为图像和表格提供标签,这些标签也可以用于交叉引用。

在标准Markdown中,将锚点<a name="abcd"></a>放置在您要链接到的位置,并通过[link text](#abcd)在同一页面上引用它。

(这使用name=而不是id=,原因在这个答案中解释。

当然,远程引用可以使用[link text](http://...#abcd)

如果您可以控制源和目标文本,这就像做梦一样。锚点甚至可以出现在标题中,因此:

### <a name="head1234"></a>A Heading in this SO entry!

生产:

在这个入口的标题!

我们甚至可以链接到它:

and we can even [link](#head1234) to it so:

(在SO上,链接不起作用,因为锚点被剥离了。

如果您在降价文件中有标题,您可以直接将它们链接到文件中。

Markdown标题:

## The Header

这将生成一个隐式id#the-header(将内部空格替换为连字符并使用小写)。

要导航到这个id,您可以像这样创建链接:

[Link to Header](#the-header)

这相当于:

<a href="#the-header">Link to Header</a>

请注意,引用的名称是小写的#header

创建内部链接(与部分相关)的最佳方法是创建列表,但如果标题包含空格,则放入#section#section-title而不是链接。

Markdown

Go to section
* [Hello](#hello)
* [Hello World](#hello-world)
* [Another section](#new-section) <-- it's called 'Another section' in this list but refers to 'New section'




## Hello
### Hello World
## New section

列表预览

Go to section
Hello           <-- [Hello](#hello)                 -- go to `Hello` section
Hello World     <-- [Hello World](#hello world)     -- go to `Hello World` section
Another section <-- [Another section](#new-section) -- go to `New section`

超文本标记语言

<p>Go to section</p>
<ul>
<li><a href="#hello">Hello</a></li>
<li><a href="#hello-world">Hello World</a></li>
<li><a href="#new-section">Another section</a> &lt;– it’s called ‘Another section’ in this list but refers to ‘New section’</li>
</ul>
<h2 id="hello">Hello</h2>
<h3 id="hello-world">Hello World</h3>
<h2 id="new-section">New section</h2>

无论它是h1h2h3等标头,您总是仅使用一个#来引用它。
节列表中的所有引用都应转换为小写文本,如上例所示。

该部分的链接应该是小写的。否则它不起作用。这种技术适用于所有Markdown变体,也适用于MultiMarkdown。

目前我正在使用Pandoc来转换文档格式。它比MultiMarkdown好得多。
在这里测试Pandoc

我测试了Github风格的Markdown一段时间,可以总结为四个规则:

  1. 标点符号将被删除
  2. 领先的空白将被删除
  3. 大写字母将转换为小写
  4. 字母之间的空格将转换为-

例如,如果您的部分名为:

## 1.1 Hello World

以这种方式创建一个链接:

[Link](#11-hello-world)

这是我的解决方案(来自SaraubhM的答案)

**Jump To**: [Hotkeys & Markers](#hotkeys-markers) / [Radii](#radii) / [Route Wizard 2.0](#route-wizard-2-0)

它给你:

跳转到:热键和标记/半径/路由向导2.0

请注意从.-的变化以及链接中&的丢失。

在md魅力中,它是这样的:

* [Descripción](#descripcion)
* [Funcionamiento](#funcionamiento)
* [Instalación](#instalacion)
* [Configuración](#configuracion)

### Descripción {#descripcion}
### Funcionamiento {#funcionamiento}
### Instalación {#instalacion}
### Configuración {#configuracion}

另一种选择(您可以将所有链接放在文件底部):

Here is an [example label].


[example label]: #the-anchor-name-or-id "Optional title for mouse hover"