项目介绍
- 技术栈:VitePress + 自定义主题(BlogHome/BlogSidebar 等)+ 数据生成脚本(generate_blog_data.js)
- 渲染数据:生产环境使用静态 blogData.js(由脚本生成);开发环境也可复用静态数据,确保稳定
- 排序规则:按 frontmatter.date 降序;同一天按标题升序;URL 兜底
推荐目录结构(关键路径):
text
yijiebuyi/
├─ docs/
│ ├─ .vitepress/
│ │ ├─ config.ts # 站点配置(可能在项目内)
│ │ └─ theme/
│ │ ├─ components/ # BlogHome.vue、BlogSidebar.vue 等
│ │ └─ data/ # blogData.js(生成)、seriesData.js
│ ├─ blog/ # 博客文章、使用指南
│ └─ series/ # 系列文章(llm-2025 等)
├─ scripts/ # 增量构建、部署、修复脚本
└─ package.json # 脚本命令(dev/build/preview 等)
快速开始
- 安装依赖
bash
npm ci # 或 npm install
- 常用脚本
bash
npm run dev # 启动开发(生成数据 + vitepress dev)
npm run build # 构建静态站点(vitepress build)
npm run preview # 本地预览构建产物
npm run generate:data # 仅生成 blogData.js(读取 frontmatter 并排序)
- 本地预览要点
- 如首页列表为空,先执行 npm run generate:data
- 构建提示 “The language 'env' is not loaded, falling back to 'txt'” 可忽略
写作与组织
1. 基本设置方法
在文章的 frontmatter 中设置 date
字段:
yaml
---
title: 你的文章标题
description: 文章描述
date: 2024-05-15 # 👈 这里设置你想要的发布日期
author: 一介布衣
tags:
- 标签1
- 标签2
categories:
- 分类名称
---
```
### 2. 支持的日期格式
~~~yaml
# 标准日期格式(推荐)
date: 2024-05-15
# 包含时间
date: 2024-05-15 14:30:00
# 斜杠分隔
date: 2024/05/15
# ISO 8601 格式
date: 2024-05-15T14:30:00.000Z
```
### 3. 在文章中显示发布时间
有两种方式在文章中显示格式化的发布时间:
**方式1:使用 DateFormatter 组件(推荐)**
~~~markdown
<div class="article-meta">
<p><strong>发布时间:</strong><DateFormatter :date="$frontmatter.date" /></p>
<p><strong>作者:</strong>\{\{ $frontmatter.author \}\}</p>
<p><strong>标签:</strong>\{\{ $frontmatter.tags.join(', ') \}\}</p>
</div>
```
**方式2:使用全局格式化函数**
~~~markdown
> **发布时间:** \{\{ $formatDate($frontmatter.date) \}\}
> **作者:** \{\{ $frontmatter.author \}\}
> **标签:** \{\{ $frontmatter.tags.join(', ') \}\}
```
**支持的日期格式:**
- `YYYY年MM月DD日` (默认) - 2024年05月15日
- `YYYY-MM-DD` - 2024-05-15
- `MM/DD/YYYY` - 05/15/2024
## 🚀 完整示例
### 示例1:技术文章
~~~yaml
---
title: AI技术分享 - 大模型应用开发实践
description: 分享大模型应用开发的实践经验
date: 2024-05-15 # 设置为历史日期
author: 一介布衣
tags:
- AI
- 大模型
- 技术分享
categories:
- AI技术
---
# AI技术分享 - 大模型应用开发实践
> 发布时间:\{\{ $frontmatter.date \}\}
> 作者:\{\{ $frontmatter.author \}\}
## 内容开始...
```
### 示例2:开发经验文章
~~~yaml
---
title: 开发经验总结 - 从零到一的项目实践
description: 分享项目开发的完整经验
date: 2024-03-20 # 设置为更早的日期
author: 一介布衣
tags:
- 开发经验
- 项目管理
categories:
- 开发经验
---
# 开发经验总结
> 发布时间:\{\{ $frontmatter.date \}\}
## 内容开始...
```
## 🛠️ 创建新文章的步骤
### 1. 使用模板文件
复制 `_template.md` 文件作为新文章的起点:
~~~bash
# 复制模板文件
cp docs/blog/_template.md docs/blog/your-new-article.md
```
### 2. 修改文章信息
编辑新文件,修改以下内容:
1. **标题和描述**
2. **发布日期**(设置为你想要的历史日期)
3. **标签和分类**
4. **文章内容**
### 3. 文件命名建议
```
docs/blog/
├── ai-tech-share.md # AI技术分享
├── dev-experience.md # 开发经验
├── project-architecture.md # 项目架构
├── code-quality.md # 代码质量
└── team-collaboration.md # 团队协作
```
## 📊 文章组织建议
### 按时间组织
~~~markdown
## 2024年文章
### 5月
- [AI技术分享](./ai-tech-share.md) - 2024年5月15日
- [项目架构设计](./architecture.md) - 2024年5月10日
### 3月
- [开发经验总结](./dev-experience.md) - 2024年3月20日
- [代码质量提升](./code-quality.md) - 2024年3月15日
```
### 按分类组织
~~~markdown
## AI技术
- [大模型应用开发](./ai-tech-share.md)
- [RAG系统设计](./rag-system.md)
## 开发经验
- [项目实践总结](./dev-experience.md)
- [架构设计思考](./architecture.md)
```
## 🎨 样式自定义
### 文章元信息样式
博客已经包含了自定义CSS样式,支持:
- 发布时间高亮显示
- 标签样式美化
- 响应式设计
- 深色模式适配
### 自定义样式示例
如果你想进一步自定义样式,可以修改 `docs/.vitepress/theme/custom.css`:
~~~css
/* 自定义发布时间样式 */
.publish-date {
font-weight: 600;
color: var(--vp-c-brand-1);
background: linear-gradient(45deg, #ff6b6b, #4ecdc4);
-webkit-background-clip: text;
-webkit-text-fill-color: transparent;
}
```
## 🔧 高级功能
### 1. 自动生成文章列表
你可以创建一个脚本来自动生成按日期排序的文章列表:
~~~javascript
// scripts/generate-blog-index.js
const fs = require('fs');
const path = require('path');
const matter = require('gray-matter');
// 读取所有博客文章
// 按日期排序
// 生成索引页面
```
### 2. RSS订阅支持
可以添加RSS生成功能,让读者订阅你的博客:
~~~javascript
// 在构建时生成RSS文件
// 包含文章的自定义发布时间
```
## 📱 移动端适配
博客已经包含了响应式设计,在移动设备上也能很好地显示:
- 自适应布局
- 触摸友好的交互
- 优化的字体大小
## 🚀 部署建议
### 1. GitHub Pages
~~~yaml
# .github/workflows/deploy.yml
name: Deploy VitePress site to Pages
on:
push:
branches: [main]
jobs:
deploy:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v3
- uses: actions/setup-node@v3
with:
node-version: 18
- run: npm ci
- run: npm run docs:build
- uses: actions/deploy-pages@v2
```
### 2. Vercel/Netlify
直接连接GitHub仓库,自动部署。
## 💡 最佳实践
1. **保持一致的文章结构**
2. **使用有意义的文件名**
3. **添加合适的标签和分类**
4. **包含文章摘要和关键词**
5. **定期更新和维护**
## 🎉 总结
现在你已经掌握了如何在VitePress博客中设置自定义发布时间!你可以:
- ✅ 为任何文章设置历史发布日期
- ✅ 使用模板快速创建新文章
- ✅ 自定义文章样式和布局
- ✅ 组织和管理你的博客内容
开始创建你的第一篇带有自定义发布时间的文章吧!
---
**相关文章推荐:**
- [AI技术分享 - 大模型应用开发实践](./ai-tech-share.md)
- [开发经验总结 - 从零到一的项目实践](./dev-experience.md)
**有问题欢迎交流讨论!**