设置导航¶
清晰简洁的导航结构是优秀项目文档的一个重要方面。Material for MkDocs 提供了多种选项来配置导航元素的行为,包括选项卡和部分,以及它的旗舰功能之一:即时加载。
额外的导航可以在页脚以及标签插件中进行配置。博客插件也会设置额外的导航。
配置¶
即时加载¶
启用即时加载后,所有内部链接的点击都将被拦截并通过 XHR 调度,而无需完全重新加载页面。将以下行添加到 mkdocs.yml:
theme:
features:
- navigation.instant
进度指示器¶
为了在使用即时导航时在慢速连接时提供更好的用户体验,可以启用进度指示器。它将显示在页面顶部,并在页面完全加载后隐藏。您可以在 mkdocs.yml 中使用以下命令启用它:
theme:
features:
- navigation.instant
- navigation.instant.progress
锚点跟踪¶
启用锚点跟踪后,地址栏中的 URL 会自动更新为活动锚点,如目录中突出显示的那样。将以下行添加到 mkdocs.yml:
theme:
features:
- navigation.tracking
导航选项卡¶
启用选项卡后,对于大于 1220 像素的视口,顶级部分将呈现在标题下方的菜单层中,但在移动设备上保持原样。将以下行添加到 mkdocs.yml:
theme:
features:
- navigation.tabs
粘滞导航选项卡¶
启用粘滞选项卡后,导航选项卡将锁定在标题下方,并在向下滚动时始终保持可见。只需将以下两个功能标志添加到mkdocs.yml:
theme:
features:
- navigation.tabs
- navigation.tabs.sticky
导航部分¶
启用部分后,对于超过 1220 像素的视口,顶级部分将在侧边栏中呈现为组,但在移动设备上保持原样。将以下行添加到 mkdocs.yml:
theme:
features:
- navigation.sections
导航扩展¶
启用扩展后,左侧边栏将默认展开所有可折叠的子部分,因此用户不必手动打开子部分。将以下行添加到 mkdocs.yml:
theme:
features:
- navigation.expand
导航修剪¶
启用修剪后,呈现的 HTML 中仅包含可见的导航项,从而将构建网站的大小减少 33% 或更多。将以下行添加到 mkdocs.yml:
theme:
features:
- navigation.prune
章节索引页面¶
启用区域索引页面后,文档可以直接附加到区域,这对于提供概述页面特别有用。将以下行添加到 mkdocs.yml:
theme:
features:
- navigation.indexes
nav:
- Section:
- section/index.md
- Page 1: section/page-1.md
...
- Page n: section/page-n.md
目录¶
锚点跟随¶
启用目录的锚点跟随后,侧边栏会自动滚动,以便活动锚点始终可见。将以下行添加到 mkdocs.yml:
theme:
features:
- toc.follow
导航集成¶
启用目录的导航集成后,它始终呈现为左侧导航侧边栏的一部分。将以下行添加到 mkdocs.yml:
theme:
features:
- toc.integrate
返回顶部按钮¶
当用户向下滚动后再次开始向上滚动时,可以显示返回顶部按钮。它呈现在标题的正下方。将以下行添加到 mkdocs.yml:
theme:
features:
- navigation.top
用法¶
隐藏侧边栏¶
导航和/或目录侧边栏可以通过扉页 hide 属性隐藏。在 Markdown 文件的顶部添加以下行:
---
hide:
- navigation
- toc
---
# Page title
...
自定义¶
内容区域宽度¶
设置内容区域的宽度,使每行的长度不超过 80-100 个字符,具体取决于字符的宽度。虽然这是一个合理的默认值,但由于较长的行往往更难阅读,因此可能需要增加内容区域的整体宽度,甚至使其延伸到整个可用空间。
这可以通过额外的样式表和几行 CSS 轻松实现:
.md-grid {
max-width: 1440px;
}
extra_css:
- stylesheets/extra.css