在呈现 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.html在templates目录中创建文件轻松覆盖它。在这里您可以找到默认模板。
锚链接模板具有以下变量:
id:应用由定义的规则后的标题 IDslugify.anchorslang: 当前语言,除非从markdown模板过滤器中调用,在这种情况下它将始终是enlevel: 标题级别(介于 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">。