侧边栏
侧边栏
进阶控制
在从结构自动生成的过程中,你可以通过页面 Frontmatter 中的 index 选项控制同一文件夹下的文件是否被包含、并通过 order 控制它们的排序方式。
当你不希望页面被侧边栏收录时,你需要在 Frontmatter 中设置 index: false。
默认情况下,侧边栏会按照文件名的标题文字按照当前语言排序,你可以通过 order 来控制它们的排序方式,当你设置为正数时,它们会出现在分组最前方,越小的越靠前,当你设置为负数时,会出现在分组最后方,越大的越靠后:
- 页面 -> order: 1
- 页面 -> order: 2
- 页面 -> order: 3
- ...
- 含有正数
order的页面在此处会根据 order 大小排序 - ...
- 不含有
order选项的页面 -> 标题: Axxx - ...
- 不含有
order选项的页面在此处会根据标题排序 - ...
- 不含有
order选项的页面 -> 标题: Zxxx - ...
- 含有负数
order的页面在此处会根据 order 大小排序 - ...
- 页面 -> order: -3
- 页面 -> order: -2
- 页面 -> order: -1
Tips
README.md 是一个例外,只要你不通过 index: false 或使其成为分组链接禁止其出现在侧边栏中,它总会在排序中成为第一项。
对于嵌套文件夹,其分组信息由对应文件夹下的 README.md 控制,你可以通过 Frontmatter 中的 dir 选项控制文件夹分组的行为,相关可选项目如下:
dir.text: 目录标题,默认为 README.md 标题dir.icon: 目录图标,默认为 README.md 图标dir.collapsible: 目录是否可折叠,默认为truedir.expanded: 目录是否默认展开,默认为falsedir.link: 目录是否可点击,默认为falsedir.index: 是否索引此目录,默认为truedir.order: 目录在侧边栏中的顺序,默认为0
以下是一个案例:
---
dir:
order: 1
text: Group 1
---
如果对应文件夹不存在 README.md 文件,则只有分组标题会从文件夹名称中生成。
自定义排序
除了上面的实现外,我们还在主题选项中添加了更为强大的 sidebarSorter 选项。你可以传入一个或一系列内置排序器名称,也可以传递一个自己需要的排序函数对同级的侧边栏项目进行排序。
可用的关键字有:
readme:README.md或readme.md在前order: 正序在前并按其值升序排列,负序在后并按其值降序排列date: 按日期升序排序date-desc: 按日期降序排序title: 按标题字母顺序排序filename: 按文件名字母顺序排序
对应上述的进阶控制,它的默认值是 ["readme", "order", "title", "filename"]
禁用侧边栏
你可以通过 `Frontmatter 来禁用指定页面的侧边栏:
---
sidebar: false
---
Note
侧边栏在主页中默认禁用。
嵌套的标题链接
默认情况下,侧边栏会自动地显示由当前页面的标题(headers)组成的链接,并按照页面本身的结构进行嵌套,你可以在主题选项中通过 headerDepth 来修改它的行为。默认的深度(也是最大的深度)是 2,它将提取到 h2 和 h3 的标题,设置成 0 将会禁用标题(headers)链接。
也可以使用 frontmatter 来为某个页面重写此值:
---
headerDepth: 2
---
Note
有效最大值取决于你通过 markdown.headers.level 提取了哪些级别的标题。
由于 markdown.headers.level 的默认值是 [2, 3] ,因此 headerDepth 的默认最大值是 2 。
