我正在编写一个大型Markdown文档,并希望在开始时放置一个目录,将提供到文档中各个位置的链接。我该怎么做呢?
我试着用:
[a link](# MyTitle)
其中MyTitle是文档中的一个标题,但这不起作用。
我正在编写一个大型Markdown文档,并希望在开始时放置一个目录,将提供到文档中各个位置的链接。我该怎么做呢?
我试着用:
[a link](# MyTitle)
其中MyTitle是文档中的一个标题,但这不起作用。
当前回答
在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>
其他回答
试验,我发现了一个解决方案使用<div…/>,但一个明显的解决方案是在页面中放置自己的锚点,无论你喜欢,因此:
<a name="abcde">
之前和
</a>
在你想要“链接”到的行之后。然后是一个降价链接:
[link text](#abcde)
文档中的任何地方都可以。
<div…/>解决方案插入一个“假”除法只是为了添加id属性,这可能会破坏页面结构,但<a name="abcde"/>解决方案应该是非常无害的。
(PS:把锚点放在你想链接的行中也可以,如下所示:
## <a name="head1">Heading One</a>
但这取决于Markdown如何处理。我注意到,例如,Stack Overflow答案格式化器很高兴这样!)
是的,markdown确实做到了这一点,但你需要指定名称anchor <a name='xyx'>。
一个完整的例子,
这就创建了链接 (任务)(#任务)
在文档的其他地方,您创建了命名锚(不管它叫什么)。
<a name="tasks">
my tasks
</a>
注意,你也可以把它环绕在标题上。
<a name="tasks">
### Agile tasks (created by developer)
</a>
通用解决方案
根据markdown的实现,这个问题似乎有不同的答案。 事实上,官方Markdown文档对这个话题只字未提。 在这种情况下,如果您想要一个可移植的解决方案,您可以使用HTML。
在任何标题之前,或在同一标题行中,使用一些HTML标记定义一个ID。 例如:<a id="Chapter1"></a> . 您将在代码中看到这一点,但在呈现的文档中看不到。
完整的例子:
请在这里查看完整的示例(在线和可编辑)。
## Content
* [Chapter 1](#Chapter1)
* [Chapter 2](#Chapter2)
<div id="Chapter1"></div>
## Chapter 1
Some text here.
Some text here.
Some text here.
## Chapter 2 <span id="Chapter2"><span>
Some text here.
Some text here.
Some text here.
为了测试这个例子,您必须在内容列表和第一章之间增加一些额外的空间,或者降低窗口的高度。 另外,不要在id的名称中使用空格。
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级别都有效:
#我的部分
##我的部分
###我的部分