如何链接到Multimarkdown中的命名锚点?

时间:2011-07-14 15:06:15

标签: markdown multimarkdown

我遇到过许多提及MultiMarkdown对内部链接/命名锚点的支持,但我无法找到如何实际执行此操作的单个示例。

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

7 个答案:

答案 0 :(得分:590)

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

(由this answer中解释的原因使用name=而非id=

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

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

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

产生

此SO条目中的标题!

我们甚至可以链接到它:

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

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

答案 1 :(得分:339)

如果您在markdown文件中有标题,则可以直接在文件中链接它们。

Markdown Header -

## The Header

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

要导航到此ID,您可以创建如下链接:

[Link to Header](#the-header)

这相当于:

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

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

答案 2 :(得分:125)

取自Multimarkdown Users Guide(感谢Twitter上的@MultiMarkdown指出)

[Some Text][]会链接到名为“Some Text”的标题 例如

### Some Text ###

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

### Overview [MultiMarkdownOverview] ##
  

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

     

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

     

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

答案 3 :(得分:84)

我测试了 Github Flavored Markdown 一段时间,可以总结四条规则:

  1. 标点符号将被删除
  2. 领先的空白区域将被删除
  3. 大写将转换为低级
  4. 字母之间的空格将转换为-
  5. 例如,如果您的部分命名为:

    ## 1.1 Hello World
    

    以这种方式创建指向它的链接:

    [Link](#11-hello-world)
    

答案 4 :(得分:19)

创建内部链接(与部分相关)的最佳方法是创建列表,但如果标题包含空格,则将#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

---- LIST PREVIEW ------------------------

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`

---- HTML ------------------------

<p>Go to section</p>
<ul>
<li><a href="#hello">Hello</a><br />
</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>

无论是h1,h2,h3等标题,您只需使用一个#来引用它。
部分列表中的所有引用都应转换为小写文本,如上例所示。

指向该部分的链接应为小写。以其他方式无法正常工作。
这种技术适用于所有Markdown变体,也适用于MultiMarkdown。

目前,我使用Pandoc转换文档格式。它比MultiMarkdown要好得多 Test Pandoc here

答案 5 :(得分:6)

在mdcharm中,它是这样的:

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

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

答案 6 :(得分:2)

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

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

这给了你:

跳转:热键&amp;标记/半径/路线向导2.0

请注意.-的更改以及链接中&的丢失。