内部链接和深度链接

🔗标题 id 和锚点插入

在呈现 Markdown 内容时,将自动为每个标题分配一个唯一的 id。如果设置为(默认值),则通过将标题文本转换为slug创建此 id 。如果设置为,则空格替换为并去除以下字符:, , , , , , , , `, , , , 如果设置为,则不会进行任何修改,您可能会留下名义上非法的 ID。如果该文章的 slug 已经存在,则在末尾附加一个数字。例如:slugify.anchors"on"slugify.paths"safe"_#%<>[]()^{|}slugify.paths"off"

# Something exciting! <- something-exciting
## Example code <- example-code

# Something else <- something-else
## Example code <- example-code-1

{#…}您还可以在标题行以及 CSS 类中手动指定带有后缀的 id :

# Something manual! {#manual .header .bold}

这对于使深度链接变得健壮非常有用,无论是主动的(这样您以后可以更改标题的文本而不会破坏指向它的链接)还是追溯的(更改文本时保留旧标题文本的 slug)。它还可用于迁移具有不同标头 ID 方案的现有站点,以便您可以保持深层链接正常工作。

🔗锚点插入

如果您将鼠标悬停在标题上或覆盖整个标题文本,Zola 可能会自动在标题旁边插入锚链接,如您在本文档中所见。

此选项在节级别设置:节前事页面insert_anchor_links上的变量

默认模板非常基础,需要在您的项目中调整 CSS 才能看起来不错。如果要更改锚模板,可以通过anchor-link.htmltemplates目录中创建文件轻松覆盖它。在这里您可以找到默认模板。

锚链接模板具有以下变量:

  • id:应用由定义的规则后的标题 IDslugify.anchors
  • lang: 当前语言,除非从markdown模板过滤器中调用,在这种情况下它将始终是en
  • level: 标题级别(介于 1 和 6 之间)

如果您使用insert_anchor = "heading",该模板仍将被使用,但只会<a>从中提取开始标签,其他所有内容都不会被使用。

链接到其他页面及其标题是如此常见,以至于 Zola 为 Markdown 链接添加了一种特殊语法来处理它们:开始链接并@/指向.md您要链接到的文件。文件的路径从content目录开始。

例如,链接到位于的文件content/pages/about.md将是[my link](@/pages/about.md). 您仍然可以直接链接到锚点;[my link](@/pages/about.md#example)将按预期工作。

默认情况下,损坏的内部链接被视为错误。要将它们视为警告,请访问[link_checker]部分config.toml并设置internal_level = "warn"注意:将断开的链接视为警告允许构建带有完整断开链接的站点,因此诸如 之类的链接[my link](@/pages/whoops.md)将呈现为 HTML 格式<a href="@/pages/whoops.md">