导航与目录

2026-06-19

文档站、书籍类站点需要章节目录上下篇导航。everkm-publish 提供导航 Markdown 解析与 nav_tree 等内置函数;侧栏树、上下页按钮、顶栏/页脚链接等 UI 需主题支持,自定义主题须自行调用导航函数并实现布局。

主题支持

官方 theme-youlog 为参考实现:template: book 配合 folders.query.nav_filestack 渲染章节目录与上下篇导航;config.header_navconfig.bottom_nav 控制顶栏与页脚。配置说明见主题目录 README。

书籍目录文件

在内容目录下放置导航 Markdown,常见命名为 _nav.mdSUMMARY.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_navconfig.bottom_nav 等控制,写在 everkm.yamlconfig 下,需主题读取并渲染。youlog 示例见 theme-youlog