Skip to content

Commit 374e0af

Browse files
committed
chore: initial customization for personal usage
1 parent 92ccf83 commit 374e0af

19 files changed

+249
-2393
lines changed

public/assets/images/avatar.webp

1.08 MB
Loading

src/config/musicConfig.ts

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -6,7 +6,7 @@ export const musicPlayerConfig: MusicPlayerConfig = {
66
enable: true, // 启用音乐播放器功能
77

88
// 播放器模式配置
9-
mode: "local", // 播放器模式:"local" 本地音乐,"meting" 在线音乐
9+
mode: "meting", // 播放器模式:"local" 本地音乐,"meting" 在线音乐
1010

1111
// Meting API 配置
1212
meting: {
@@ -16,7 +16,7 @@ export const musicPlayerConfig: MusicPlayerConfig = {
1616

1717
// 歌单配置
1818
playlist: {
19-
id: "8814137515", // 歌单ID
19+
id: "902470195", // 歌单ID
2020
server: "netease", // 音乐平台:netease=网易云音乐, tencent=QQ音乐, kugou=酷狗音乐, xiami=虾米音乐, baidu=百度音乐
2121
type: "playlist", // 类型:playlist=歌单, album=专辑, song=单曲
2222
},

src/config/navBarConfig.ts

Lines changed: 3 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -22,20 +22,14 @@ const getDynamicNavBarConfig = (): NavBarConfig => {
2222
children: [
2323
{
2424
name: "GitHub",
25-
url: "https://github.com/CuteLeaf/Firefly",
25+
url: "https://github.com/alvinluo-tech",
2626
external: true,
2727
icon: "fa6-brands:github",
28-
},
29-
{
30-
name: "Bilibili",
31-
url: "https://space.bilibili.com/38932988",
32-
external: true,
33-
icon: "fa6-brands:bilibili",
34-
},
28+
}
3529
],
3630
});
3731

38-
links.push(LinkPreset.Friends);
32+
// links.push(LinkPreset.Friends);
3933

4034
links.push({
4135
name: "关于",

src/config/pioConfig.ts

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -32,7 +32,8 @@ export const spineModelConfig: SpineModelConfig = {
3232
"emoji_6",
3333
], // 点击时随机播放的动画列表
3434
clickMessages: [
35-
"你好呀!我是流萤~",
35+
"你好呀!我是Alvin~",
36+
"hello, i'm Alvin!",
3637
"今天也要加油哦!✨",
3738
"想要一起去看星空吗?🌟",
3839
"记得要好好休息呢~",

src/config/profileConfig.ts

Lines changed: 13 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -2,18 +2,23 @@ import type { ProfileConfig } from "../types/config";
22

33
export const profileConfig: ProfileConfig = {
44
avatar: "/assets/images/avatar.webp",
5-
name: "Firefly",
6-
bio: "Hello, I'm Firefly.",
5+
name: "Alvin Luo",
6+
bio: "Hello, I'm Alvin.",
77
links: [
8-
{
9-
name: "Bilibli",
10-
icon: "fa6-brands:bilibili",
11-
url: "https://space.bilibili.com/38932988",
12-
},
138
{
149
name: "GitHub",
1510
icon: "fa6-brands:github",
16-
url: "https://github.com/CuteLeaf",
11+
url: "https://github.com/alvinluo-tech",
12+
},
13+
{
14+
name: "Email",
15+
icon: "fa6-solid:envelope",
16+
17+
},
18+
{
19+
name: "LinkedIn",
20+
icon: "fa6-brands:linkedin",
21+
url: "https://www.linkedin.com/in/yaoshengluo/",
1722
},
1823
],
1924
};

src/config/siteConfig.ts

Lines changed: 14 additions & 12 deletions
Original file line numberDiff line numberDiff line change
@@ -6,10 +6,10 @@ import { fontConfig } from "./fontConfig";
66
const SITE_LANG = "zh_CN";
77

88
export const siteConfig: SiteConfig = {
9-
title: "Firefly",
9+
title: "Alvin's blog",
1010
subtitle: "Demo site",
1111
description:
12-
"Firefly 是一款基于 Astro 框架开发的清新美观且现代化个人博客主题,专为技术爱好者和内容创作者设计。该主题融合了现代 Web 技术栈,提供了丰富的功能模块和高度可定制的界面,让您能够轻松打造出专业且美观的个人博客网站。",
12+
"Alvin's blog 是一款基于 Astro 框架开发的清新美观且现代化个人博客,专为技术爱好者和内容创作者设计。",
1313
keywords: [
1414
"Firefly",
1515
"Fuwari",
@@ -47,7 +47,7 @@ export const siteConfig: SiteConfig = {
4747
value: "/assets/images/LiuYingPure3.svg",
4848
alt: "🍀",
4949
},
50-
navbarTitle: "Firefly", // 导航栏标题,可以设置为与 title 不同的值,如果不设置则使用 title
50+
navbarTitle: "Alvin's blog", // 导航栏标题,可以设置为与 title 不同的值,如果不设置则使用 title
5151

5252

5353
// 追番配置
@@ -63,7 +63,7 @@ export const siteConfig: SiteConfig = {
6363

6464
// 页面开关配置 - 控制特定页面的访问权限,设为false会返回404
6565
pages: {
66-
anime: true, // 追番页面开关,
66+
anime: false, // 追番页面开关,
6767
},
6868

6969
// 文章列表布局配置
@@ -105,15 +105,17 @@ export const siteConfig: SiteConfig = {
105105
// 主页显示自定义文本(全局开关)
106106
enable: true,
107107
// 主页横幅主标题
108-
title: "Lovely firefly!",
108+
title: "Writing Code, Living Life!",
109109
// 主页横幅副标题
110110
subtitle: [
111-
"In Reddened Chrysalis, I Once Rest",
112-
"From Shattered Sky, I Free Fall",
113-
"Amidst Silenced Stars, I Deep Sleep",
114-
"Upon Lighted Fyrefly, I Soon Gaze",
115-
"From Undreamt Night, I Thence Shine",
116-
"In Finalized Morrow, I Full Bloom",
111+
"Sometimes I debug, sometimes I daydream.",
112+
"Coffee fuels my code — and my late-night thoughts.",
113+
"Freedom is typing without deadlines.",
114+
"Learning to build, and to breathe.",
115+
"Every bug tells a story, every fix feels like hope.",
116+
"Between commits and sunsets, I find balance.",
117+
"Code by day, stargaze by night.",
118+
"I’m not chasing perfection — just progress.",
117119
],
118120
typewriter: {
119121
enable: true, // 启用副标题打字机效果
@@ -124,7 +126,7 @@ export const siteConfig: SiteConfig = {
124126
},
125127
credit: {
126128
enable: {
127-
desktop: true, // 桌面端显示横幅图片来源文本
129+
desktop: false, // 桌面端显示横幅图片来源文本
128130
mobile: false, // 移动端显示横幅图片来源文本
129131
},
130132
text: {
Lines changed: 155 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,155 @@
1+
---
2+
title: Assignment Inspiration
3+
published: 2025-10-29
4+
updated: 2025-10-30
5+
pinned: true
6+
img: ''
7+
description: "This document summarizes a classroom assignment design, outlining a Titanic-themed time-travel escape with four data-driven challenges that teach analysis, reasoning, and problem-solving."
8+
tags: ["course assignment", "markdown","assignment indication"]
9+
category: course assignment
10+
draft: false
11+
---
12+
13+
14+
**Chinese version:**
15+
16+
### 故事背景
17+
18+
**主题:** 泰坦 complément号上的时空裂痕
19+
**你的角色:** 你们是一队时间旅行者。在一次时空跳跃中,时间机器发生故障,将你们紧急弹射到了 1912 年 4 月 14 日的泰坦尼克号上。
20+
**你的目标:** 你们必须在船沉没前,在船上找到 4 个丢失的“时空坐标碎片”。集齐这 4 个坐标才能重新定位你们的时间机器并安全离开。
21+
**密室文档:** 你们生成的 HTML 文档就是给“游戏运营者 (GM)”的指南,GM 将引导玩家(时间旅行者)完成这一系列挑战。
22+
23+
---
24+
25+
### 挑战 1 (成员 A):“事务长办公室” (找出异常数据)
26+
27+
* **故事:** 你们刚登船就被当作偷渡者抓住了。你们被锁在事务长的办公室里,必须证明自己的智慧才能逃脱。在办公桌上有一叠乘客登记卡,你们必须找出其中那张“伪造的”卡片。
28+
* [cite_start]**挑战:** 向玩家展示 5-6 张“乘客卡片”(即 5-6 个数据行)。其中 5 张是从数据集中随机抽取的*真实*乘客数据,而有 1 张是你们的程序*生成*的“伪造数据” [cite: 51, 52]
29+
* **如何生成 (第 5 阶段):** 这个伪造数据在统计上是不可能的。例如:一个 3 等舱乘客 (`Pclass`=3) 却支付了 500 英镑的票价 (`Fare`)(远高于 1 等舱的票价)。
30+
* [cite_start]**玩家任务:** 必须找出哪张乘客卡是“伪造的” [cite: 51]
31+
* [cite_start]**线索 (Hints):** 提供一些真实的数据可视化图表作为“船务手册”,例如“各舱位平均票价分布”的箱形图 [cite: 53]
32+
* **获得:** 藏在伪造卡片下的 **时空坐标碎片 1**
33+
34+
---
35+
36+
### 挑战 2 (成员 B):“马可尼无线电室” (填字/词汇游戏)
37+
38+
* **故事:** 第一个碎片指引你们前往马可尼(无线电)室。门被一个键盘锁锁住了。墙上贴着一张无线电操作员(为打发时间)没做完的填字游戏,你们意识到,这个游戏的答案就是开门密码。
39+
* [cite_start]**挑战:** 一个填字游戏 [cite: 45]
40+
* [cite_start]**如何生成 (第 5 阶段):** 答案全部来自数据集的“字段名”(Column Names) 或与泰坦尼克号相关的“概念” [cite: 45]
41+
* **示例线索 (Answers):**
42+
* "乘客的父母或子女数量" (答案: `PARCH`)
43+
* "乘客支付的票价" (答案: `FARE`)
44+
* "登船的港口 (C、Q 或 S)" (答案: `EMBARKED`)
45+
* "乘客的兄弟姐妹或配偶数量" (答案: `SIBSP`)
46+
* **玩家任务:** 完成填字游戏,获得密码。
47+
* [cite_start]**线索 (Hints):** 可以提供一两个答案的字母作为提示 [cite: 46]
48+
* **获得:** 你们打开了门,在电报机上找到了 **时空坐标碎片 2**
49+
50+
---
51+
52+
### 挑战 3 (成员 C):“破译救生艇代码” (分类谜题)
53+
54+
* **故事:** 第二个碎片指引你们前往甲板。你们在一个救生艇站旁发现了一个上锁的补给箱。锁是一个 4 位数的键盘锁。附近一张军官的笔记上,写着 4 名特定乘客的资料。你们意识到,这个 4 位数密码一定是对他们命运的*预测*
55+
* **挑战:**
56+
1. [cite_start]程序生成一个可视化图表(例如,一张展示生还率的图表)[cite: 49]
57+
2. 程序接着展示 4 名乘客的资料(例如,“乘客 1:女性,1 等舱,30 岁”,“乘客 2:男性,3 等舱,25 岁”等)。
58+
3. 玩家必须使用图表来预测每位乘客是“生还”(代码=1)还是“未生还”(代码=0)。
59+
* **玩家任务:** 输入正确的 4 位二进制代码(例如 `1011`)来打开箱子。
60+
* **如何生成 (第 5 阶段):** 程序从数据集中随机选择 4 名乘客,并展示他们的特征。正确的“答案”就是他们(在数据集中)的实际 `Survived` 值(1 或 0)。
61+
* [cite_start]**线索 (Hints):** 如果玩家输错代码,可以揭示一个额外的、未在图表上显示的数据作为提示。“提示:乘客 2 支付的票价为 7 英镑” [cite: 49, 50]
62+
* **获得:** 箱子打开,里面是 **时空坐标碎片 3**
63+
64+
---
65+
66+
### 挑战 4 (成员 D):“平衡救生艇载重” (数据聚合/计算)
67+
68+
* **故事:** 警报大作,船体正在倾斜!你们奔向最后的集合点,那里只剩下一艘救生艇。一名工程师正对着一份乘客名单和一台计算器大喊:“不行,这艘船会翻!我必须知道一个精确的数字来配平重量!”
69+
* **他交给你们一张纸条:** “快!我必须知道这份名单上,所有*1 等舱* (`Pclass=1`) 中,年龄在 *30 岁以上* (`Age > 30`) 的*女性* (`Sex='female'`),她们所支付的*平均票价* (`Fare``MEAN`) 是多少?把这个数字输入配平系统!”
70+
* **挑战:** 这是一个**数据聚合任务**。玩家不能再依赖“直觉”,而必须使用“乘客名单”(数据集)进行精确计算。
71+
* **玩家任务:**
72+
1. 筛选 `Pclass` == 1
73+
2. 再筛选 `Sex` == 'female'
74+
3. 再筛选 `Age` > 30
75+
4. 计算所有符合上述条件的乘客的 `Fare` (票价) 的**平均值 (MEAN)**
76+
* **如何生成 (第 5 阶段):**
77+
* 你们的程序将*随机*组合一个聚合任务。例如:
78+
* 随机选择 2-3 个筛选条件(例如 `Pclass=2`, `Embarked='Q'`)。
79+
* 随机选择一个聚合函数(例如 `SUM` 总和, `MEAN` 平均值, `COUNT` 计数)。
80+
* 随机选择一个要计算的数字列(例如 `Fare` 票价, `Age` 年龄)。
81+
* (这个挑战是你们自己设计的,基于对数据集进行计算的原则)。
82+
* [cite_start]**线索 (Hints):** "提示:确保你用的是*平均值*,而不是总和!" [cite: 42]
83+
* **获得:** 你们算出了正确的数字(例如 "87.5")并输入系统。救生艇的配重调整完毕,成功释放。在救生艇的座位下,你们找到了 **时空坐标碎片 4**
84+
85+
86+
**English version:**
87+
88+
### Story Background
89+
90+
**Theme:** The Titanic Time-Rift
91+
**Your Role:** You are a group of time-travelers. During a routine jump, your temporal engines malfunctioned, causing an emergency ejection. You've landed on the RMS Titanic on April 14, 1912, just hours before it sinks.
92+
**Your Goal:** Your time machine is "phased," and to bring it back into your timeline, you must find 4 "Temporal Coordinate Fragments" that were scattered across the ship during your crash-landing. You must collect all 4 and get to the rendezvous point before the ship sinks.
93+
**The Document:** The HTML document you generate is the "Game Master's Guide," which provides all the instructions, challenges, hints, and answers for someone running the escape room.
94+
95+
---
96+
97+
### Challenge 1 (Member A): "The Purser's Office" (Spot the Rogue Data Item)
98+
99+
* **Story:** You are immediately apprehended by a ship's officer. Your names are not on the official passenger manifest. He suspects you are stowaways and locks you in the Purser's office. On the desk is a stack of passenger registration cards, one of which the Purser has marked as "suspicious."
100+
* **The Challenge:** The players are presented with 5-6 "Passenger Cards" (data rows). Five are *real* passengers randomly selected from the dataset; one is a "rogue item" generated by your program.
101+
* **How to Generate (Stage 5):** The rogue item must be a statistical outlier. For example: A `Pclass=3` (Third Class) passenger who paid a `Fare` of £500 (far higher than any First Class ticket).
102+
* **Player's Task:** Identify which passenger card is the "forgery."
103+
* **Hints:** The officer's "manual" is left on the desk, which includes visualizations of the *whole dataset*. For example, a box plot of `Fare` by `Pclass`.
104+
* **Reward:** Hidden beneath the forged card is the **Temporal Coordinate Fragment 1**.
105+
106+
---
107+
108+
### Challenge 2 (Member B): "The Marconi Room" (Crossword/Vocabulary Puzzle)
109+
110+
* **Story:** The first fragment contains a cryptic clue: "The next answer travels on the airwaves." This leads you to the Marconi radio room. The door is locked with a simple keypad. A note on the wall from the radio operator has a crossword puzzle he was working on. The solution to the crossword *is* the keypad code.
111+
* **The Challenge:** A crossword puzzle.
112+
* **How to Generate (Stage 5):** The answers are all terms taken from the dataset's "field names" (column names) or related concepts from a paper.
113+
* **Example Clues (Answers):**
114+
* "Passenger's parents or children aboard" (Answer: `PARCH`)
115+
* "Price paid for the ticket" (Answer: `FARE`)
116+
* "Port of embarkation (C, Q, or S)" (Answer: `EMBARKED`)
117+
* "Number of siblings or spouses aboard" (Answer: `SIBSP`)
118+
* **Player's Task:** Complete the puzzle to find the code.
119+
* **Hints:** One or two of the answers can be provided as a hint.
120+
* **Reward:** You unlock the door and find **Temporal Coordinate Fragment 2** attached to the transmitter.
121+
122+
---
123+
124+
### Challenge 3 (Member C): "Decoding the Lifeboat Code" (Classification Puzzle)
125+
126+
* **Story:** The second fragment points to the boat deck. You find a locked supply chest next to a lifeboat station. The lock is a 4-digit keypad. A nearby note from an officer contains the profiles of 4 specific passengers. You realize the 4-digit code must be a *prediction* of their fate.
127+
* **The Challenge:**
128+
1. The program generates a visualization (e.g., a chart showing survival rates).
129+
2. The program then presents the profiles of 4 specific passengers (e.g., "Passenger 1: Female, Pclass=1, Age=30", "Passenger 2: Male, Pclass=3, Age=25", etc.).
130+
3. The players must use the visualization to predict if each passenger `Survived` (code = 1) or `Did Not Survive` (code = 0).
131+
* **Player's Task:** Enter the correct 4-digit binary code (e.g., `1011`) to unlock the chest.
132+
* **How to Generate (Stage 5):** The program randomly selects 4 passengers from the dataset and presents their features. The "answer" is simply their *actual* `Survived` value (1 or 0) from the dataset.
133+
* **Hints:** If the players get the code wrong, you can reveal an additional, non-visualized piece of data as a hint. "Hint: Passenger 2 paid a fare of £7."
134+
* **Reward:** The chest opens, revealing **Temporal Coordinate Fragment 3**.
135+
136+
---
137+
138+
### Challenge 4 (Member D): "Balancing the Lifeboat" (Data Aggregation/Calculation)
139+
140+
* **Story:** Alarms are blaring as the ship tilts! You race to the final rendezvous point, where a single lifeboat remains. An engineer is frantically yelling at a manifest and a calculator: "It's no good, the boat will capsize! I need a precise number to balance the load!"
141+
* **He hands you a note:** "Quick! I must know the *MEAN average fare* (`Fare`) paid by all *female* (`Sex='female'`) passengers in *First Class* (`Pclass=1`) who were *over 30 years old* (`Age > 30`). Enter that number into the ballast system!"
142+
* **The Challenge:** This is a **data aggregation task**. Players can no longer use "intuition"; they must perform a precise calculation based on the dataset.
143+
* **Player's Task:**
144+
1. Filter for `Pclass` == 1
145+
2. Filter for `Sex` == 'female'
146+
3. Filter for `Age` > 30
147+
4. Calculate the **MEAN** of the `Fare` for all passengers who meet these criteria.
148+
* **How to Generate (Stage 5):**
149+
* Your program will *randomly* combine an aggregation task. For example:
150+
* Randomly select 2-3 filter conditions (e.g., `Pclass=2`, `Embarked='Q'`).
151+
* Randomly select an aggregation function (e.g., `SUM`, `MEAN`, `COUNT`).
152+
* Randomly select a numeric column to calculate (e.g., `Fare`, `Age`).
153+
* (This challenge is based on your own design, following the principle of calculating from the dataset).
154+
* **Hints:** "Hint: Make sure you are calculating the *average*, not the total!"
155+
* **Reward:** You calculate the correct number (e.g., "87.5") and enter it. The lifeboat's ballast is balanced, and it successfully launches. Tucked under a seat, you find the **Temporal Coordinate Fragment 4**.

0 commit comments

Comments
 (0)