我正在编写一个大型Markdown文档,并希望在开始时放置一个目录,将提供到文档中各个位置的链接。我该怎么做呢?
我试着用:
[a link](# MyTitle)
其中MyTitle是文档中的一个标题,但这不起作用。
我正在编写一个大型Markdown文档,并希望在开始时放置一个目录,将提供到文档中各个位置的链接。我该怎么做呢?
我试着用:
[a link](# MyTitle)
其中MyTitle是文档中的一个标题,但这不起作用。
当前回答
pandoc手册解释了如何使用头文件的标识符链接到头文件。我没有检查其他解析器对此的支持,但据报道,它不能在github上工作。
标识符可以手动指定:
## my heading text {#mht}
Some normal text here,
including a [link to the header](#mht).
或者您可以使用自动生成的标识符(在本例中是#my-heading-text)。在pandoc手册中都有详细的解释。
注意:这只适用于转换为HTML, LaTex, ConTeXt, Textile或AsciiDoc。
其他回答
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)
也可以手动操作:用连字符替换空格。
这里有一个活生生的例子
除了以上的答案,
当在YAML头中设置选项number_sections: true时:
number_sections: TRUE
RMarkdown会自动为你的章节编号。
要引用这些自动编号的部分,只需在您的R Markdown文件中放入以下内容:
(我的部分)
Where My Section是Section的名称
这似乎不管section级别都有效:
#我的部分
##我的部分
###我的部分
在我的情况下,我正在寻找一个没有Pandoc的TOC解决方案。每个TOC条目都包含一个指向标题的链接,格式为[显示名称](#-url- formatting - Name -of-header)
对于2个缩进级别的简单情况,
1. [Installation](#1-installation)
1.1. [Minimum System Requirements](#11-minimum-system-requirements)
1.2. [Prerequisites](#12-prerequisites)
结果:
安装 1.1. 系统最低要求 1.2. 先决条件
对于包含3个或更多缩进级别的一般多级编号列表,列表无法在第3级或更高级别进一步缩进(例如1.3.2.)。相反,我能找到的最好的解决方案是使用>>>来格式化嵌套的blockquotes。
## Table of Contents
>1. [Installation](#1-installation)
>>1.1. [Minimum System Requirements](#11-minimum-system-requirements)
>>1.2. [Prerequisites](#12-prerequisites)
>>>1.2.1. [Preparation of Database Server](#121-preparation-of-database-server)
>>>1.2.2. [Preparation of Other Servers](#122-preparation-of-other-servers)
>>
>>1.3. [Installing – Single Server](#13-installing-single-server)
>>1.4. [Installing – Multi Server](#14-installing-multi-server)
>>>1.4.1. [Database Server](#141-database-server)
>>>...
结果在GitHub上很好地渲染TOC。不能渲染它在这里没有SO的linter抱怨未格式化的代码。
注意1.2.2之后的空白条目。 如果没有空白条目,下面的行仍然停留在第3个blockquote缩进级别。
相比之下,项目列表只使用空格或制表符作为缩进标记
## Table of Contents
- [Installation](#1-installation)
- [Minimum System Requirements](#11-minimum-system-requirements)
- [Prerequisites](#12-prerequisites)
- [Preparation of Database Server](#121-preparation-of-database-server)
- [Preparation of Other Servers](#122-preparation-of-other-servers)
- [Installing – Single Server](#13-installing-single-server)
- [Installing – Multi Server](#-installing-multi-server)
- [Database Server](#141-database-server)
- ...
结果:
目录
安装 系统最低要求 先决条件 数据库服务器准备 其他服务器准备 安装—单机 安装-多服务器 数据库服务器 ...
所有上述缩进列表将成功链接到以下标题在GitHub markdown(标题无法链接在so风味markdown出于某种原因)-
# 1. Installation
## 1.1. Minimum System Requirements
## 1.2. Prerequisites
### 1.2.1. Preparation of Database Server
### 1.2.2. Preparation of Other Servers
## 1.3. Installing – Single Server
## 1.4. Installing – Multi Server
### 1.4.1. Database Server
只需遵循[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,等等。
Github会自动从你的标题中解析锚标记。所以你可以这样做:
[Custom foo description](#foo)
# Foo
在上面的例子中,Foo头生成了一个名为Foo的锚标记
注意:所有标题大小只有一个#,#和锚点名称之间没有空格,锚点标签名称必须小写,如果有多个单词,则用破折号分隔。
[click on this link](#my-multi-word-header)
### My Multi Word Header
更新
潘多克也不例外。