我正在编写一个大型Markdown文档,并希望在开始时放置一个目录列表,该目录将提供指向文档中各个位置的链接。 我怎样才能做到这一点?

我尝试使用

[a link](# MyTitle)

其中MyTitle是文档中的标题,并且不起作用。


#1楼

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

    # Contents- [Specification](#specification) - [Dependencies Title](#dependencies-title) ## SpecificationExample 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 TitleExample 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


#2楼

Github会自动从标题中解析出定位标记。 因此,您可以执行以下操作:

[Custom foo description](#foo)# Foo

在上述情况下, Foo标头已生成名为foo的锚标记

注意 :对于所有标题大小,只能使用一个##与锚名称之间不得有空格,锚标签名称必须为小写,并且如果是多个单词,则以短划线分隔。

[click on this link](#my-multi-word-header)### My Multi Word Header

更新资料

也可以与pandoc一起pandoc


#3楼

Pandoc手册说明了如何使用标头标识符链接到标头。 我没有检查其他解析器对此的支持,但是据报道它在github上不起作用

标识符可以手动指定:

## my heading text {#mht}
Some normal text here,
including a [link to the header](#mht).

或者您可以使用自动生成的标识符(在本例中为#my-heading-text )。 两者在pandoc手册中都有详细说明。

注意在转换为HTMLLaTexConTeXtTextileAsciiDoc时有效


#4楼

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


#5楼

在pandoc中 ,如果在生成html时使用选项--toc ,将生成目录,其中包含指向各节的链接,并从节标题返回该目录。 它与pandoc编写的其他格式类似,例如LaTeX,rtf,rst等。因此,使用命令

pandoc --toc happiness.txt -o happiness.html

降价的这一点:

% True HappinessIntroduction
------------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>

#6楼

是的,markdown可以做到这一点,但是您需要指定锚点<a name='xyx'>

一个完整的例子

这将创建链接
[tasks](#tasks)

在文档的后面,您将创建命名的锚(无论其名为什么)。

<a name="tasks">my tasks
</a>

请注意,您也可以将其包装在标题周围。

<a name="tasks">
### Agile tasks (created by developer)
</a>

#7楼

使用kramdown似乎效果很好:

[I want this to link to foo](#foo)
....
....
{: id="foo"}
### Foo are you?

我看到有人提到

[foo][#foo]
....
#Foo

可以有效地工作,但是对于标头或包含多个单词的标头,前者可能是元素的不错选择。


#8楼

由于在评论中提到了MultiMarkdown作为选项。

在MultiMarkdown中,内部链接的语法很简单。

对于文档中的任何标题,只需以[heading][]格式提供标题名称即可创建内部链接。

在此处信息: MultiMarkdown-5交叉引用 。

交叉引用

经常需要的功能是让Markdown像处理外部链接一样容易地自动处理文档内链接。 为此,我添加了将[Some Text] []解释为交叉链接的功能(如果存在名为“ Some Text”的标头)。

例如,[Metadata] []将带您进入#元数据(或##元数据,###元数据,####元数据,#####元数据,######元数据中的任何一个)。

另外,您可以选择一个可选标签,以帮助消除多个标题具有相同标题的情况的歧义:

###概述[MultiMarkdownOverview] ##

这使您可以使用[MultiMarkdownOverview]专门引用本节,而不能使用另一个名为Overview的节。 这适用于atx或settext样式的标头。

如果您已经使用与标头使用的相同ID定义了锚,则定义的锚优先。

除了文档中的标题外,您还可以提供图像和表格的标签,这些标签也可以用于交叉引用。


#9楼

Gitlab使用GitLab风味降价(GFM)

这里“所有Markdown呈现的标头都会自动获得ID”

一个可以使用鼠标进行以下操作:

  • 将鼠标移到页眉上
  • 将鼠标移到悬停选择器上,该选择器在标题的左侧变为可见
  • 使用鼠标右键单击复制并保存链接

    例如在README.md文件中,我有标题:

## series expansion formula of the Boettcher function

它给出了一个链接:

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

现在可以用作:

[series expansion formula of the Boettcher function](README.md#series-expansion-formula-of-the-boettcher-function)

一个也可以手动完成:用连字符代替空格。

现场示例在这里


#10楼

<a name="">技巧还有更多旋转:

<a id="a-link"></a> Title
------
#### <a id="a-link"></a> Title (when you wanna control the h{N} with #'s)

#11楼

一些额外的事情要记住,如果雅曾经获得幻想与亚希望导航到标题中的符号......

# What this is about------#### Table of Contents- [About](#what-this-is-about)- [⚡ Sunopsis](#9889-tldr)- [:gear: Grinders](#it-grinds-my-gears)- [Attribution]------## ⚡ TLDRWords for those short on time or attention.___## It Grinds my :gear:sHere _`:gear:`_ is not something like ⚙ or ⛭___## ⛤ AttributionProbably 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"

...其中香草卫生将导致id的...

id="methodnameoptions-codepromisecode"

...意味着从模板编写或编译MarkDown文件要么需要针对一种拖尾的方法,要么需要针对各种巧妙的方式(例如清除标题文本)添加配置和脚本逻辑。


#12楼

除了上述答案之外,

在YAML标头中设置选项number_sections: true时:

number_sections: TRUE

RMarkdown将自动为您的部分编号。

要引用这些自动编号的部分,只需将以下内容放入R Markdown文件中:

[My Section]

My Section是该My Section的名称

无论部分级别如何,这似乎都有效:

# My section

## My section

### My section


#13楼

通过实验,我找到了一个使用<div…/>的解决方案,但是一个显而易见的解决方案是将您自己的定位点放置在页面中任何您喜欢的位置,因此:

<a name="abcde">

之前

</a>

您要“链接”到的行之后 。 然后是一个markdown链接,例如:

[link text](#abcde)

文档中的任何位置都会带您到那里。

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

(PS:这可能是OK就摆你想链接到线锚,如下所示:

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

但这取决于Markdown如何对待它。 我注意到,例如,堆栈溢出答案格式化程序对此感到满意!)

如何在Markdown中链接到同一文档的一部分?相关推荐

  1. 布置到linux的文件,免费的Office套件,如何在Linux中部署OnlyOffice桌面文档编辑器...

    原标题:免费的Office套件,如何在Linux中部署OnlyOffice桌面文档编辑器 如果您是Ubuntu用户(或者一般的Linux用户),那么您很可能将LibreOffice作为默认的offic ...

  2. 如何在Word中折叠和扩展文档的某些部分

    A new feature was introduced in Word 2013 that allows you to collapse parts of your document and exp ...

  3. 一个html文档的开始标记,如何在Python中只向HTML文档添加一个开始标记

    我正在尝试制作一个自动脚本,从网站下载一个表,然后使用正则表达式取出相关数据.html是 UKRAINEJan-Feb 2016(e) 1.181-12-1,0%-71-5,7%-42-3,4%EU- ...

  4. 如何在markdown中打出上标、下标和一些特殊符号

    转自:https://www.jianshu.com/p/80ac23666a98 如何在markdown中打出上标.下标和一些特殊符号 这是朕的江山 关注 2016.08.16 17:07* 字数 ...

  5. markdown 流程图js_如何在Markdown中画流程图

    如何在Markdown中画流程图呢?当然是用mermaid了,mermaid支持三种图形的绘制, 分别是流程图, 时序图和甘特图, 本篇文章只介绍了mermaid中流程图在markdown的使用(现在 ...

  6. keyshot场景素材导入_KeyShot渲染操作技巧,教你如何在KeyShot中链接场景内材质

    KeyShot渲染操作技巧,教你如何在KeyShot中链接场景内材质 在KeyShot渲染中,材质的添加和使用是一项非常重要的渲染操作,这些操作关系着模型渲染的逼真程度,在我们实际渲染项目中肯定会更加 ...

  7. Word控件Spire.Doc 【Table】教程(7): 如何在C#中用表格替换word文档中的文本

    Spire.Doc for .NET 是一款专门对 Word 文档进行操作的 .NET 类库.在于帮助开发人员无需安装 Microsoft Word情况下,轻松快捷高效地创建.编辑.转换和打印 Mic ...

  8. 如何在ASP.NET Core 中快速构建PDF文档

    比如我们需要ASP.NET Core 中需要通过PDF来进行某些简单的报表开发,随着这并不难,但还是会手忙脚乱的去搜索一些资料,那么恭喜您,这篇帖子会帮助到您,我们就不会再去浪费一些宝贵的时间. 在本 ...

  9. 使用 MarkDown DocFX 升级 Rafy 帮助文档

    最近使用 DocFX 对 Rafy 框架的帮助文档进行了升级. SandCastle 之前 Rafy 框架的帮助文档,是使用 SandCastle 来编写的(https://github.com/EW ...

最新文章

  1. 大跌眼镜!杭州一程序员年薪 30 万,竟靠偷车厘子缓解压力?
  2. 今天看到的关于深度学习的一篇文章,可以好好学习下
  3. python报错UnicodeDecodeError: ‘gbk‘ codec can‘t decode解决方案
  4. SuperTuxKart 1.0 发布,开源赛车游戏
  5. spring -boot定时任务 quartz 基于 MethodInvokingJobDetailFactoryBean 实现
  6. .net core 一个避免跨站请求的中间件
  7. 如果有一天生你养你的两个人都走了
  8. 无需SherlockActionbar的SlidingMenu使用详解(二)——向Fragment中添加ViewPager和Tab
  9. 380天!理想汽车交付量突破30000辆
  10. 解决Admob Banner首次展示不显示的问题
  11. 水滴直播风波背后:事关隐私的恐慌和“委屈”的周鸿祎
  12. windows利用DOS窗口编译C++文件
  13. xp下创建DOMDocument对象失败的解决方法
  14. c# gerber文件读取_gerber文件查看器|gerber文件查看工具(GerbView)下载 v7.71 免费版 - 121下载站...
  15. Mysql环境变量配置WIN10(保姆级)
  16. 异步fifo_【好设计论文】一种面向异步FIFO的低开销容错机制研究
  17. 人民搜索笔试题2013
  18. MySQL篇之授权用户可以远程访问数据库
  19. erp是企业内部最重要的使用程序,它对日常运作至关重要
  20. 月薪15k的php工程师,平均月薪15k,2019年,前端工程师薪资为什么越来越高?

热门文章

  1. 再次证明消息四元组的处理顺序。
  2. 带调色板的位图BMP和不带调色板的BMP
  3. 【剑指offer-Java版】38数字在排序数组中出现的次数
  4. 【剑指offer-Java版】03二维数组中的查找
  5. CoordinatorLayout+AppBarLayout顶部栏吸顶效果
  6. python输入三个数输出最小值_python之输入一系列整数输出最大值
  7. PHP学习笔记-PHP与Web页面的交互2
  8. SparkStreaming和Storm的区别
  9. 【Android View基础】View中几个容易混淆的距离及坐标量
  10. Docker:容器的四种网络类型 [十三]