#索引与筛选
Lichtung 提供专用的 indexes 布局,作为站点的导航中心,聚合章节结构、分类体系和交互式筛选功能。
##创建索引页
yaml
# content/indexes.md
---
title: 索引
layout: indexes
---索引页包含四个区域,从上到下依次为:搜索框、章节树、分类列表、筛选器。
##搜索框
在页面内容区顶部嵌入搜索输入框:
yaml
---
ShowSearch: true
ShowSiteSearch: false
---| 参数 | 说明 |
|---|---|
ShowSearch | 页面内嵌搜索框(front matter 设置) |
ShowSiteSearch | 侧边栏搜索框 |
避免同时设为
true,二者共用 HTML id 会冲突。
搜索框功能与侧边栏搜索一致,详见搜索功能。
##章节树
自动展示站点所有章节(section)的层级结构,每个章节可展开查看其子章节和页面。
章节树通过递归遍历 Hugo 的 section 结构自动生成,无需手动配置。
##分类列表
列出站点所有分类(taxonomy)及其下的条目(term),每项显示文章计数。例如:
- tags: hugo (3), 教程 (2), …
- categories: guide (5), example (3), …
- series: creator (2), …
每个 term 链接到对应的 term 页面,可查看该 term 下的所有文章。
##交互筛选器
筛选器允许用户通过分类维度组合筛选文章,是 indexes 布局的核心功能。
###启用筛选
toml
[params]
ShowFilter = true###使用方式
- 筛选器为每个 taxonomy 渲染一组复选框
- 选择多个 term 后,结果实时更新
- 不同 taxonomy 之间为 AND 关系(同时满足)
- 同一 taxonomy 内多个 term 也为 AND 关系
- 点击"清除筛选"重置所有选择
###筛选逻辑
TEXT
选中: tags=hugo AND tags=教程 AND categories=guide
→ 显示: 同时拥有 hugo 和 教程 标签且分类为 guide 的文章###数据来源
筛选器读取 index.json 搜索索引,在客户端执行过滤,无需服务端支持。
##布局结构
索引页没有右侧 aside,内容区占据全宽,为筛选器和分类列表提供充足空间。
##索引页内容
除自动生成的区域外,页面的 .Content(即 markdown 正文)会显示在最上方,可用于添加导航说明:
markdown
---
title: 索引
layout: indexes
ShowSearch: true
ShowSiteSearch: false
---
# 索引
本站点的所有内容索引。使用搜索框或下方的筛选器找到感兴趣的文章。