3. 配置
3.1 配置文件
如果没有任何配置,你的 VuePress 站点仅有一些最基础的功能。为了更好地自定义你的网站,让我们首先在你的文档目录(docs)下创建一个 .vuepress
目录,所有 VuePress 相关的文件都将会被放在这里。你的项目结构可能是这样:
VuePress 站点必要的配置文件是 .vuepress/config.js,它应该导出一个 JavaScript 对象。如果你使用 TypeScript ,你可以将其替换为 .vuepress/config.ts ,以便让 VuePress 配置得到更好的类型提示。
如果你是 JavaScript :
如果你是 TypeScript
提示
我们接下来会把这个配置对象称为 VuePress 配置.
3.2 配置作用域
你可能已经注意到了,在 VuePress 配置中有一项 themeConfig 配置项。
在 themeConfig 外部的配置项属于 站点配置 ,而在 themeConfig 内部的配置项则属于 主题配置。
3.2.1 站点配置
站点配置的意思是,无论你使用什么主题,这些配置项都可以生效。
我们知道,每一个站点都应该有它的 lang, title 和 description 等属性,因此 VuePress 内置支持了这些属性的配置。
提示: 前往 配置参考 查看所有站点配置。
这里我做一些我自己的配置。
VuePress 配置的参考文档,可以通过配置文件来设置这些配置。 VuePress 约定的配置文件为(按照优先顺序):
当前工作目录 cwd 下:
vuepress.config.ts
vuepress.config.js
源文件目录 sourceDir 下:
.vuepress/config.ts
.vuepress/config.js
你也可以通过 命令行接口 的 --config 选项来指定配置文件。
1. base
类型: string
默认值: /
详情:
如果你想让你的网站部署到一个子路径下,你将需要设置它。 它的值应当总是以斜杠开始,并以斜杠结束。
举例来说,如果你想将你的网站部署到 https://quicksandteam.github.io/aiyc/,那么 base 应该被设置成 "/aiyc/"。
base 将会作为前缀自动地插入到所有以 / 开始的其他选项的链接中,所以你只需要指定一次。
参考:
指南 > 静态资源 > Base Helper
指南 > 部署
2. lang
类型: string
默认值: en-US
详情:
站点的语言。
它将会在最终渲染出的 HTML 中作为 <html> 标签的 lang 属性。
它可以设置在不同语言的 locales 中。中文:zh-CN
参考:
配置 > locales
3. title
类型: string
默认值: ''
详情:
站点的标题。
它将会作为所有页面标题的后缀,并且在默认主题的导航栏中显示。
它可以设置在不同语言的 locales 中。
参考:
配置 > locales
4. description
类型: string
默认值: ''
详情:
站点的描述。
它将会在最终渲染出的 HTML 中作为 <meta name="description" /> 标签的 content 属性。它会被每个页面的 Frontmatter 中的 description 字段覆盖。
它可以设置在不同语言的 locales 中。
参考:
配置 > locales
Frontmatter > description
5. head
类型: HeadConfig[]
默认值: []
详情:
在最终渲染出的 HTML 的 <head> 标签内加入的额外标签。
你可以通过 [tagName, { attrName: attrValue }, innerHTML?] 的格式来添加标签。
它可以设置在不同语言的 locales 中。
示例:
增加一个自定义的 favicon :
渲染为:
虽然,后面我会放上我写的配置,但是现在我还是放一下这个 head 的多个 html 写法:
那我对应的文件夹以及图片的结构呢?
参考: https://v2.vuepress.vuejs.org/zh/guide/assets.html
参考:
配置 > locales
Frontmatter > head
6. locales
类型: { [path: string]: Partial<SiteLocaleData> }
默认值: {}
详情:
多语言支持的各个语言 locales 。
lang
title
description
head
参考:
指南 > I18n
写到 6 这个点呢,就不得不说怎么配置了。不过不是现在,是后面的站点配置。
不过写到这里,也就开始了主题的配置了。
3.2.2 主题配置
主题配置将会被 VuePress 主题来处理,所以它取决于你使用的主题是什么。
如果你没有设置 VuePress 配置的 theme 配置项,则代表使用的是默认主题。至于其他主题,等我有时间,我一定安排。如果你们着急就分享和关注公众号:AI悦创,并私信我哈。
提示: 前往 默认主题 > 配置参考 查看默认主题的配置。
1. home
类型: string
默认值: /
详情:
首页的路径。
它将被用于:
导航栏中 Logo 的链接
404 页面的 返回首页 链接
2. navbar
类型: false | (NavbarItem | NavbarGroup | string)[]
默认值: []
详情:
导航栏配置。
设置为 false 可以禁用导航栏。
为了配置导航栏元素,你可以将其设置为 导航栏数组 ,其中的每个元素是 NavbarItem 对象、 NavbarGroup 对象、或者字符串:
NavbarItem 对象应该有一个 text 字段和一个 link 字段,还有一个可选的 activeMatch 字段。
NavbarGroup 对象应该有一个 text 字段和一个 children 字段。 children 字段同样是一个 导航栏数组 。
字符串应为目标页面文件的路径。它将会被转换为 NavbarItem 对象,将页面标题作为 text ,将页面路由路径作为 link 。
写到这里的时候,我发现文档很强很全,所以我直接待会把配置好的文件内容贴出来。
接下来,我配置一下,目前需要的导航栏:
目前设想,我需要:
专栏
Github
关于团队
资源分享
技术杂谈
付费教学
数据结构与算法
Java 入门
Python 入门
Go 入门
源码分析
广告
期末不挂科
3. 站点多语言配置
要启用 VuePress 的多语言支持,首先需要使用如下的文件目录结构:
那上面是官方给的结构,我是中国人,所以呢。我就把 zh 改成 en 吧。
然后,在你的 配置文件 中设置 locales
选项:
那和上面也是一样的,我要设置一个英文站点,但是显然上面的官方提供样例的配置是不够的,还需要看这个连接的文档:
所以我也一同配置一波:
如果一个语言没有声明 lang, title, description 或者 head ,VuePress 将会尝试使用顶层配置的对应值。如果每个语言都声明了这些值,那么顶层配置中的对应值可以被省略。
提示: 配置参考: locales
但是,上面的配置我发现显示的和我时间的语言有区别。
第一个应该是中文,却上图那样显示。第二个也是:
第二个还算好一点,所以进行优化修改:
待更新!