文档站、书籍类站点需要章节目录与上下篇导航。everkm-publish 提供导航 Markdown 解析与 nav_tree 等内置函数;侧栏树、上下页按钮、顶栏/页脚链接等 UI 需主题支持,自定义主题须自行调用导航函数并实现布局。
主题支持
官方 theme-youlog 为参考实现:template: book 配合 folders.query.nav_file、stack 渲染章节目录与上下篇导航;config.header_nav、config.bottom_nav 控制顶栏与页脚。配置说明见主题目录 README。
书籍目录文件
在内容目录下放置导航 Markdown,常见命名为 _nav.md 或 SUMMARY.md。文件内用列表 + 内链组织章节:
# 使用指南
* [[quick-start]]
* [[dir-config]]
* [[everkm-markdown]]
# 进阶
* [[custom-template]]
列表项使用毓知内链 [[页面名]] 或 [[路径/文件]],规则见 链接与内链。
在 everkm.yaml 中绑定
通过 folders.query.nav_file 告诉主题读取哪份导航文件:
folders:
"/docs/":
template: book.html
query:
nav_file: /docs/_nav.md
stack: true
query 字段 | 说明 |
|---|---|
nav_file | 章节目录 Markdown 的路径(站点内绝对路径,如 /docs/_nav.md) |
stack | 主题相关:切换书籍布局(如 youlog 的顶栏 + 侧栏),见 theme-youlog |
未配置 nav_file 或文件不存在时,主题通常不显示树形导航与上下篇按钮。
模板中的导航函数
主题模板(Tera)或 JsRender 可调用内置函数解析同一导航文件:
{{ nav_tree(from_file="[[./SUMMARY.md]]") | json_encode }}
{{ nav_path(from_file="[[./SUMMARY.md]]") }}
{{ nav_indicator(from_file="[[./SUMMARY.md]]") }}
from_file 支持 [[...]] 内链语法,与正文内链规则一致。详见 链接与内链、内置函数、内置函数、内置函数。
面包屑
站点级面包屑在 folders.breadcrumbs 中配置,与导航树独立:
folders:
"/docs/":
breadcrumbs:
- title: "@i18n:nav.docs"
url: /docs/
合并规则见 目录配置。
顶栏与页脚链接
站点顶栏、页脚导航由 config.header_nav、config.bottom_nav 等控制,写在 everkm.yaml 的 config 下,需主题读取并渲染。youlog 示例见 theme-youlog。