Hugo 整合 VitePress 文档
本文档详细记录了将 Hugo 主题升级并整合 VitePress 文档的完整步骤。
1. 项目结构
在开始升级之前,确保项目结构如下:
devin-site/
├── docs/ # VitePress 文档目录
│ ├── .vitepress/ # VitePress 配置目录
│ │ └── config.mjs # VitePress 配置文件
│ ├── guide/ # 文档内容目录
│ └── index.md # 文档首页
├── content/ # Hugo 内容目录
├── layouts/ # Hugo 布局目录
├── static/ # 静态资源目录
├── hugo.yaml # Hugo 配置文件
└── package.json # 项目依赖配置
2. 安装依赖
- 安装 VitePress 相关依赖:
bash
npm install vitepress vue --save-dev
- 在
package.json
中添加 VitePress 相关脚本:
json
{
"scripts": {
"docs:dev": "vitepress dev docs",
"docs:build": "vitepress build docs",
"docs:preview": "vitepress preview docs",
"build": "npm run docs:build && hugo"
}
}
3. 配置 VitePress
- 创建 VitePress 配置文件
docs/.vitepress/config.mjs
:
javascript
export default {
title: 'Devin的文档',
description: 'Devin 的个人文档库',
base: '/docs/',
lang: 'zh-CN',
themeConfig: {
logo: '/images/site/favicon.webp',
nav: [
{ text: '首页', link: '/' },
{
text: '面试',
items: [
{text: 'Java', link: '/interview/java/jvm.md'},
{text: 'Database', link: '/interview/database/base.md'},
{text: 'Spring', link: '/interview/spring/Spring.md'},
{text: 'MyBatis', link: '/interview/MyBatis.md'}
]
},
{ text: '返回主站', link: 'http://devinkong.cn' },
{
text: '导航',
items: [
{text: 'it-tools', link: 'http://ittools.devinkong.cn/'},
{text: 'answer', link: 'http://answer.devinkong.cn/'}
]
}
],
sidebar: {
'/interview/java/': [
{
text: 'Java 编程语言',
items: [
{text: 'JVM', link: '/interview/java/jvm.md'},
{text: '创建对象', link: '/interview/java/createObject.md'},
{text: 'GC', link: '/interview/java/gc.md'},
{text: 'JMM', link: '/interview/java/jmm.md'},
{text: '线程', link: '/interview/java/thread.md'},
{text: 'JUC', link: '/interview/java/juc.md'},
]
}
],
'/interview/database/': [
{
text: '数据库',
items: [
{text: '数据库基础', link: '/interview/database/base.md'},
{text: 'MySQL', link: '/interview/database/mysql.md'},
{text: 'Redis', link: '/interview/database/redis.md'},
{text: 'MongoDB', link: '/interview/database/mongoDB.md'},
]
}
]
},
socialLinks: [
{icon: 'github', link: 'https://github.com/KongDian'}
],
footer: {
message: '基于 MIT 许可发布',
copyright: 'Copyright © 2020-现在 Devin Kong'
}
}
}
4. 配置 Hugo
- 修改
hugo.yaml
配置文件,添加 VitePress 文档目录的挂载:
yaml
module:
mounts:
- source: docs/.vitepress/dist
target: static/docs
- 配置导航菜单,在
data/zh-cn/site.yaml
中添加:
yaml
customMenus:
- name: 首页
url: /
weight: 1
- name: 文档
url: /docs/
weight: 2
- name: 博客
url: /posts
weight: 3
- name: 关于
url: /#about
weight: 4
5. 构建和运行
- 构建 VitePress 文档:
bash
npm run docs:build
- 启动 Hugo 开发服务器:
bash
hugo server -w
6. 注意事项
- 确保 VitePress 的
base
配置与 Hugo 的挂载路径一致 - 文档链接使用相对路径,避免使用绝对路径
- 返回主站链接使用完整的 URL(开发环境使用
http://localhost:1313
) - 定期更新文档内容,保持文档的时效性
7. 常见问题
文档链接无法跳转
- 检查 VitePress 的
base
配置 - 确保链接路径正确
- 验证 Hugo 的挂载配置
- 检查 VitePress 的
导航菜单不显示
- 检查
data/zh-cn/site.yaml
中的customMenus
配置 - 确保菜单项的 URL 正确
- 检查
样式问题
- 检查 VitePress 和 Hugo 的样式冲突
- 确保静态资源路径正确
8. 后续优化
- 添加文档搜索功能
- 优化文档导航结构
- 添加文档版本控制
- 实现文档评论功能
- 添加文档统计和分析