1. 首页 >  语言文字 >       [Markdown cross-reference anchors with Ascii and CJK characters](^3^):这篇文章讨论了如何在

[Markdown cross-reference anchors with Ascii and CJK characters](^3^):这篇文章讨论了如何在

Markdown 跨引用锚点与 ASCII 和 CJK 字符markdown word

[Markdown cross-reference anchors with Ascii and CJK characters](^3^):这篇文章讨论了如何在



这篇文章讨论了如何在 Markdown 中使用中文字符作为锚点,以及 GitHub 的自动生成锚点规则。reference to

Markdown 是一种轻量级的标记语言,它可以将纯文本格式化为富文本。Markdown 的一个常用功能是创建链接,可以跳转到文档中的其他部分或外部资源。为了创建链接,我们需要指定一个目标地址,以及一个可选的锚点。锚点是一个标识符,用于定位文档中的特定位置。例如,如果我们想链接到本文的第二段,我们可以写:@allargsconstructor

[跳转到第二段](#markdown-是一种轻量级的标记语言)

这里,`#markdown-是一种轻量级的标记语言` 就是一个锚点,它与第二段的标题相对应。注意,我们使用了中文字符作为锚点,这是因为 Markdown 支持使用任何 Unicode 字符作为锚点。这意味着我们可以使用中文、日文、韩文等 CJK(中日韩)字符作为锚点,只要它们是有效的 Unicode 字符。

但是,如果我们想在 GitHub 上发布我们的 Markdown 文档,我们就需要注意 GitHub 的自动生成锚点规则。GitHub 会为每个标题生成一个锚点,以便于在网页上导航。GitHub 的锚点规则是这样的:

- 删除标题中的所有空格,并用连字符(-)替换
- 删除标题中的所有标点符号,除了以下几种:_ . : /
- 将标题中的所有字母转换为小写
- 如果标题中有多个连续的连字符,只保留一个
- 如果标题以连字符开头或结尾,删除连字符
- 如果标题是空的,使用一个随机的字符串作为锚点
- 如果标题与之前的标题重复,添加一个数字后缀,从 1 开始递增

根据这些规则,我们的第二段的标题 `Markdown 是一种轻量级的标记语言` 在 GitHub 上的锚点是 `markdown-是一种轻量级的标记语言`。这与我们手动指定的锚点是一致的,所以我们的链接可以正常工作。但是,如果我们的标题中有其他的 CJK 字符,比如 `Markdown 的优点是什么?`,那么 GitHub 上的锚点就是 `markdown-的优点是什么`。这与我们手动指定的锚点 `#Markdown 的优点是什么?` 是不一致的,所以我们的链接就会失效。

为了避免这种情况,我们有两种方法:

- 一种是遵循 GitHub 的锚点规则,手动修改我们的锚点,使其与 GitHub 上的锚点一致。这样,我们的链接就可以在 GitHub 上正常工作,但是在其他的 Markdown 编辑器或渲染器上可能会失效,因为它们可能有不同的锚点规则。
- 另一种是使用 ASCII 字符作为锚点,而不是 CJK 字符。ASCII 字符是一种通用的字符编码,它包括了英文字母、数字、标点符号等常用字符。由于 ASCII 字符是 GitHub 和其他的 Markdown 编辑器或渲染器都支持的,所以使用 ASCII 字符作为锚点可以保证我们的链接在任何地方都可以正常工作。例如,我们可以将我们的标题 `Markdown 的优点是什么?` 改为 `What are the advantages of Markdown?`,然后使用 `#what-are-the-advantages-of-markdown` 作为锚点。这样,我们的链接就可以在 GitHub 和其他的 Markdown 编辑器或渲染器上都正常工作。

总之,我们可以在 Markdown 中使用中文字符作为锚点,但是我们需要注意 GitHub 的自动生成锚点规则,以及其他的 Markdown 编辑器或渲染器的兼容性。如果我们想要保证我们的链接在任何地方都可以正常工作,我们可以使用 ASCII 字符作为锚点,而不是 CJK 字符。

: [GitHub Flavored Markdown Spec]

版权声明:本文来源于互联网,不代表本站立场与观点,临夏教育无任何盈利行为和商业用途,如有错误或侵犯利益请联系我们。