如何在Markdown文件(目录)中链接到包含点(.)或逗号(,)的标题?

9
在我的 Readme.MD markdown 文件中,我想要创建一个Github的目录。通过Typora生成的[TOC]在Github上无法显示,而只会像[TOC]一样显示。我的一些标题包含点或逗号等字符。有没有办法链接到这些标题?
我尝试了几乎所有可能的方法,例如:[app.js文件](#app.js-file)[app.js文件](#app-js-file)[app.js](#app--js-file)[app.js](#app\.js-file)[app.js](#appjs-file)。但都没有奏效。
下面是一个例子:
Table of contents:
[app.js](#app-js)
[script.js](#script.js)
[One, two, three](#one,-two,-three)

# app.js File
Some text

# script.js File
Some text

# One, two, three
Some text

顺便说一下,有些人在谈论创建HTML锚点(命名),但是你应该在MD文件中的哪里/如何编写它们(如果这是解决方案)。您能否解释一下(我在互联网上找不到任何解决方案)。

3个回答

11
如果你将鼠标悬停在渲染内容中要链接的标题上,你应该会看到一个链接图标出现。将鼠标悬停在该图标上以查看它所链接的内容,并将其用作你的目标。我认为你会发现这些链接被命名为:
  • appjs-file
  • scriptjs-file
  • one-two-three
这个答案指出了一些可能驱动链接命名的逻辑,但我还没有能够确认。
顺便说一句,Markdown 的设计目的是即使在原始形式下也容易阅读。我强烈建议在标题的井号和标题文本之间添加一个空格,在标题和其内容之间添加一个空行,例如:
# app.js File

Some text

一些Markdown处理器需要这两个标签的一个或者两个才能正常渲染。

1
你尝试过第一部分吗?将鼠标悬停在渲染的内容上,查看生成的链接,并在目标中使用它们。请注意,这在GitHub的Gists上确实有效(我在发布之前进行了验证)。 - Chris
如果我让Typora自动生成目录(在github上不可读),它会创建特定结构的复杂HTML DOM视图。 "鼠标悬停"没有任何作用,但如果我右键单击并检查它,它会显示元素,但我猜你不能这样解决它:请参见截图:https://imgur.com/a/j7hgStY - LowLevel
等等,什么?Typora 与此有什么关系?我以为你想要手动链接到 GitHub 上的一个标题? - Chris
1
很高兴听到这个消息!我会更新我的答案以澄清那一点。 - Chris
1
我之前不知道标题会自动生成链接,而我所要做的就是创建超链接(锚点)并将其链接到这些已命名的锚点(链接)。 - LowLevel
显示剩余8条评论

3

问题 1

有没有办法链接到包含标点符号的标题?

有。去掉所有标点符号,并用连字符替换空格。这适用于 Github,但对于其他一些 Markdown 编辑器(例如 hashnode.com),您必须使用连字符替换标点符号。

在你上面的例子中,我没有链接完整的标题。这就是为什么有些没起作用。要修复你给出的示例:

Table of contents:
[app.js](#appjs-file)
[script.js](#scriptjs-file)
[One, two, three](#one-two-three)

# app.js File
Some text

# script.js File
Some text

# One, two, three
Some text

问题 2

有些人谈论创建 HTML 锚点(命名),但是在 MD 文件中应该如何/在哪里编写它们(如果这是解决方案)?

您需要在与要链接的标题相同的行上添加 HTML 锚点。目录中提供的链接应该与标题中锚点的名称匹配,但要去掉#号。

以下是一个示例:

Table of contents:
[app.js](#app-js-file)
[script.js](#script-js-file)
[One, two, three](#one-two-three)

# app.js File <a name="app-js-file"></a>
Some text

# script.js File <a name="script-js-file"></a>
Some text

# One, two, three <a name="one-two-three"></a>
Some text

这里有一个Github Gist演示,展示它在Github上的工作。传送门

1
在GitHub上,如果你将鼠标悬停在章节标题单词上方,会出现一个链接图标,位于章节标题单词的左侧。如果你将鼠标悬停在链接图标上方,当前网页的URL会显示在页面底部(例如:github.com/用户名/.../README.md)。如果你继续将鼠标悬停在链接图标上几秒钟,则该链接会包括附加的章节链接(例如:github.com/用户名/仓库名/edit/main/README.md#appjs-file)。
解决方案:
Table of contents:
[app.js File](#appjs-file)
[script.js File](#scriptjs-file)
[One, two, three](#one-two-three)

# app.js File
Some text

# script.js File
Some text

# One, two, three
Some text

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接