vitepress是基于vite和vue的静态站点生成器(ssg),专为快速构建以内容为中心的站点设计;它将markdown自动转为路由化html页面,内置frontmatter解析、vue组件支持、默认主题及博客增强能力(如数据加载器与自定义布局),三步即可完成初始化、写作与部署。

直接用 Vite 本身不能生成静态博客——它是个构建工具,不是静态站点生成器(SSG)。真正负责“把 Markdown 变成 HTML 页面、组织路由、生成侧边栏/导航”的,是像 VitePress 这类基于 Vite 的 SSG 工具。Vite 在其中扮演底层引擎角色:提供极速开发服务器、按需编译、HMR(热更新)和生产构建能力。
为什么选 VitePress 而不是裸用 Vite?
你当然可以用 Vite 手写 HTML 模板 + JS 渲染逻辑 + 自己解析 Markdown,但那等于重复造轮子。VitePress 已经封装好全部 SSG 核心能力:
- 自动将
docs/*.md文件映射为路由(如docs/guide.md→/guide/) - 内置 Frontmatter 解析、目录生成、代码高亮、搜索、多语言支持
- 开箱即用的默认主题,含响应式导航栏、可折叠侧边栏、锚点跳转
- 所有 Markdown 文件天然支持 Vue 语法和组件(比如在文章里嵌入一个计数器)
三步跑通 VitePress 博客工作流
以最简方式初始化一个可运行的博客项目:
-
1. 初始化并安装:创建空文件夹,运行
npm init -y && npm add -D vitepress
然后执行npx vitepress init—— 它会自动生成docs/目录和基础文件(index.md、.vitepress/config.js) -
2. 写内容:在
docs/下新建blog/hello-world.md,加 Frontmatter:---<br>title: 第一篇博客<br>date: 2026-10-10<br>---
下面写 Markdown 正文,保存后本地服务就能看到新页面 -
3. 启动与构建:在
package.json中添加脚本:"docs:dev": "vitepress dev docs""docs:build": "vitepress build docs"
运行npm run docs:dev开发,npm run docs:build输出静态文件到docs/.vitepress/dist
如何让博客更“博客化”?
默认 VitePress 更偏向文档站。要支撑博客场景(归档、分类、分页、RSS),关键靠两件事:
-
数据加载器(Data Loaders):在
.vitepress/data/posts.ts中使用createContentLoader扫描blog/*.md,按日期排序、过滤草稿、提取摘要,导出结构化文章列表供首页或归档页使用 -
自定义布局组件:在
docs/.vitepress/theme/Layout.vue中重写布局,插入文章列表、分页控件;或在docs/blog/index.md中直接用<bloglist></bloglist>组件调用加载的数据
部署就是上传静态文件
构建完成后,docs/.vitepress/dist 里的所有文件就是纯静态资源。你可以:
- 推送到 GitHub Pages(配置
base: '/<repo-name>/'</repo-name>,用 GitHub Actions 自动构建部署) - 上传到 Vercel/Netlify,它们会自动识别
vitepress build命令并托管 - 甚至丢进任意对象存储(如 AWS S3、Cloudflare R2),配个 CDN 就能全球加速











