Skip to content

构建结构化站点的核心配置和约定

本主题遵循“约定优于配置”原则,如果你想构建一个结构化的站点,需要遵循下面这些约定,约定可以为你省去很多配置,轻松拥有一个结构清晰的站点。

你需要在config.js中有如下配置:

js
module.exports={themeConfig:{sidebar:'structuring'}}

在运行开发服务npm run dev或打包npm run build时主题内部将会按照目录约定自动生成一个结构化的侧边栏、目录页、面包屑等数据。

在源目录(一般是docs)文件夹中,除了.vuepress@pages_postsindex.md 或 README.md之外的文件夹将会为其生成对应的侧边栏。生成的顺序取自序号,标题取自文件(夹)名称。

命名约定

  • 无论是文件还是文件夹,请为其名称添加上正确的正整数序号.,从0001开始累计,如01.文件夹02.文件.md,我们将会按照序号的顺序来决定其在侧边栏当中的顺序。
  • 同一级别目录别内即使只有一个文件或文件夹也要为其加上序号。

提示

序号只是用于决定先后顺序,并不一定需要连着,如01、02、03...,实际工作中可能会在两个文章中间插入一篇新的文章,因此为了方便可以采用间隔序号10、20、30...,后面如果需要在1020中间插入一篇新文章,可以给定序号15

级别说明

源目录(一般是docs)底下的级别现在我们称之为一级目录一级目录的下一级为二级目录,以此类推,最多只能到四级目录

  • 一级目录

    1. .vuepress@pages_postsindex.md 或 README.md这些文件(文件夹)不参与数据生成。
    2. 序号非必须。(如一些专栏,可以不用序号)
  • 二级目录

    1. 该级别下可以同时放文件夹和.md文件,但是两者序号要连贯(参考下面的例子中的其他)。
    2. 必须有序号
  • 三级目录

    • (同上)
  • 四级目录

    v1.6.0 +

    1. 该级别下只能.md文件。
    2. 必须有序号

所有级别内至少有一个文件或文件夹。

目录结构例子

html
.├── docs│ │ (不参与数据生成)│ ├── .vuepress│ ├── @pages│ ├── _posts│ ├── index.md│ ││ │ (以下部分参与数据生成)│ ├── 《JavaScript教程》专栏 (一级目录)│ │ ├── 01.章节1 (二级目录)│ │ |├── 01.js1.md (三级目录-文件)│ │ |├── 02.js2.md│ │ |└── 03.js3.md│ │ └── 02.章节2 (二级目录)│ │ |├── 01.jsa.md│ │ |├── 02.小节 (三级目录)│ │ ||└── 01.jsxx.md (四级目录-文件)│ ├── 01.前端│ │ ├── 01.JavaScript│ │ |├── 01.js1.md│ │ |├── 02.js2.md│ │ |└── 03.js3.md│ │ └── 02.vue│ │ |├── 01.vue1.md│ │ |└── 02.vue2.md│ ├── 02.其他│ │ ├── 01.学习│ │ |├── 01.xxa.md│ │ |└── 02.xxb.md│ │ ├── 02.学习笔记│ │ |├── 01.xxa.md│ │ |└── 02.xxb.md│ │ ├── 03.文件x.md│ │ └── 04.文件xx.md│ └── 03.关于我│ │ └── 01.关于我.md. .

如何知道侧边栏数据有没有正确生成?

在运行开发服务时(npm run dev),在命令行查看打印记录,如果正确生成会有这样的绿色提示记录:

bash
tip:addsidebardata.侧边栏数据添加成功。

如果有未按约定的文件,会有黄色警告记录,如:

bash
warning:该文件'xxx'序号出错,请填写正确的序号。