国庆节10月1日
--


团子和蛋糕博客的完整使用指南

本文档详细介绍博客的各项功能和使用方法。
1src/2├── content/3│ ├── posts/ # 博客文章4│ ├── moments/ # 日常动态5│ ├── album/ # 相册6│ ├── daohang/ # 网站导航7│ ├── danmu/ # 弹幕留言8│ ├── bangumi/ # 番组计划9│ ├── spec/ # 特殊页面(关于、友链等)10│ └── life/ # 生活记录11│ ├── ideas/ # 想法12│ ├── places/ # 地点13│ ├── checkin/ # 打卡14│ ├── routines/ # 日常规划15│ ├── health/16│ │ ├── workout/ # 运动17│ │ ├── sleep/ # 睡眠18│ │ └── food/ # 饮食19│ └── notebooks/ # 笔记本20├── pages/ # 页面路由21├── components/ # 组件22├── config/ # 配置文件23│ ├── siteConfig.ts # 站点配置24│ ├── sidebarConfig.ts # 侧边栏配置25│ ├── navBarConfig.ts # 导航栏配置26│ ├── commentConfig.ts # 评论配置27│ └── ...28└── i18n/ # 国际化为了保持博客内容的整洁有序,建议按照以下规范命名文件和文件夹。所有文件名和文件夹名建议使用中文,与各功能模块的语义相匹配。
| 功能模块 | 存放路径 | 命名建议 | 示例 | 子文件夹 |
|---|---|---|---|---|
| 文章 | src/content/posts/ | 按主题分类的子文件夹 + 文章标题 | 技术/Java基础.md、生活/第一次旅行.md | ✅ 支持 |
| 日常动态 | src/content/moments/ | 日期格式 | 2026-04-20.md | ❌ 不支持 |
| 运动记录 | src/content/life/health/workout/ | 日期格式 | 2026-04-20.md | ❌ 不支持 |
| 睡眠记录 | src/content/life/health/sleep/ | 日期格式 | 2026-04-20.md | ❌ 不支持 |
| 饮食记录 | src/content/life/health/food/ | 日期格式或描述性名称 | 2026-04-20.md、健康早餐.md | ❌ 不支持 |
| 奇思妙想 | src/content/life/ideas/ | 简短描述性标题 | 晨跑计划.md、新项目想法.md | ❌ 不支持 |
| 打卡项目 | src/content/life/checkin/ | 习惯/目标名称 | 每日阅读.md、早睡早起.md、喝水提醒.md | ❌ 不支持 |
| 日常规划 | src/content/life/routines/ | 规划类型或时间 | 晨间习惯.md、晚间安排.md、周末计划.md | ❌ 不支持 |
| 去过的地方 | src/content/life/places/ | 地点名称 | 成都.md、杭州西湖.md、公司.md | ❌ 不支持 |
| 笔记本 | src/content/life/notebooks/ | 笔记本类型(文件夹) + 日期(条目) | 日记/2026-04-20.md、读书笔记/2026-04.md | ✅ 本身就是文件夹 |
| 番组计划 | src/content/bangumi/ | 按类型分子文件夹 + 作品名称 | anime/进击的巨人.md、book/人类简史.md | ✅ 支持 |
| 功能模块 | 是否支持子文件夹 | 说明 |
|---|---|---|
| 文章 (posts) | ✅ 支持 | 可以按主题/分类创建子文件夹,子文件夹名称即为分类 |
| 日常动态 (moments) | ❌ 不支持 | 建议扁平化管理,所有动态文件直接放在 moments/ 目录 |
| 运动记录 (workout) | ❌ 不支持 | 建议按日期命名,扁平化管理 |
| 睡眠记录 (sleep) | ❌ 不支持 | 建议按日期命名,扁平化管理 |
| 饮食记录 (food) | ❌ 不支持 | 建议按日期或简短描述命名,扁平化管理 |
| 奇思妙想 (ideas) | ❌ 不支持 | 建议扁平化管理,用标题区分不同想法 |
| 打卡项目 (checkin) | ❌ 不支持 | 每个文件代表一个打卡项目,扁平化管理 |
| 日常规划 (routines) | ❌ 不支持 | 建议扁平化管理,每个规划一个文件 |
| 去过的地方 (places) | ❌ 不支持 | 建议扁平化管理,每个地点一个文件 |
| 笔记本 (notebooks) | ✅ 本身就是文件夹 | 每个笔记本是一个文件夹,条目放在各自的文件夹内 |
| 番组计划 (bangumi) | ✅ 支持 | 建议按类型创建子文件夹:anime、book、music、game、real |
图例说明:
- ✅ 支持子文件夹分类
- ❌ 不支持子文件夹(建议扁平化管理)
命名建议: 子文件夹按主题/分类命名,文件名使用文章标题。
1posts/2├── 技术/3│ ├── Java基础.md4│ ├── Docker入门.md5│ └── 算法笔记.md6├── 生活/7│ ├── 第一次旅行.md8│ └── 养猫日记.md9├── 英语学习/10│ ├── 背单词方法.md11│ └── 语法笔记.md12└── 随笔/13 └── 关于成长.md说明:
- 子文件夹名称代表文章分类
- 文件名使用文章的实际标题,便于识别内容
- 避免使用
1.md、a.md等无意义名称
命名建议: 使用日期格式 YYYY-MM-DD.md。
1moments/2├── 2026-04-20.md # 4月20日的动态3├── 2026-04-19.md # 4月19日的动态4└── 2026-04-18.md # 4月18日的动态说明:
- 每条动态对应一天的记录
- 日期格式便于按时间排序和查找
- 文件名只作为元数据,实际内容在 frontmatter 的
published字段指定- 不支持子文件夹分类,所有动态文件直接放在
moments/目录下
命名建议: 使用日期格式或简短的描述性名称。
1workout/2├── 2026-04-20.md # 4月20日的运动3├── 2026-04-18.md # 4月18日的运动4└── 2026-04-15.md # 4月15日的运动说明:
- 主要按日期命名,因为每天可能有多次运动记录
- 如果一天有多次不同运动,可用简短描述:
2026-04-20-晨跑.md、2026-04-20-健身房.md
1sleep/2├── 2026-04-20.md # 4月20日晚的睡眠3├── 2026-04-19.md # 4月19日晚的睡眠4└── 2026-04-18.md # 4月18日晚的睡眠说明:
- 睡眠记录按日期命名,指当天晚上的睡眠
- 通常每天一条记录
1food/2├── 2026-04-20.md # 4月20日的饮食3├── 健康早餐.md # 健康早餐记录4└── 节日大餐.md # 特殊日期的饮食说明:
- 日常饮食按日期命名
- 特殊的饮食记录可用描述性名称
命名建议: 简短描述想法内容,不要超过20个字。
1ideas/2├── 晨跑计划.md # 关于晨跑的想法3├── 学习新语言.md # 关于学外语的想法4├── 开发独立博客.md # 关于做博客的想法5└── 每周一本书.md # 关于阅读的想法说明:
- 想法名称应简洁明了,概括核心内容
- 不需要包含日期,因为有
createdAt字段记录创建时间- 已完成的想法会在侧边栏显示,使用有意义的名称很重要
命名建议: 使用习惯/目标名称。
1checkin/2├── 每日阅读.md # 阅读打卡3├── 早睡早起.md # 作息打卡4├── 每日喝水.md # 喝水打卡5├── 运动健身.md # 运动打卡6└── 单词背诵.md # 学习打卡说明:
- 文件名就是打卡项目的名称
- 一次打卡代表一个习惯/目标
- 打卡记录保存在 frontmatter 的
checkins数组中
命名建议: 按时间段或规划类型命名。
1routines/2├── 晨间习惯.md # 早晨的例行安排3├── 午休安排.md # 午休时间规划4├── 晚间习惯.md # 晚上的例行安排5├── 周末计划.md # 周末活动规划6└── 学习计划.md # 学习时间安排说明:
- 规划代表一种例程或习惯模板
- 可以按一天中的时间段或按功能分类
- 文件名应体现规划的用途
命名建议: 使用地点名称。
1places/2├── 成都.md # 成都旅行3├── 杭州西湖.md # 西湖游玩4├── 公司.md # 公司位置5├── 北京.md # 北京出差6└── 故宫.md # 故宫参观说明:
- 可以是城市、地点或具体景点
- 如果同一地点去过多次,可以只创建一个文件,通过
visitCount和正文记录每次- 不建议使用子文件夹,建议扁平化管理,每个地点一个文件
命名建议: 笔记本(文件夹)按类型命名,条目(md文件)按日期或主题命名。
1notebooks/2├── 日记/3│ ├── _index.md # 日记本配置4│ ├── 2026-04-20.md # 4月20日的日记5│ ├── 2026-04-19.md # 4月19日的日记6│ └── 2026-04-18.md # 4月18日的日记7├── 读书笔记/8│ ├── _index.md # 读书笔记配置9│ ├── 2026-04-20.md # 某本书的笔记10│ └── 2026-04-15.md # 另一本书的笔记11├── 学习笔记/12│ ├── _index.md13│ └── 2026-04.md # 4月的学习汇总14└── 工作日志/15 ├── _index.md16 └── 2026-04-20.md # 4月20日的工作记录说明:
- 笔记本是文件夹,每个笔记本可以有多个条目
- 笔记本名称应体现用途:
日记、读书笔记、工作日志、灵感记录- 条目按日期命名,保持时间顺序
- 每个笔记本文件夹内必须有
_index.md文件定义笔记本配置
命名建议: 按类型分子文件夹,文件名使用作品名称。
1bangumi/2├── anime/ # 动画3│ ├── 进击的巨人.md4│ ├── 鬼灭之刃.md5│ └── 咒术回战.md6├── book/ # 书籍7│ ├── 人类简史.md8│ └── 活着.md9├── music/ # 音乐10│ ├── 周杰伦专辑.md11│ └── 泰勒专辑.md12├── game/ # 游戏13│ ├── 王者荣耀.md14│ └── 原神.md15└── real/ # 影视16 ├── 肖申克的救赎.md17 ├── 泰坦尼克号.md18 └── 盗梦空间.md说明:
- 子文件夹按作品类型划分: anime、book、music、game、real
- 文件名使用作品名称(中文名优先)
- 同一作品只创建一个文件,通过 frontmatter 字段记录状态变化
a.md、1.md):、/、\、*、? 等特殊字符src/content/posts/
在 src/content/posts/ 下创建 .md 或 .mdx 文件:
1---2title: 我的第一篇文章3published: 2026-04-184description: 这是文章描述5tags:6 - 标签17 - 标签28category: 分类名称9pinned: false10image: https://example.com/cover.jpg11---12
13文章正文内容...| 字段 | 类型 | 必填 | 默认值 | 说明 |
|---|---|---|---|---|
title | string | 是 | - | 文章标题,显示在页面标题和列表中 |
published | string/Date | 是 | - | 发布日期,格式 YYYY-MM-DD |
description | string | 否 | - | 文章描述,显示在列表页的卡片摘要中 |
tags | string[] | 否 | [] | 标签数组,用于文章分类和筛选 |
category | string | 否 | - | 分类名称,用于按分类展示文章 |
pinned | boolean | 否 | false | 是否置顶,置顶文章会显示在列表最前面 |
image | string | 否 | - | 封面图 URL,建议尺寸 1200x630 |
draft | boolean | 否 | false | 是否为草稿,草稿不会显示在列表中 |
comment | boolean | 否 | true | 是否开启评论,设为 false 则禁用评论 |
updated | string/Date | 否 | - | 最后更新日期,显示在文章底部 |
支持在 posts/ 下创建子目录组织文章:
1posts/2├── 技术/3│ └── docker.md4├── 生活/5│ └── daily.md6└── 示例.md子目录名称会自动作为分类使用,如上面的文章会属于”技术”或”生活”分类。
src/content/moments/
在 src/content/moments/ 下创建 .md 文件:
1---2author: 团子和蛋糕3avatar: https://example.com/avatar.jpg4published: 2026-04-185images: photo1.jpg, photo2.jpg, photo3.jpg6tags:7 - 日常8location: 上海9device: iPhone 15 Pro10---11
12动态正文内容...注意:
images字段使用逗号分隔的字符串格式,不使用数组。
| 字段 | 类型 | 必填 | 默认值 | 说明 |
|---|---|---|---|---|
author | string | 否 | siteConfig.author | 作者名称,显示在动态卡片上 |
avatar | string | 否 | siteConfig.avatar | 头像 URL |
published | string/Date | 是 | - | 发布时间,用于排序和显示 |
images | string | 否 | - | 图片路径,逗号分隔(注意不是数组),图片放在 public/images/moments/ 目录 |
tags | string[] | 否 | [] | 标签数组 |
location | string | 否 | - | 地点名称 |
device | string | 否 | - | 设备信息,如 “iPhone 15 Pro” |
public/images/moments/ 目录images: photo1.jpg, photo2.jpg生活记录是本博客的核心功能,包括健康追踪、想法管理、打卡、规划等多个模块。
健康记录包含三个子模块:运动、睡眠、饮食,都在 src/content/life/health/ 下。
路径: src/content/life/health/workout/
1---2date: 2026-04-183workoutType: 户外跑步4runKm: 5.25workoutMinutes: 306stepsToday: 80007heartRateAvg: 1358caloriesBurned: 3209---10
11今天跑步感觉不错,跑完了感觉很轻松。| 字段 | 类型 | 必填 | 默认值 | 说明 |
|---|---|---|---|---|
date | string/Date | 是 | - | 运动日期 |
workoutType | string | 否 | 锻炼 | 运动类型,如 “户外跑步”、“健身房力量训练”、“游泳” 等 |
runKm | number | 否 | 0 | 跑步距离(公里),用于统计总跑量和月度跑量 |
workoutMinutes | number | 否 | 0 | 运动时长(分钟) |
stepsToday | number | 否 | 0 | 当日步数 |
heartRateAvg | number | 否 | - | 平均心率 |
caloriesBurned | number | 否 | - | 消耗卡路里 |
路径: src/content/life/health/sleep/
1---2date: 2026-04-173sleepHours: 7.54sleepQuality: 45wakeUpCount: 16notes: 晚上喝水太多,中间起来上厕所了一次7---8
9记录一下今天的睡眠情况。| 字段 | 类型 | 必填 | 默认值 | 说明 |
|---|---|---|---|---|
date | string/Date | 是 | - | 睡眠日期(指当晚的睡眠) |
sleepHours | number | 是 | - | 睡眠时长(小时),用于计算平均睡眠时间 |
sleepQuality | number | 否 | 3 | 睡眠质量评分,1-5 分,5 分最好 |
wakeUpCount | number | 否 | 0 | 夜间醒来次数 |
notes | string | 否 | - | 备注说明 |
路径: src/content/life/health/food/
1---2date: 2026-04-183allowedFoods:4 - 西兰花5 - 鸡胸肉6 - 糙米饭7avoidFoods:8 - 奶茶9 - 炸鸡10breakfast: 燕麦粥 + 鸡蛋11lunch: 沙拉 + 全麦面包12dinner: 清蒸鱼 + 蔬菜13snacks: 坚果一小把14notes: 今天控制得不错,只吃了坚果作为零食15---16
17记录今天的饮食情况。| 字段 | 类型 | 必填 | 默认值 | 说明 |
|---|---|---|---|---|
date | string/Date | 是 | - | 记录日期 |
allowedFoods | string[] | 否 | [] | 推荐/计划吃的食物列表 |
avoidFoods | string[] | 否 | [] | 需要避免的食物列表 |
breakfast | string | 否 | - | 早餐内容 |
lunch | string | 否 | - | 午餐内容 |
dinner | string | 否 | - | 晚餐内容 |
snacks | string | 否 | - | 零食记录 |
notes | string | 否 | - | 备注说明 |
想法/点子管理,用于记录突然的想法、计划、目标等。
路径: src/content/life/ideas/
1---2title: 晨跑计划3content: 每天早上6点起床跑步30分钟4createdAt: 2026-04-015completedAt: 2026-04-106label: 健康7priority: high8---9
10详细描述我的晨跑计划,包括目标、具体安排等。| 字段 | 类型 | 必填 | 默认值 | 说明 |
|---|---|---|---|---|
title | string | 否 | - | 想法标题,简短概括 |
content | string | 是 | - | 想法内容,详细描述 |
createdAt | string/Date | 是 | - | 创建时间,用于排序 |
completedAt | string/Date | 否 | - | 完成时间。有值表示已完成,无值表示待完成 |
label | string | 否 | - | 标签/分类,如 “健康”、“工作”、“学习” |
priority | string | 否 | normal | 优先级:high、normal、low |
系统通过 completedAt 字段判断想法是否完成:
completedAt 有值(日期)completedAt 为空不需要设置 status 字段。
用于追踪习惯养成和日常打卡。
路径: src/content/life/checkin/
1---2name: 早睡早起3description: 23点前入睡,7点前起床4checkins:5 - 2026-04-016 - 2026-04-027 - 2026-04-038 - 2026-04-049---10
11养成健康的作息习惯,保持充沛精力。| 字段 | 类型 | 必填 | 默认值 | 说明 |
|---|---|---|---|---|
name | string | 是 | - | 打卡项目名称,如 “每日阅读”、“早起”、“喝水” |
description | string | 否 | - | 项目描述,说明打卡规则 |
checkins | string[] | 否 | [] | 打卡日期数组,格式 YYYY-MM-DD |
$schema | string | 否 | - | JSON Schema 标识 |
checkins 数组中添加日期字符串即可YYYY-MM-DD 格式当完成一次打卡后,在 checkins 数组中添加新日期:
1checkins:2 - 2026-04-013 - 2026-04-024 - 2026-04-035 # 添加新打卡6 - 2026-04-21用于规划和安排日常作息、习惯养成计划等。
路径: src/content/life/routines/
1---2name: 晨跑计划3time: 早晨 6:30-7:304icon: 🏃5color: "#22c55e"6description: 每天早上进行30分钟有氧运动7updatedAt: 2026-04-188---9
10## 目标11
12保持健康的身体状态,提高一天的精力。13
14## 具体安排15
161. 热身 5 分钟172. 慢跑 20 分钟183. 拉伸 5 分钟| 字段 | 类型 | 必填 | 默认值 | 说明 |
|---|---|---|---|---|
name | string | 是 | - | 规划名称 |
time | string | 否 | - | 时间安排描述,如 “早晨 6:30-7:30”、“晚上 10:00” |
icon | string | 否 | 📋 | 图标 emoji |
color | string | 否 | - | 主题色,十六进制格式 |
description | string | 否 | - | 简短描述 |
updatedAt | string/Date | 否 | - | 最后更新时间 |
正文内容支持 Markdown 格式,可以详细描述计划内容、目标、具体安排等。
记录旅行足迹和到访过的地点。
路径: src/content/life/places/
1---2province: 四川省3city: 成都4district: 武侯区5date: 2026-04-106visitCount: 37experience: 美食之城,非常喜欢这里的火锅和串串8highlights:9 - 春熙路10 - 太古里11 - 武侯祠12photos:13 - Chengdu_1.jpg14 - Chengdu_2.jpg15---16
17成都之旅记录,这次是第三次来成都了。| 字段 | 类型 | 必填 | 默认值 | 说明 |
|---|---|---|---|---|
province | string | 是 | - | 省份/直辖市/自治区 |
city | string | 是 | - | 城市名称 |
district | string | 否 | - | 区县/城区(可选) |
date | string/Date | 是 | - | 到访日期 |
visitCount | number | 否 | 1 | 到访次数,第几次来这个城市 |
experience | string | 否 | - | 整体体验/感受 |
highlights | string[] | 否 | [] | 亮点/推荐地点列表 |
photos | string[] | 否 | [] | 照片文件名,存放在 public/images/places/ |
rating | number | 否 | - | 评分 1-5 |
正文内容支持 Markdown,可以详细记录旅行见闻。
笔记本功能用于创建个人日记本,每个笔记本是一个文件夹。
路径: src/content/life/notebooks/
src/content/life/notebooks/ 下创建文件夹_index.md 或 _index.json 文件定义笔记本.md 文件作为日记条目1notebooks/2└── 日记/3 ├── _index.md # 笔记本配置4 ├── 2026-04-18.md # 日记条目5 ├── 2026-04-17.md6 └── 2026-04-16.md1---2name: 日记3cover: diary-cover.jpg4summary: 记录每天的生活点滴5color: "#ec4899"6icon: 📖7---8
9这里是笔记本的详细描述...| 字段 | 类型 | 必填 | 默认值 | 说明 |
|---|---|---|---|---|
name | string | 是 | - | 笔记本名称 |
cover | string | 否 | - | 封面图片 |
summary | string | 否 | - | 笔记本简介 |
color | string | 否 | - | 主题色 |
icon | string | 否 | 📔 | 图标 emoji |
1---2date: 2026-04-183name: 今天很开心4mood: happy5weather: sunny6tags:7 - 日常8---9
10今天发生了一些有趣的事情...11
12## 今天做了什么13
14- 上午去了图书馆15- 下午和朋友一起喝咖啡16- 晚上看了部电影17
18## 感想19
20今天过得很充实!| 字段 | 类型 | 必填 | 默认值 | 说明 |
|---|---|---|---|---|
date | string/Date | 是 | - | 日记日期 |
name | string | 否 | 文件名 | 日记标题/名称,用于在列表中显示 |
mood | string | 否 | - | 心情/情绪 |
weather | string | 否 | - | 天气 |
tags | string[] | 否 | [] | 标签 |
正文使用 Markdown 格式书写日记内容。
用于记录动漫、书籍、音乐、游戏、影视的观看/阅读/游玩进度。
路径: src/content/bangumi/
支持 .md, .yaml, .yml 格式:
1---2title: 攻壳机动队3name_cn: 攻壳机动队 Stand Alone Complex4category: anime5status: 26image: https://example.com/cover.jpg7link: https://bgm.tv/subject/18score: 109tags:10 - 科幻11 - 神作12 - 赛博朋克13published: 2026-01-0114finishDate: 2026-01-1515episodes: 2616comments: 最喜欢的动画没有之一17---18
19关于这部作品的详细评论和感想...| 字段 | 类型 | 必填 | 默认值 | 说明 |
|---|---|---|---|---|
title | string | 是 | - | 作品标题(英文/原名) |
name_cn | string | 否 | - | 中文名称 |
category | string | 否 | anime | 作品类型 |
status | number | 否 | 2 | 状态代码(1-5) |
image | string | 是 | - | 封面图 URL |
link | string | 是 | - | Bangumi 链接 |
score | number | 否 | - | 个人评分 1-10 |
tags | string[] | 否 | [] | 标签 |
published | string/Date | 否 | - | 作品发布年份/日期 |
comment | string | 否 | - | 简短评论 |
| 值 | 状态 | 说明 |
|---|---|---|
| 1 | 想看 | 想要观看/阅读/游玩 |
| 2 | 看过 | 已完成观看/阅读/游玩 |
| 3 | 在看 | 正在观看/阅读/游玩 |
| 4 | 搁置 | 暂时搁置 |
| 5 | 抛弃 | 放弃 |
| 值 | 类型 | 说明 |
|---|---|---|
| anime | 动画 | 番剧、剧场版、OVA |
| book | 书籍 | 小说、漫画、杂志 |
| music | 音乐 | 专辑、单曲 |
| game | 游戏 | 电子游戏、桌游 |
| real | 影视 | 电影、电视剧、纪录片 |
anime 动画:
| 字段 | 类型 | 说明 |
|---|---|---|
episodes | number | 总集数 |
duration | string | 单集时长,如 “24min” |
book 书籍:
| 字段 | 类型 | 说明 |
|---|---|---|
author | string | 作者 |
pages | number | 总页数 |
game 游戏:
| 字段 | 类型 | 说明 |
|---|---|---|
platform | string | 平台,如 “PC”, “Switch”, “PS5” |
playTime | number | 游玩时长(小时) |
侧边栏组件在 src/config/sidebarConfig.ts 中配置。
| 组件 | 说明 |
|---|---|
profile | 用户资料卡片,显示头像、名称、简介 |
announcement | 公告通知 |
music | 音乐播放器(需要音乐服务配置) |
categories | 文章分类列表 |
tags | 标签云 |
lifeStats | 生活统计数据面板 |
relationship | 恋爱/纪念日计时器 |
quoteOfTheDay | 今日一言/随机语录 |
recentItems | 最近更新的文章列表 |
stats | 站点统计(文章数、字数等) |
calendar | 更新日历 |
sidebarToc | 文章目录(仅文章页显示) |
siteHeatmap | 更新热力图 |
advertisement | 广告位(可放置自定义内容) |
1{2 type: "组件名称",3 enable: true, // 是否启用4 position: "sticky", // 布局位置:sticky(粘性)、normal(普通流)5 showOnPostPage: true, // 是否在文章页显示6 showOnNonPostPage: true, // 是否在非文章页显示7 // 其他组件特定配置...8}1{2 type: "profile",3 enable: true,4 position: "sticky",5 showOnPostPage: false,6 showOnNonPostPage: true,7}1{2 type: "lifeStats",3 enable: true,4 position: "normal",5 showOnPostPage: false,6 showOnNonPostPage: true,7}1{2 type: "relationship",3 enable: true,4 position: "sticky",5 showOnPostPage: false,6 showOnNonPostPage: true,7 startDate: "2020-01-01", // 纪念日日期8 label: "在一起", // 显示标签9}1{2 type: "quoteOfTheDay",3 enable: true,4 position: "normal",5 showOnPostPage: true,6 showOnNonPostPage: true,7 source: "hitokoto", // 语录来源:hitokoto(一言 API) 或 local(本地配置)8}1{2 type: "calendar",3 enable: true,4 position: "normal",5 showOnPostPage: false,6 showOnNonPostPage: true,7}博客使用 Waline 作为评论系统。
在 src/config/siteConfig.ts 中配置 Waline:
1comment: {2 waline: {3 serverURL: "https://your-server.vercel.app",4 lang: "zh-CN",5 }6}| 字段 | 类型 | 必填 | 说明 |
|---|---|---|---|
serverURL | string | 是 | Waline 服务地址 |
lang | string | 否 | 语言设置 |
评论功能在以下位置可用:
comment: false 关闭/moments/ 页面默认开启/guestbook/ 页面主要配置文件,位于 src/config/siteConfig.ts
| 配置项 | 类型 | 说明 |
|---|---|---|
title | string | 站点标题,显示在浏览器标签和首页 |
description | string | 站点描述,用于 SEO |
author | string | 作者名称 |
avatar | string | 默认头像 URL |
themeColor | object | 主题色配置 |
themeColor.hue | number | 色调 0-360 |
themeColor.saturation | number | 饱和度 0-100 |
navbar | array | 顶部导航栏配置 |
favicon | string | 网站图标路径 |
pages | object | 页面开关 |
pages.sponsor | boolean | 是否启用赞助页面 |
pages.guestbook | boolean | 是否启用留言板 |
pages.bangumi | boolean | 是否启用番组计划 |
postListLayout | string | 文章列表布局:grid、list、masonry |
pagination | object | 分页配置 |
mapConfig | object | 地图配置(高德地图 API) |
comment | object | 评论系统配置 |
导航栏配置文件,位于 src/config/navBarConfig.ts
1[2 { name: "首页", url: "/" },3 { name: "文章", url: "/posts/" },4 { name: "生活", url: "/life/" },5 {6 name: "工具",7 url: "/tools/",8 children: [ // 下拉菜单9 { name: "工具1", url: "/tools/tool1/" },10 { name: "工具2", url: "/tools/tool2/" },11 ]12 },13]在 siteConfig.ts 中修改 pages 配置:
1pages: {2 sponsor: false, // 禁用赞助页3 guestbook: false, // 禁用留言板4 bangumi: false, // 禁用番组页5}src/pages/ 下创建新的 .astro 文件navBarConfig.ts 中添加导航链接在 siteConfig.ts 中修改 themeColor.hue 值(0-360):
1themeColor: {2 hue: 200, // 蓝色调3 saturation: 70,4}src/content/ 下创建新的文件夹src/pages/ 下创建展示页面public/images/ 目录public/images/moments/public/images/places/public/images/notebooks/用于展示照片集,以精美的拍立得风格呈现。
路径: src/content/album/
1---2title: 2026年春天3subtitle: 记录春日里的美好时光4date: 2026-04-015location: 郑州6cover: https://example.com/cover.jpg7tags:8 - 春天9 - 户外10photos:11 - src: https://example.com/photo1.jpg12 alt: 樱花盛开13 caption: 校园里的樱花开了14 - src: https://example.com/photo2.jpg15 alt: 踏青16 caption: 和朋友一起去踏青17---18
192026年的春天,记录下每一个美好的瞬间。| 字段 | 类型 | 必填 | 默认值 | 说明 |
|---|---|---|---|---|
title | string | 是 | - | 相册标题 |
subtitle | string | 否 | - | 副标题/描述 |
date | string/Date | 是 | - | 相册日期 |
location | string | 否 | - | 拍摄地点 |
cover | string | 否 | - | 封面图 URL |
tags | string[] | 否 | [] | 标签数组 |
photos | array | 是 | [] | 照片数组 |
draft | boolean | 否 | false | 是否为草稿 |
photos 支持两种格式:
简单格式(仅 URL):
1photos:2 - https://example.com/photo1.jpg3 - https://example.com/photo2.jpg完整格式(带元数据):
1photos:2 - src: https://example.com/photo1.jpg3 alt: 照片描述4 caption: 照片说明/标题相册卡片会根据照片数量显示不同的堆叠效果:
用于展示常用网站链接和工具导航,支持分类管理和特色推荐。
路径: src/content/daohang/
1---2name: Cloudflare3url: https://dash.cloudflare.com/4icon: material-symbols:cloud5description: 全球CDN与网络安全服务6category: 常用网站7tags: [云服务, CDN]8color: "#f97316"9image: https://example.com/icon.png10featured: true11order: 1012---13
14网站CDN加速、DNS管理、安全防护一站式平台。| 字段 | 类型 | 必填 | 默认值 | 说明 |
|---|---|---|---|---|
name | string | 是 | - | 网站/工具名称 |
url | string | 是 | - | 网站链接 |
icon | string | 否 | - | Material Symbols 图标名 |
description | string | 否 | - | 简短描述 |
category | string | 否 | 未分类 | 分类名称 |
tags | string[] | 否 | [] | 标签数组 |
color | string | 否 | - | 主题色(十六进制) |
image | string | 否 | - | 自定义图标/图片 |
featured | boolean | 否 | false | 是否推荐展示 |
order | number | 否 | 0 | 排序权重,数字越小越靠前 |
可以使用 Material Symbols 图标库:
1icon: material-symbols:home-outline2icon: material-symbols:cloud3icon: material-symbols:code访问 Material Symbols 查看可用图标。
导航项建议使用数字前缀进行排序:
1daohang/2├── 01-tuanzi-email.md # 第1个分类下的第1个3├── 02-tuanzi-photo.md # 第2个4├── 10-cloudflare.md # 第10个分类5├── 20-emoji-dict.md6├── 30-image-converter.md7├── 40-fomalhaut.md8├── 41-haiyong.md9├── 42-moewah.md10├── 50-qwerty-learner.md11├── 60-firefly-docs.md12├── 70-maptiler.md留言板功能,用户可以在留言板上发送弹幕风格的留言。
路径: src/content/danmu/
1---2nickname: 小明3avatar: https://example.com/avatar.jpg4time: 2026-04-185---6
7保持热爱,奔赴山海| 字段 | 类型 | 必填 | 默认值 | 说明 |
|---|---|---|---|---|
nickname | string | 是 | - | 留言者昵称 |
avatar | string | 否 | 默认头像 | 头像 URL |
time | string | 否 | - | 留言时间 |
正文内容为弹幕显示的文字。
特殊内容页面,包括关于、关于我、友链、项目推荐、留言板等。
路径: src/content/spec/
1---2title: 关于我3description: 个人介绍页面4---5
6# 关于我 / About Me7
8你好!我是 **团子和蛋糕**,一个在数字世界中默默无闻的一片叶子。9
10## 联系方式11
12- GitHub: [链接](https://github.com/xxx)13- Email: [邮箱](mailto:example@example.com)1---2title: 友情链接3description: 与优秀的朋友们一起成长4---5
6## 友链信息7
8站点名称: 团子和蛋糕9站点链接: https://blog.example.com10头像链接: https://example.com/avatar.jpg11
12## 申请方式13
14请将网站信息发送邮件至:xxx@example.com1---2title: 常用网站3description: 精选优质开源项目和工具4---5
6## 推荐说明7
8这里收集了我日常使用的优质项目和工具。1---2title: 留言板3description: 在这里留下你的足迹4---5
6- 请保持友善和尊重7- 欢迎分享你的想法博客支持多种高级功能,可以在文章中灵活使用:
使用 code shortcode 指定代码块语言和标题:
1{% raw %}{% code "javascript" %}2const greeting = "Hello World";3{% /code %}{% endraw %}支持多种主题的提醒块:
1> [!NOTE]2> 这是一条普通笔记3
4> [!TIP]5> 这是一条提示6
7> [!WARNING]8> 这是一条警告9
10> [!CAUTION]11> 这是一条危险警告主题类型:github、obsidian、vitepress(在 siteConfig.ts 中配置 rehypeCallouts.theme)
嵌入 GitHub 仓库信息:
1{% raw %}{% github repo="CuteLeaf/Firefly" %}{% endraw %}支持嵌入多种内容类型:
支持 LaTeX 数学公式:
行内公式:$E = mc^2$
块级公式:
1$$2\int_{0}^{\infty} e^{-x^2} dx = \frac{\sqrt{\pi}}{2}3$$图片支持点击放大查看,使用 Fancybox 效果。
1## 普通标题2### 带图标标题在 frontmatter 中设置 pinned: true 可以置顶文章,置顶文章会显示在列表最前面。
可以通过标签来组织系列文章:
1tags:2 - Java基础3 - 系列:集合在 frontmatter 中手动指定上下篇文章:
1prevTitle: 上一篇文章标题2prevSlug: 上一篇文章的slug3nextTitle: 下一篇文章标题4nextSlug: 下一篇文章的slug1licenseName: CC BY-NC-SA 4.02licenseUrl: https://creativecommons.org/licenses/by-nc-sa/4.0/1export const licenseConfig = {2 enable: true,3 default: {4 name: "CC BY-NC-SA 4.0",5 url: "https://creativecommons.org/licenses/by-nc-sa/4.0/",6 },7};1export const announcementConfig = {2 enable: true,3 // 可以是字符串或字符串数组4 content: "欢迎来到我的博客!",5};1export const backgroundWallpaper = {2 enable: true,3 url: "https://example.com/bg.jpg",4};1export const pioConfig = {2 enable: false,3 model: "pxl化模型",4 apiVersion: 34,5 hidden: false,6};1export const featureConfig = {2 live2d: {3 enable: false,4 model: {5 // Live2D 模型配置6 },7 },8};1export const musicConfig = {2 enable: false,3 server: "tencent", // netease, tencent, xiami, kugou4 id: "歌曲ID",5 type: "song", // song, playlist, album6};1export const profileConfig = {2 enable: true,3 avatar: "https://example.com/avatar.jpg",4 name: "团子和蛋糕",5 bio: "在数字世界中默默无闻的一片叶子",6 socials: [7 { name: "GitHub", url: "https://github.com/xxx" },8 { name: "Email", url: "mailto:xxx@example.com" },9 ],10};1export const sponsorConfig = {2 enable: true,3 title: "赞助作者",4 description: "如果觉得博客对你有帮助,可以请作者喝杯咖啡~",5 methods: [6 {7 name: "微信支付",8 image: "/assets/images/sponsors/wechat.png",9 },10 {11 name: "支付宝",12 image: "/assets/images/sponsors/alipay.png",13 },14 {15 name: "爱发电",16 image: "/assets/images/sponsors/afdian.png",17 },18 ],19};1export const relationshipConfig = {2 enable: true,3 startDate: "2020-01-01", // 纪念日日期4 label: "在一起", // 显示标签5 updateInterval: 3600000, // 更新间隔(毫秒)6};| 配置项 | 说明 |
|---|---|
title | 站点标题 |
subtitle | 站点副标题 |
site_url | 站点 URL |
description | 站点描述(用于 SEO) |
keywords | 站点关键词 |
author | 作者名称 |
favicon | 网站图标 |
1analytics: {2 // Google Analytics ID3 googleAnalyticsId: "G-XXXXXXXXXX",4 // Microsoft Clarity ID5 microsoftClarityId: "XXXXXXXX",6},1// 是否生成 OpenGraph 图片2generateOgImages: false,博客自动生成 RSS 订阅源,访问 /rss.xml 即可订阅。
1themeColor: {2 hue: 208, // 色调 0-3603 saturation: 70, // 饱和度 0-1004 fixed: false, // 是否隐藏主题选择器5 defaultMode: "system", // light, dark, system6},| hue 值 | 颜色 |
|---|---|
| 0 | 红色 |
| 30 | 橙色 |
| 45 | 黄色 |
| 120 | 绿色 |
| 180 | 青色 |
| 200 | 天蓝色 |
| 220 | 蓝色 |
| 250 | 蓝紫色 |
| 280 | 紫色 |
| 330 | 粉色 |
| 345 | 玫红色 |
1pageWidth: 100, // 单位:rem,数值越大内容区域越宽1card: {2 border: true, // 是否显示卡片边框和阴影3},1# 开发调试2npm run dev3
4# 生产构建5npm run build6
7# 预览构建结果8npm run preview9
10# 部署到 GitHub Pages11npm run deploy可以在 .env 文件中配置:
1# 公开环境变量2PUBLIC_SITE_URL=https://your-site.com3
4# 私有环境变量5PRIVATE_VARIABLE=value1imageOptimization: {2 formats: "webp", // avif, webp, both3 quality: 85, // 1-1004},在 fontConfig.ts 中配置中文字体和等宽字体:
1fontConfig: {2 sans: ["Inter", "Noto Sans SC"],3 mono: ["JetBrains Mono", "Fira Code"],4},将对应配置中的 enable 设为 false。
src/pages/ 下创建新的 .astro 文件navBarConfig.ts 中添加导航在 footerConfig.ts 中配置:
1footerConfig: {2 icp: {3 enable: true,4 code: "备案号",5 url: "https://beian.miit.gov.cn/",6 },7},| 功能 | 路径 | 说明 |
|---|---|---|
| 首页 | / | 博客首页 |
| 文章列表 | /posts/ | 全部文章 |
| 文章详情 | /posts/[slug]/ | 单篇文章 |
| 归档 | /archive/ | 按时间归档 |
| 分类 | /categories/ | 按分类查看 |
| 标签 | /tags/ | 按标签查看 |
| 搜索 | /search/ | 文章搜索 |
| 生活 | /life/ | 生活记录首页 |
| 健康 | /life/health/ | 健康数据 |
| 打卡 | /life/checkin/ | 习惯打卡 |
| 想法 | /life/ideas/ | 奇思妙想 |
| 日记 | /life/notebooks/ | 笔记本 |
| 规划 | /life/routines/ | 日常规划 |
| 地点 | /life/places/ | 去过的地点 |
| 相册 | /album/ | 照片集 |
| 动态 | /moments/ | 日常动态 |
| 番组 | /bangumi/ | 番组计划 |
| 番组详情 | /bangumi/[slug]/ | 番组详情 |
| 友链 | /friends/ | 友情链接 |
| 留言板 | /guestbook/ | 留言板 |
| 关于 | /about/ | 关于页面 |
| 赞助 | /sponsor/ | 赞助页面 |
| RSS | /rss.xml | RSS 订阅源 |
| 地图 | /map/ | 足迹地图 |
博客使用 Astro Content Collections,所有内容定义在 src/content/config.ts 中:
| Collection | 路径 | 主要用途 |
|---|---|---|
posts | src/content/posts/ | 博客文章 |
moments | src/content/moments/ | 日常动态 |
album | src/content/album/ | 相册 |
daohang | src/content/daohang/ | 网站导航 |
bangumi | src/content/bangumi/ | 番组计划 |
life | src/content/life/*/ | 生活记录 |
danmu | src/content/danmu/ | 弹幕留言 |
spec | src/content/spec/ | 特殊页面 |
notebooks | src/content/life/notebooks/ | 笔记本 |
最后更新: 2026-04-21
如果你喜欢,那么欢迎来到我的世界!
了解更多暂未播放



"所有的相遇都是久别重逢。"—— 未知


