个人主页项目,基于 Vue 3 + Vite 构建,集成了首页展示、关于、音乐播放器、日志和 Bangumi 追番收藏等功能。
- 首页:个人介绍、打字机动画、最近日志预览
- 关于页:个人简介与技能展示
- 音乐播放器:基于 QQ 音乐歌单的在线播放,支持歌词显示(含双语歌词)、播放列表、进度控制
- 日志:时间线形式的日志记录,长内容自动折叠/展开
- Bangumi 收藏:番剧、漫画、游戏收藏记录展示,支持分类筛选与详情查看
- 明暗主题:支持亮色/暗色主题切换
- 响应式设计:适配桌面、平板、手机等多种设备
| 技术 | 用途 |
|---|---|
| Vue 3 | 前端框架(Composition API) |
| Vite | 构建工具 |
| Ant Design Vue | UI 组件库 |
| Shiki | 代码语法高亮 |
| Markdown-it | Markdown 渲染 |
homepage/
├── src/
│ ├── components/ # 通用组件
│ │ ├── AppHeader.vue # 顶部导航
│ │ ├── AppFooter.vue # 底部信息
│ │ ├── MarkdownPreview.vue # Markdown 渲染
│ │ ├── CialloGreet.vue # Ciallo 打招呼动画
│ │ └── PhoebePoke.vue # 菲比戳戳互动
│ ├── composables/ # 组合式函数
│ │ ├── usePlayer.js # 音乐播放器逻辑
│ │ ├── useLyrics.js # 歌词解析(双语支持)
│ │ ├── useLog.js # 日志数据加载
│ │ ├── useTheme.js # 主题切换
│ │ └── useShiki.js # Shiki 高亮
│ ├── views/ # 页面视图
│ │ ├── HomeView.vue # 首页
│ │ ├── AboutView.vue # 关于
│ │ ├── MusicView.vue # 音乐播放器
│ │ ├── LogView.vue # 日志
│ │ └── BangumiView.vue # Bangumi 收藏
│ ├── App.vue # 根组件
│ ├── main.js # 入口
│ └── style.css # 全局样式
├── scripts/ # 工具脚本
│ ├── fetch-bangumi.mjs # 拉取 Bangumi 收藏数据
│ ├── parse-qq-playlist.mjs # 解析 QQ 音乐歌单
│ ├── generate-manifest.mjs# 生成清单
│ ├── gen-feed.mjs # 合并日志 Feed
├── public/ # 静态资源
│ ├── audio/ # 音效文件
│ ├── log/ # 日志 Markdown 源文件
│ ├── music.jsonl # 歌单数据
│ └── bangumi.jsonl # Bangumi 收藏数据
├── .env.example # 环境变量模板
└── vite.config.js # Vite 配置
- Node.js >= 22
git clone https://github.com/cecilia4412/homepage.git
cd homepage
npm install复制 .env.example 为 .env 并填写相关配置:
cp .env.example .env| 变量 | 说明 | 必填 |
|---|---|---|
BANGUMI_TOKEN |
Bangumi Access Token,用于拉取收藏数据 | 否 |
Bangumi Token 申请:https://next.bgm.tv/demo/access-token
只需 Token,无需配置用户名,脚本会自动通过
/v0/me获取。
npm run devnpm run buildnpm run gen:manifestBANGUMI_TOKEN=your_token node scripts/fetch-bangumi.mjs- 日志:
public/log/下的 Markdown 文件,由gen-feed.mjs合并为public/log.md - 音乐:QQ 音乐歌单通过
parse-qq-playlist.mjs解析,输出public/music.jsonl - Bangumi:通过
fetch-bangumi.mjs从 Bangumi API 拉取收藏,输出public/bangumi.jsonl
- Vue 3 — 渐进式 JavaScript 框架
- Vite — 下一代前端构建工具
- Ant Design Vue — 企业级 UI 组件库
- Shiki — 基于 TextMate 语法的高亮引擎
- Bangumi API — 番组计划开放 API,用于获取用户收藏数据
- MetingJS — 基于 PHP 的音乐数据解析库,本项目使用其公共 API 获取音乐播放地址、封面和歌词
MIT