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

Posted

技术标签:

【中文标题】如何链接到markdown文件(目录)中包含点(。)或逗号(,)的标题?【英文标题】:How to link to heading containing dot (.) or comma (,) in markdown file (Table of contents)? 【发布时间】:2019-05-21 11:27:26 【问题描述】:

在我的Readme.MD markdown 文件中,我想创建 目录(用于 Github)。 [TOC](由 Typora 生成)没有显示在 Github 上。它显示为[TOC]。我的一些标题包含点或逗号等字符。有没有办法链接到这些标题?

我几乎尝试了所有我认为的方法,例如:[app.js File](#app.js-file)[app.js File](#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 文件中(以防它是解决方案)。请您解释一下(我在互联网上找不到任何解决方案)。

【问题讨论】:

【参考方案1】:

如果您将鼠标悬停在渲染内容中要链接的标题上,您应该会看到一个链接图标。将鼠标悬停在该图标上以查看其链接的内容,并将其用作您的目标。我想你会找到名为

的链接 appjs-file scriptjs-file one-two-three

This answer 指出了一些可能驱动链接命名的逻辑,但我无法确认。

附带说明一下,Markdown 的设计目的是即使是原始形式也易于阅读。我强烈建议在标题哈希和标题文本之间添加一个空格,并在标题及其内容之间添加一个空白行,例如

# app.js File

Some text

一些 Markdown 处理器需要其中一种或两种才能正确呈现。

【讨论】:

感谢您的回答,但不幸的是(在 Github 上)这不起作用。 你试过第一部分了吗?将鼠标悬停在呈现的内容上以查看生成了哪些链接并在您的目标中使用这些链接。请注意,这确实在 GitHub 的 Gists 上工作(我在发布之前进行了验证)。 如果我让 Typora 自动生成 TOC(目录;在 github 上不可读),它会创建特定结构的复杂 HTML DOM 视图。 “鼠标悬停”没有/显示什么,但如果我右键单击并检查它,它会显示元素,但这样你无法解决它,我猜:看截图:imgur.com/a/j7hgStY 很高兴听到这个消息!我将更新我的答案以澄清这一点。 我只是不知道会自动为标题生成链接。我所要做的就是创建链接到这些命名锚(链接)的超链接(锚)。【参考方案2】:

问题 1

有没有办法链接到这些标题(包含标点符号)?

是的。删除所有标点符号并用连字符替换空格。这适用于 Github,但对于其他一些降价编辑器,例如在 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

Here's a Github Gist 证明它可以在 Github 上运行。

【讨论】:

以上是关于如何链接到markdown文件(目录)中包含点(。)或逗号(,)的标题?的主要内容,如果未能解决你的问题,请参考以下文章

如何在 Markdown 中包含资产下载链接?

当元素在标记名称中包含点时,Jquery 选择器不起作用

在 R Markdown 文件中包含 HTML 文件?

如何在颤动的降价中添加超链接到文本

如何在 Hugo/Markdown 页面中包含另一个文件?

GitHub Pages 上的 Jekyll:在另一个 markdown 文件中包含 markdown