这是一个基于 VitePress 的博客系统,支持自动从 markdown 文件生成博客列表。
- ✅ 自动读取
docs/posts和docs/zh/posts目录下的 markdown 文件 - ✅ 支持 frontmatter 解析(标题、日期、作者、标签、摘要)
- ✅ 分页显示(每页 10 篇文章)
- ✅ 响应式设计
- ✅ 支持中英文双语
- ✅ 自动排序(按日期倒序)
在 docs/posts 目录下创建新的 markdown 文件,格式如下:
---
title: "文章标题"
date: "2024-01-15"
author: "作者名"
tags: ["标签1", "标签2"]
excerpt: "文章摘要(可选)"
---
文章内容...运行以下命令生成博客数据:
npm run generate-blog或者直接运行:
node scripts/generate-blog-data.jsnpm run docs:dev这会自动生成博客数据并启动开发服务器。
npm run docs:builddocs/
├── posts/ # 英文博客文章
│ ├── xmake-3-0-release.md
│ ├── building-cross-platform-apps.md
│ └── ...
├── zh/posts/ # 中文博客文章
│ ├── xmake-3-0-release.md
│ ├── cross-platform-development.md
│ └── ...
├── blog/
│ └── index.md # 英文博客首页
├── zh/blog/
│ └── index.md # 中文博客首页
└── .vitepress/
└── theme/
├── blog-data.js # 英文博客数据(自动生成)
└── zh-blog-data.js # 中文博客数据(自动生成)
scripts/
└── generate-blog-data.js # 博客数据生成脚本
| 字段 | 类型 | 必需 | 说明 |
|---|---|---|---|
title |
string | ✅ | 文章标题 |
date |
string | ✅ | 发布日期(YYYY-MM-DD 格式) |
author |
string | ❌ | 作者名称 |
tags |
array | ❌ | 标签数组 |
excerpt |
string | ❌ | 文章摘要,如果不提供会自动生成 |
- 自动生成: 每次运行
npm run docs:dev或npm run docs:build时,系统会自动重新生成博客数据 - 文件命名: 建议使用有意义的文件名,因为 URL 会基于文件名生成
- 日期格式: 日期必须使用
YYYY-MM-DD格式 - 编码: 确保 markdown 文件使用 UTF-8 编码
如果遇到问题:
- 确保所有 markdown 文件都有正确的 frontmatter
- 检查文件编码是否为 UTF-8
- 确保
gray-matter包已正确安装 - 查看控制台错误信息
可以通过修改以下文件来自定义博客系统:
scripts/generate-blog-data.js: 修改数据生成逻辑docs/blog/index.md和docs/zh/blog/index.md: 修改博客页面布局- CSS 样式可以通过 VitePress 主题配置进行自定义