我正试图弄清楚如何使用Markdown引用页面的另一个区域。如果我添加
,我可以使它工作<div id="mylink" />
并为链接执行:
[My link](#mylink)
但我的猜测是,还有一些其他方法可以在Markdown中执行页内链接,但不涉及直接div
标记。
有什么想法吗?
答案 0 :(得分:146)
请参阅this answer。
总结使用
制作目的地<a name="sometext"></a>
在您的降价标记中的任意位置插入(例如在标题中:
## heading<a name="headin"></a>
并使用降价链接链接到它:
[This is the link text](#headin)
或
[some text](#sometext)
不要使用<div>
- 这会弄乱许多渲染器的布局。
(我已将id=
更改为name=
以上。请参阅this answer了解繁琐的解释。)
答案 1 :(得分:18)
我想这取决于你用什么来降价来生成html。我注意到,jekyll(默认情况下由gihub.io页面使用)会自动将id =“”属性添加到它生成的html中的标题中。
例如,如果你是降价是
My header
---------
生成的html将如下所示:
<h2 id="my-header">My header</h2>
因此,您只需[My link](#my-header)
答案 2 :(得分:13)
使用PHP version of Markdown,您还可以使用以下任一语法将标题链接到页面中的片段标识符,如文档所述here
Header 1 {#header1}
========
## Header 2 ## {#header2}
然后
[Link back to header 1](#header1)
[Link back to header 2](#header2)
不幸的是,此语法目前仅支持头文件,但至少它可用于构建目录。
答案 3 :(得分:3)
HTML页面中链接的目标锚点可以是具有id
属性的任何元素。请参阅W3C网站上的Links。以下是相关部分的引用:
HTML文档中的目标锚点 可以由A指定 element(用名字命名) 属性),或任何其他元素 (使用id属性命名)。
Markdown将HTML视为HTML(请参阅Inline HTML),因此您可以根据自己喜欢的元素创建片段标识符。例如,如果要链接到段落,只需将段落包装在段落标记中,并包含一个id:
<p id="mylink">Lorem ipsum dolor sit amet...</p>
然后使用标准Markdown [My link](#mylink)
创建片段锚点的链接。这将有助于保持HTML清洁,因为不需要额外的标记。
答案 4 :(得分:1)
对于使用Visual Studio Team Foundation Server(TFS)2015的任何人,至少在标头中,它实际上都不喜欢嵌入的<a>
或<div>
元素。它也不喜欢标题中的表情符号:
### Configuration
Lorem ipsum problem fixem.
翻译为:
<h3 id="-configuration-"> Configuration </h3>
<p>Lorem ipsum problem fixem.</p>
因此,链接应使用id
(在Visual Studio中破坏this和其他预览扩展名),或删除表情符号:
Here's [how to setup](#-configuration-) // Configuration
Here's [how to setup](#configuration) //Configuration
后一版本在TFS和Visual Studio的降价预览中可以在线工作。