Skip to main content

侧边栏

About 3 min布局布局侧边栏

侧边栏

进阶控制

在从结构自动生成的过程中,你可以通过页面 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.mdreadme.md 在前
  • order: 正序在前并按其值升序排列,负序在后并按其值降序排列
  • date: 按日期升序排序
  • date-desc: 按日期降序排序
  • title: 按标题字母顺序排序
  • filename: 按文件名字母顺序排序

对应上述的进阶控制,它的默认值是 ["readme", "order", "title", "filename"]

禁用侧边栏

你可以通过 `Frontmatter 来禁用指定页面的侧边栏:

---
sidebar: false
---

Note

侧边栏在主页中默认禁用。

嵌套的标题链接

默认情况下,侧边栏会自动地显示由当前页面的标题(headers)组成的链接,并按照页面本身的结构进行嵌套,你可以在主题选项中通过 headerDepth 来修改它的行为。默认的深度(也是最大的深度)是 2,它将提取到 h2h3 的标题,设置成 0 将会禁用标题(headers)链接。

也可以使用 frontmatter 来为某个页面重写此值:

---
headerDepth: 2
---

Note

有效最大值取决于你通过 markdown.headers.levelopen in new window 提取了哪些级别的标题。

由于 markdown.headers.levelopen in new window 的默认值是 [2, 3] ,因此 headerDepth 的默认最大值是 2