VuePress Hope主题
VuePress Hope主题
目录
小白教程
准备教程
运行环境
Node.js® 是一个基于 Chrome V8 引擎 的 JavaScript 运行时环境。
你需要下载并在你的电脑上安装最新的长期维护版。
下载Node.js
略
安装Node.js
略
安装编辑器
略
Pnmp
在你安装 Node.js 之后,请安装 pnpm。
我们推荐你使用 pnpm 作为项目管理器,因为 VuePress 和 VuePress Theme Hope 都是通过 pnpm 来管理依赖的。
pnpm 的一些功能可以保证你拥有正确的依赖,并且它能加速安装。
在终端中输入下列命令安装 pnpm:
corepack enable
corepack prepare pnpm@latest --activate创建项目
此教程将指引你创建一个 VuePress Theme Hope 项目。
选择合适的项目位置
为了避免偶然间触发一些奇怪的问题,而你自己不会解决,请尽量避免使用包含中文文字、表情符号或空格的文件路径 (如: C:\Users\小张\Desktop\VuePress 项目\Hope 主题❤️\)。
建议使用纯英文路径 (如: D:\projects\vuepress-theme-hope\)。
初始化项目
在选定的位置所在文件夹中打开终端。
请使用文件管理器打开对应文件夹,之后在上方的地址栏中输入
cmd之后按下回车。
在终端中执行下列命令之一:
# pnpm
pnpm create vuepress-theme-hope my-docs
# yarn
yarn create vuepress-theme-hope my-docs
# npm
npm init vuepress-theme-hope my-docs文件夹参数
这里的
my-docs是一个参数,代表 VuePress Theme Hope 项目的文件夹名称,在本教程中,我们将项目生成至当前目录下的my-docs文件夹。如果你有需求,你可以更改此参数来使用一个新文件夹名称。
中文显示
如果你的英语很不好,请在第一次选择中通过键盘
↓选择简体中文并回车来在后续流程中使用中文进行显示。
开发服务器
如果你在模板初始化成功后选择立即启动开发服务器,稍等片刻,你就可以在浏览器地址栏输入
localhost:8080/访问开发服务器了。
项目指令
本教程介绍 VuePress 项目命令
常用命令
vuepress dev [dir]会启动一个开发服务器,以便让你在本地开发你的 VuePress 站点。vuepress build [dir]会将你的 VuePress 站点构建成静态文件,以便你进行后续部署。
如果你在使用 VuePress Theme Hope 模板,你可以在 package.json 中发现下列三个命令:
{
"scripts": {
"docs:build": "vuepress build src",
"docs:clean-dev": "vuepress dev src --clean-cache",
"docs:dev": "vuepress dev src"
}
}这意味着你可以使用:
pnpm docs:dev启动开发服务器pnpm docs:build构建项目并输出pnpm docs:clean-dev清除缓存并启动开发服务器
终止开发服务器
如果你需要终止开发服务器,请点击终端,并连续两次按下
Ctrl + C。
升级版本
如果你需要升级主题和 VuePress 版本,请执行以下命令:
# pnpm
pnpm dlx vp-update
# yarn
yarn dlx vp-update
# npm
npx vp-update[warning] 注意
任何以
@vuepress/开头的官方包应该和 VuePress 保持相同版本。比如,如果你正在使用
@vuepress/plugin-search和@vuepress/utils,你应该确保他们和vuepress版本相同另外,如果你使用了其他第三方插件,请确保它兼容你要升级到的 VuePress 版本。
项目内容
本教程指引你如何在 VuePress 项目中控制内容生成。
页面的生成
VuePress 是以 Markdown 为中心的。你项目中的每一个 Markdown 文件都是一个单独的页面。
默认情况下,页面的路由路径是根据你的 Markdown 文件的相对路径决定的。
由于你的项目是通过创建助手生成的,那么你会得到以下文件结构:
└─ src
├─ guide
│ ├─ ...
│ └─ page.md
│ └─ markdown.md
│ └─ README.md
├─ ...
├─ slide.md
└─ README.md你的 Markdown 文件对应的路由路径为:
| 相对路径 | 路由路径 |
|---|---|
/README.md | / |
/slide.md | /slide.html |
/guide/README.md | /guide/ |
/guide/slide.md | /guide/slide.html |
/guide/page.md | /guide/page.html |
README.md是特例,在 Markdown 中,按照约定俗成,它会作为所在文件夹的主页。所以在渲染为网页时,它的对应路径为网页中的主页路径index.html。这应该很好理解。
Frontmatter
Frontmatter 是 VuePress 中很重要的一个概念,它用于承载 Markdown 文件的配置。Markdown 文件可以包含一个 YAML Frontmatter。
YAML
如果你对 YAML 也不熟悉,你可以查看 YAML 教程。
Frontmatter 必须在 Markdown 文件的顶部,并且被包裹在一对三短划线中间。下面是一个基本的示例:
---
lang: zh-CN
title: 页面的标题
description: 页面的描述
---
<!-- 这里是 Markdown 内容 -->
...你肯定注意到 Frontmatter 中的字段和 VuePress 配置文件十分类似。你可以通过 Frontmatter 来覆盖当前页面的 lang, title, description 等属性。因此,你可以把 Frontmatter 当作页面级作用域的配置,它通常具有最高优先级,所作配置仅对当前页面生效。
Markdown
每一个 Markdown 文件都会被 VuePress Theme Hope 处理,将文件内容渲染为网页内容。
都会被 VuePress Theme Hope 处理,将文件内容渲染为网页内容。
Markdown 语法
如果你尚不了解 Markdown,请查看 Markdown 教程。
大概十五分钟,你就可以学会如何书写 Markdown,看完之后记得回来!
你可以尝试自己编辑 Markdown 文件来修改模板的内容。如果你已启动开发服务器,那么修改后的结果会被实时同步到开发服务器上。
Markdown 语法扩展
- VuePress 自身对 Markdown 语法进行了一些扩展,关于这些扩展的语法,详见 VuePress → Markdown。
- 主题通过
vuepress-plugin-md-enhance额外启用了一些语法扩展,详见 指南 → Markdown。
配置项目
配置 VuePress
如果没有配置文件,一个 VuePress 项目只能按照预设实现有限的功能,所以为了更好的自定义你的网站,VuePress 提供了配置文件。
VuePress 使用文档文件夹中的 .vuepress 文件夹存放配置,所有 VuePress 相关的文件都将会被放在这里。
对于 VuePress 站点来说,.vuepress/config.ts (或 .vuepress/config.js) 是必要的配置文件。
使用 TS 配置文件
我们建议你使用 TypeScript 配置文件,以得到更好的类型提示、自动补全与错误检查。
如果你不熟悉 TypeScript,使用 JavaScript 配置文件也是可以的,但你最好使用诸如 VSCode 这种全面支持 TS/JS 语法的编辑器,以避免丢失下方提及的类型检查、自动补全与选项提示等功能。
配置文件
你需要在配置文件.vuepress/config.ts (或 .vuepress/config.js) 中,设置一个配置对象并将其导出。
为了能够得到正确的提示,我们建议从 vuepress 导入 defineUserConfig 并包裹配置对象:
(js版本略)
// .vuepress/config.ts
import { defineUserConfig } from "vuepress";
export default defineUserConfig({
// 此处放置配置
});在模板中,为了避免配置文件过长,我们使用 JavaScript 原生提供的 ESM 特性,将主题配置、导航栏和侧边栏配置拆分到了单独的文件夹中。
模板将主题函数抽离到了 .vuepress/theme.js,并通过 export default 导出。
.vuepress/theme.ts:
import { hopeTheme } from "vuepress-theme-hope";
// 我们默认导出了主题对象
export default hopeTheme({
// 主题配置
});随后在配置文件中直接引入:
.vuepress/config.ts:
// ...
// 我们在这里引入了主题
import theme from "./theme.js";
// ...
export default defineUserConfig({
// ...
// 这和 `theme: hopeTheme({/* 你的配置 */})` 是等价的
theme,
// ...
});这也能更清晰的帮助你理解配置中的站点配置和主题配置
配置作用域
站点配置
站点配置中的配置项被 VuePress 直接读取,和主题无关且在所有主题均可生效。
我们知道,每一个站点都应该有它的 lang, title 和 description 等属性,因此 VuePress 内置支持了这些属性的配置。
站点配置
你可以前往 VuePress2 → 参考 → 配置 查看所有 VuePress 配置。
主题配置
主题配置是你传递给 hopeTheme 函数的对象,它将由 VuePress Theme Hope 处理。
你可以在 配置 → 主题配置 中找到全部的主题配置。
提示与检查
如果你在使用支持 TS/JS 语言特性的编辑器 (如 VSCode),你可以很方便的得到选项提示与检查。
- 你可以将鼠标悬停在某个选项以获得提示:
- 如果你输入了错误的选项名称或非法的值,你会得到错误提示:
- 你可以在输入时得到自动补全:
更多
插件配置
VuePress Theme Hope 主题捆绑了一些插件,你可以在主题选项中通过
plugins.插件名称来传递插件选项,详见 配置 → 主题插件配置。如果你想要额外使用插件,请自行调用插件并传递插件选项,详见 VuePress → 插件。
样式配置
VuePress Theme Hope 主题按照约定俗称,使用
.vuepress/styles文件夹存放样式配置。你可以在此文件夹中:
- 创建
index.scss来注入额外的 CSS 样式- 创建
config.scss来进行样式配置- 创建
palette.scss来配置颜色与布局更多详情,详见 配置 → 样式配置。
页面配置
VuePress 支持在页面范围内通过 Markdown 文件中的 YAML Frontmatter 进行特定页面的配置,详见之前章节中的 项目内容 → Frontmatter。
项目结构
VuePress 项目结构
VuePress 只控制 VuePress 项目文件夹中的文件,也就是默认模板生成的 src 文件夹,项目下的其他文件不受 VuePress 控制。
一个基本的项目结构如下:
.
├── .github (可选的) → GitHub 配置文件存放路径
│ └── workflow → GitHub 工作流配置
│ └── docs-deploy.yml → 自动部署文档的工作流
│
├── src → 文档文件夹
│ │
│ ├── .vuepress (可选的) → VuePress 配置文件夹
│ │ │
│ │ ├── dist (默认的) → 构建输出目录
│ │ │
│ │ ├── public (可选的) → 静态资源目录
│ │ │
│ │ ├── styles (可选的) → 用于存放样式相关的文件
│ │ │
│ │ ├── config.{js,ts} (可选的) → 配置文件的入口文件
│ │ │
│ │ └── client.{js,ts} (可选的) → 客户端文件
│ │
│ ├── ... → 其他项目文档
│ │
│ └── README.md → 项目主页
│
└── package.json → Nodejs 配置文件部署项目
构建项目
当你在本地完成项目的初步开发后,你就可以使用 pnpm docs:build 命令构建网站。
如果你在使用模板,网站内容将会输出到 VuePress 项目的 .vuepress/dist 文件夹下。这些文件就是 VuePress 的最终输出结果。
你可以将此文件夹的内容部署到你网站的服务器上。最简单的做法是上传到 GitHub 并开启 GitHub Pages。
部署到 GitHub Pages
如果你在使用模板,且在创建过程中选择了创建自动部署文档的 GitHub 工作流,那么你唯一要做的就是设置正确的 base 选项。
- 如果你准备发布到
https://<USERNAME>.github.io/,你必须将整个项目上传至https://github.com/<USERNAME>/<USERNAME>.github.io仓库。在这种情况下你无需进行任何更改,因为 base 默认就是"/"。 - 如果你的仓库地址是一个普通的形如
https://github.com/<USERNAME>/<REPO>的格式,网站将会被发布到https://<USERNAME>.github.io/<REPO>/,也就是说,你需要将 base 设置为"/<REPO>/"。
Github 教程
关于 GitHub 的相关教程,你可以参考 GitHub 简介。
其他部署方式
关于其他部署方式,请参阅 VuePress → 部署。
Gitee
如果你在使用码云,你需要注意码云的特殊仓库是
https://gitee.com/<USERNAME>/<USERNAME>。如果你推送到这个仓库,你的文档将会发布在https://<USERNAME>.gitee.io上。


