How to link to part of the same document in Markdown?
I am writing a large Markdown document and would like to place a table of contents of sorts at the beginning that will provide links to various locations in the document. How can I do this?
I tried using
[a link](# MyTitle)
where MyTitle
is a title within the document and this didn't work.
In pandoc, if you use the option --toc
in producing html, a table of contents will be produced with links to the sections, and back to the table of contents from the section headings. It is similar with the other formats pandoc writes, like LaTeX, rtf, rst, etc. So with the command
pandoc --toc happiness.txt -o happiness.html
this bit of markdown:
% 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.
will yield this as the body of the 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>
Github automatically parses anchor tags out of your headers. So you can do the following:
[Foo](#foo)
# Foo
In the above case, the Foo
header has generated an anchor tag with the name foo
Note : just one #
for all heading sizes, no space between #
and anchor name, anchor tag names must be lowercase, and delimited by dashes if multi-word.
[click on this link](#my-multi-word-header)
### My Multi Word Header
Update
Works out of the box with pandoc
too.
Experimenting, I found a solution using <div…/>
but an obvious solution is to place your own anchor point in the page wherever you like, thus:
<a name="abcde">
before and
</a>
after the line you want to 'link' to. Then a markdown link like:
[link text](#abcde)
anywhere in the document takes you there.
The <div…/>
solution inserts a "dummy" division just to add the id
property, and this is potentially disruptive to the page structure, but the <a name="abcde"/>
solution ought to be quite innocuous.
(PS: It might be OK to put the anchor in the line you wish to link to, as follows:
## <a name="head1">Heading One</a>
but this depends on how Markdown treats this. I note, for example, the Stack Overflow answer formatter is happy with this!)
链接地址: http://www.djcxy.com/p/88972.html