我正在编写一个大型Markdown文档,并希望在开始时放置一个目录,将提供到文档中各个位置的链接。我该怎么做呢?

我试着用:

[a link](# MyTitle)

其中MyTitle是文档中的一个标题,但这不起作用。


当前回答

是的,markdown确实做到了这一点,但你需要指定名称anchor <a name='xyx'>。

一个完整的例子,

这就创建了链接 (任务)(#任务)

在文档的其他地方,您创建了命名锚(不管它叫什么)。

<a name="tasks">
   my tasks
</a>

注意,你也可以把它环绕在标题上。

<a name="tasks">
### Agile tasks (created by developer)
</a>

其他回答

在pandoc中,如果在生成html时使用——toc选项,将生成一个包含到章节的链接的目录,并从章节标题返回到目录。它类似于pandoc编写的其他格式,如LaTeX、rtf、rst等。对于命令

pandoc --toc happiness.txt -o happiness.html

这里有一点降价:

% True Happiness

Introduction
------------

Many have posed the question of true happiness.  In this blog post we propose to
solve it.

First Attempts
--------------

The earliest attempts at attaining true happiness of course aimed at pleasure. 
Soon, though, the downside of pleasure was revealed.

将产生这个作为html的主体:

<h1 class="title">
    True Happiness
</h1>
<div id="TOC">
    <ul>
        <li>
            <a href="#introduction">Introduction</a>
        </li>
        <li>
            <a href="#first-attempts">First Attempts</a>
        </li>
    </ul>
</div>
<div id="introduction">
    <h2>
        <a href="#TOC">Introduction</a>
    </h2>
    <p>
        Many have posed the question of true happiness. In this blog post we propose to solve it.
    </p>
</div>
<div id="first-attempts">
    <h2>
        <a href="#TOC">First Attempts</a>
    </h2>
    <p>
        The earliest attempts at attaining true happiness of course aimed at pleasure. Soon, though, the downside of pleasure was revealed.
    </p>
</div>

使用kramdown,看起来效果不错:

[I want this to link to foo](#foo)
....
....
{: id="foo"}
### Foo are you?

我看到有人提到过

[foo][#foo]
....
#Foo

工作效率很高,但对于除标题外的元素或具有多个单词的其他标题,前者可能是一个很好的选择。

Gitlab 使用 GitLab Flavored Markdown (GFM)

这里“所有markdown -render头自动获得id”

可以使用鼠标:

将鼠标移到页眉上 将鼠标移动到悬停选择器上,从头部左侧可见 复制和保存链接使用鼠标右键单击 例如在README中。md文件我有头文件:

Boettcher函数的级数展开公式

它给出了一个链接:

https://gitlab.com/adammajewski/parameter_external_angle/blob/master/README.md#series-expansion-formula-of-the-boettcher-function

前缀可以删除,所以这里的链接是简单的

file#header

这里的意思是:

README.md#series-expansion-formula-of-the-boettcher-function

现在它可以用作:

[Boettcher函数的级数展开公式](readme .md#series- expand -formula-of- Boettcher -function)

也可以手动操作:用连字符替换空格。

这里有一个活生生的例子

只需遵循[text](#link)语法并遵循以下指导原则:

把字母和数字原封不动地写下来 用破折号-替换空格 删除其余的字符

举个例子,如果你有这些部分:

# 1. Python

# 2. c++

# 3. c++11

# 4. asp.net-core

您可以使用以下命令添加引用:

[1. Python](#1-python)
[2. c++](#2-c)
[3. c++11](#3-c11)
[4. asp.net-core](#4-aspnet-core)

注意asp.net-core如何变成aspnet-core, 1。Python变成了1-python,等等。

除了以上的答案,

当在YAML头中设置选项number_sections: true时:

number_sections: TRUE

RMarkdown会自动为你的章节编号。

要引用这些自动编号的部分,只需在您的R Markdown文件中放入以下内容:

(我的部分)

Where My Section是Section的名称

这似乎不管section级别都有效:

#我的部分

##我的部分

###我的部分