侧边栏
侧边栏
进阶控制
在从结构自动生成的过程中,你可以通过页面 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
: 目录是否可折叠,默认为true
dir.expanded
: 目录是否默认展开,默认为false
dir.link
: 目录是否可点击,默认为false
dir.index
: 是否索引此目录,默认为true
dir.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
。