在呈现 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.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">
。