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

我试着用:

[a link](# MyTitle)

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


当前回答

在Markdown规范中没有这样的指令,抱歉。

其他回答

试验,我发现了一个解决方案使用<div…/>,但一个明显的解决方案是在页面中放置自己的锚点,无论你喜欢,因此:

<a name="abcde">

之前和

</a>

在你想要“链接”到的行之后。然后是一个降价链接:

[link text](#abcde)

文档中的任何地方都可以。

<div…/>解决方案插入一个“假”除法只是为了添加id属性,这可能会破坏页面结构,但<a name="abcde"/>解决方案应该是非常无害的。

(PS:把锚点放在你想链接的行中也可以,如下所示:

## <a name="head1">Heading One</a>

但这取决于Markdown如何处理。我注意到,例如,Stack Overflow答案格式化器很高兴这样!)

在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>

一些额外的事情要记住,如果你曾经在你想导航到的标题中的符号…

# What this is about


------


#### Table of Contents


- [About](#what-this-is-about)

- [&#9889; Sunopsis](#9889-tldr)

- [:gear: Grinders](#it-grinds-my-gears)

- [Attribution]


------


## &#9889; TLDR


Words for those short on time or attention.


___


## It Grinds my :gear:s


Here _`:gear:`_ is not something like &#9881; or &#9965;


___


## &#9956; Attribution


Probably to much time at a keyboard



[Attribution]: #9956-attribution

... 标题字符串中的#、;、&和:之类的内容通常会被忽略/加条纹而不是转义,还可以使用引用样式的链接来简化快速使用。

笔记 GitHub在提交、自述文件等中支持:word:语法,如果对使用'em感兴趣,请参阅gist(来自rxaviers)。 现代浏览器几乎可以在其他任何地方使用十进制或十六进制;来自w3schools的备考单非常方便,特别是如果使用CSS::before或::after带符号的伪元素更符合你的风格。

加分吗?

以防有人想知道标题中的图像和其他链接是如何解析为id的……

- [Imaged](#alt-textbadge__examplehttpsexamplecom-to-somewhere)


## [![Alt Text][badge__example]](https://example.com) To Somewhere


[badge__example]:
  https://img.shields.io/badge/Left-Right-success.svg?labelColor=brown&logo=stackexchange
  "Eeak a mouse!"

警告

MarkDown渲染因地而异,所以像……

## methodName([options]) => <code>Promise</code>

... 在GitHub上将有一个带有id的元素,例如…

id="methodnameoptions--promise"

... vanilla sanitation会导致id为…

id="methodnameoptions-codepromisecode"

... 这意味着从模板中编写或编译MarkDown文件要么需要针对一种slugifeing方式,要么为各种巧妙的方式添加配置和脚本逻辑,比如清理标题的文本。

Github会自动从你的标题中解析锚标记。所以你可以这样做:

[Custom foo description](#foo)

# Foo

在上面的例子中,Foo头生成了一个名为Foo的锚标记

注意:所有标题大小只有一个#,#和锚点名称之间没有空格,锚点标签名称必须小写,如果有多个单词,则用破折号分隔。

[click on this link](#my-multi-word-header)

### My Multi Word Header

更新

潘多克也不例外。

这可能是过时的线程,但创建内部文档链接markdown在Github使用… (注意:小写#title)

# Contents
 - [Specification](#specification) 
 - [Dependencies Title](#dependencies-title) 

## Specification
Example text blah. Example text blah. Example text blah. Example text blah. 
Example text blah. Example text blah. Example text blah. Example text blah. 
Example text blah. Example text blah. Example text blah. Example text blah. 
Example text blah. Example text blah. 

## Dependencies Title
Example text blah. Example text blah. Example text blah. Example text blah. 
Example text blah. Example text blah. Example text blah. Example text blah. 
Example text blah. Example text blah. Example text blah. Example text blah. 
Example text blah. Example text blah. 

这是一个很好的问题,所以我修改了我的答案;

可以使用- #,##,###,####创建到任何大小的标题的内部链接 我在下面创建了一个简单的例子… https://github.com/aogilvie/markdownLinkTest