更多设置

GemBook 允许在 Markdown 文件的开头添加 yaml 格式(称为 FrontMatter)的数据, 以设置文档在侧边栏和导航栏中的显示方式。例如:

---
title: 侧边栏标题
description: 页面的描述 # 默认使用第一段文字
sidebarIgnore: true # 不在侧边栏中显示

isNav: true # 显示到顶部导航栏
navTitle: 顶部导航栏标题
navOrder: 2 # 顶部导航栏位置

redirect: ./new.md # 如果文档移动或者重命名,可以使用重定向防止链接失效
---

# 标题

首页

启用 homeMode 时,GemBook 将文档根目录的 index.md 或者 readme.md 渲染成首页, 首页还支持 hero features,例如:

---
hero:
  title: GemBook
  desc: 简单、快速创建你的文档网站
  actions:
    - text: 快速开始
      link: ./guide/README.md
features:
  - title: 开箱即用
    icon: 📝
    desc: 只需运行一条命令就能构建所有前端资源,让所有注意力都能放在文档编写上。
  - title: 高性能
    icon: /logo.png
    desc: 构建时把每个页面渲染成 HTML,不需要等待 JavaScript 加载就能看到内容。
  - title: 可插拔可扩展
    icon: 👩‍🎨
    desc: 在 Markdown 中使用自定义元素扩展文档,例如可运行的示例、API 文档和搜索。

文件夹设置

对 Markdown 的设置同样适用于文件夹,只需在文件夹中添加 config.yml 即可,例如:

title: 指南

另外,文件夹还有两个特殊的设置:

  • reverse:反向排序,这在写博客时很有用
  • groups:在不修改目录结构的情况下在侧边栏中将多个文件放在一个组内,没有 title 的组直接显示其中的文件

isNav 的文件夹是独立的一部分文档,只显示在导航栏中,当前页面在其中时侧边栏只显示该文件夹的文档。

完整定义

export interface FrontMatter {
  title?: string;
  /** 页面的 `<meta name="description">`,默认使用首页的 `hero.desc` 或者第一段文本 */
  description?: string;
  isNav?: boolean;
  navTitle?: string;
  navOrder?: number;
  sidebarIgnore?: boolean;
  redirect?: string;

  /** below only dir */
  reverse?: boolean;
  groups?: { title: string; members: string[] }[];

  /** below only homepage */
  hero?: Hero;
  features?: Feature[];
}

export interface Hero {
  title?: string;
  desc?: string;
  actions?: { text: string; link: string }[];
}

export interface Feature {
  icon?: string;
  title: string;
  desc: string;
}