This commit is contained in:
eric
2026-03-10 01:35:37 -05:00
parent ff51622bb6
commit be7a298604
69 changed files with 11016 additions and 57 deletions

215
config/course.ts Normal file
View File

@@ -0,0 +1,215 @@
/**
* 课程落地页配置 - 数字游民主题
*/
export const SITE_CONFIG = {
brand: "🌍 数字游民",
ctaUrl: "#",
footer: "🌍 数字游民 © 2024 | 自由工作,自在生活",
} as const;
export const HERO_CONFIG = {
title: "数字游民实战课",
subtitle: "从朝九晚五到边旅行边赚钱,开启你的自由人生",
stats: [
{ value: "21", label: "节实战课程" },
{ value: "170+", label: "分钟视频" },
{ value: "3", label: "位资深导师" },
],
} as const;
export const AUDIENCE_CONFIG = {
title: "这门课适合谁?",
subtitle: "向往自由,想用技能换时间与地点自由的人",
items: [
{
emoji: "💻",
title: "远程打工人",
desc: "厌倦通勤,想在家或任何地方高效工作",
},
{
emoji: "✈️",
title: "旅行爱好者",
desc: "想边旅行边赚钱,不再为假期发愁",
},
{
emoji: "📱",
title: "自由职业者",
desc: "想建立被动收入,减少接单焦虑",
},
{
emoji: "🌴",
title: "生活方式探索者",
desc: "想摆脱固定地点,体验不同城市与国家",
},
],
} as const;
export const BENEFITS_CONFIG = {
title: "学完你将获得",
subtitle: "5大核心能力助你成为真正的数字游民",
items: [
{
num: "1",
title: "远程工作技能体系",
desc: "从技能选择到接单渠道,系统掌握远程变现能力",
},
{
num: "2",
title: "被动收入搭建方法",
desc: "产品化你的技能,让收入不依赖时间",
},
{
num: "3",
title: "全球旅居实操指南",
desc: "签证、住宿、网络、保险,一站式搞定",
},
{
num: "4",
title: "一人公司运营心法",
desc: "从个人到团队,可持续的自由商业模式",
},
{
num: "5",
title: "数字游民社群与资源",
desc: "加入同频社群,获取持续支持与灵感",
},
],
} as const;
export const CURRICULUM_CONFIG = {
title: "21节实战课程",
subtitle: "从入门到进阶,完整成为数字游民",
modules: [
{
emoji: "🚀",
title: "基础篇 · 数字游民入门",
lessons: [
{ name: "01 什么是数字游民?你适合吗?", duration: "11:58" },
{ name: "02 从朝九晚五到边旅行边赚钱的路径", duration: "14:32" },
],
},
{
emoji: "💼",
title: "技能篇 · 远程变现能力",
lessons: [
{ name: "3.1 最适合远程的5大技能方向", duration: "06:25" },
{ name: "3.2 如何打造你的技能组合与作品集", duration: "07:34" },
],
},
{
emoji: "💰",
title: "收入篇 · 被动收入与副业",
lessons: [
{ name: "04 从接单到产品的思维转变", duration: "04:16" },
{ name: "05 打造你的第一个数字产品", duration: "06:18" },
{ name: "06 海外平台接单与变现", duration: "02:30" },
{ name: "07 被动收入组合:课程+会员+咨询", duration: "06:25" },
{ name: "08 如何定价才能既赚又自由", duration: "03:09" },
],
},
{
emoji: "🧠",
title: "心态篇 · 自由与自律",
lessons: [
{ name: "09 数字游民的时间管理心法", duration: "07:49" },
{ name: "09-1 独处与社交的平衡", duration: "01:24" },
{ name: "10 如何应对家人的不理解", duration: "04:07" },
],
},
{
emoji: "⚡",
title: "落地篇 · 旅居实操",
lessons: [
{ name: "11 签证与长期居留规划", duration: "04:12" },
{ name: "12 住宿选择短租、民宿、Co-living", duration: "05:19" },
{ name: "13 网络、保险与紧急预案", duration: "04:11" },
],
},
{
emoji: "🎯",
title: "实战篇 · 真实案例",
lessons: [
{ name: "14 巴厘岛数字游民社区探访", duration: "12:02" },
{ name: "15 曼谷/清迈生活成本与体验", duration: "09:39" },
{ name: "16 欧洲数字游民签证攻略", duration: "09:04" },
{ name: "17 一人公司如何合法合规运营", duration: "05:12" },
],
},
{
emoji: "🏆",
title: "进阶篇 · 高阶玩法",
lessons: [
{ name: "18 从一人到小团队的进化", duration: "11:25" },
{ name: "19 建立你的数字游民品牌", duration: "25:57" },
{ name: "20 年度旅居计划与预算规划", duration: "12:34" },
{ name: "21 长期数字游民的可持续之道", duration: "08:53" },
],
},
],
} as const;
export const INSTRUCTORS_CONFIG = {
title: "三位资深导师联合授课",
subtitle: "异度世界、大师兄、小美带你开启数字游民之旅",
items: [
{
name: "异度世界",
role: "数字游民先行者",
desc: "5年旅居经验走过20+国家",
tag: "课程主理",
},
{
name: "大师兄",
role: "一人公司实践者",
desc: "远程自由职业转型教练",
tag: "变现专家",
},
{
name: "小美",
role: "生活方式博主",
desc: "边旅行边创作的斜杠青年",
tag: "旅居达人",
},
],
} as const;
export const CTA_CONFIG = {
title: "准备好开启你的数字游民之旅了吗?",
subtitle: "加入我们,跟着异度世界、大师兄、小美一起,从零开始实现自由人生",
badges: ["21节实战视频", "永久回看", "社群答疑"],
} as const;
/** FAQ 常见问题 */
export const FAQ_CONFIG = {
title: "常见问题",
items: [
{ q: "课程可以永久回看吗?", a: "可以,报名后永久有效,随时回看。" },
{ q: "适合零基础吗?", a: "适合。课程从入门到进阶,前 2 节可免费试看。" },
{ q: "有社群答疑吗?", a: "有,报名后加入专属社群,导师和同学一起交流。" },
{ q: "支持退款吗?", a: "7 天内不满意可申请全额退款。" },
],
} as const;
/** 社群入口 - 开发者可配置 */
export const COMMUNITY_CONFIG = {
enabled: true,
/** 按钮/入口文案 */
wechat: "扫码加入数字游民社群",
/** 社群二维码图片 URL报名后弹窗展示 */
qrCodeUrl: "/qrcode-community.png",
qq: "",
link: "",
} as const;
/** 章节底部网盘下载模块 - 开发者可配置开关与跳转地址 */
export const DOWNLOAD_CONFIG = {
/** 是否显示网盘下载模块 */
enabled: true,
/** 网盘跳转地址(如百度网盘、阿里云盘等) */
url: "https://pan.baidu.com/s/example",
/** 模块标题 */
title: "课程资料下载",
/** 按钮文案 */
buttonText: "前往网盘下载",
} as const;

112
config/lessons.ts Normal file
View File

@@ -0,0 +1,112 @@
/**
* 课程章节详情配置 - 数字游民主题
*/
const SAMPLE_VIDEO = "https://commondatastorage.googleapis.com/gtv-videos-bucket/sample/BigBuckBunny.mp4";
const SAMPLE_MARKDOWN = `# 课程概述
本小节将带你理解数字游民的核心概念,掌握关键技能。
## 学习目标
- 理解数字游民的本质与生活方式
- 掌握远程变现的基础路径
- 完成个人定位与规划
## 核心要点
1. **定义**:数字游民 = 远程工作 + 自由旅行 + 地点独立
2. **技能**:选择可远程交付的技能方向
3. **心态**:自律与自由是相辅相成的
## 行动清单
- [ ] 评估自己的技能是否可远程交付
- [ ] 列出3个你想旅居的城市
- [ ] 设定6个月内的转型目标
### 代码示例
\`\`\`bash
# 安装依赖
pnpm install
# 启动开发
pnpm dev
\`\`\`
行内代码示例:\`npm run build\` 可生成生产版本。
## 注意事项
> 数字游民不是逃避,而是主动选择。建议先有稳定收入再考虑长期旅居。
| 项目 | 说明 |
|------|------|
| 收入 | 建议月收入稳定在 1 万以上 |
| 技能 | 至少 1 项可远程交付 |
| 心态 | 自律与自由平衡 |
`;
export type LessonDetail = {
name: string;
duration: string;
videoUrl: string;
markdown: string;
};
/** 扁平化课程数据moduleIndex-lessonIndex 作为 key */
export const LESSONS_MAP: Record<string, LessonDetail> = {
"0-0": {
name: "01 什么是数字游民?你适合吗?",
duration: "11:58",
videoUrl: SAMPLE_VIDEO,
markdown: SAMPLE_MARKDOWN.replace("本小节", "本节").replace("核心概念", "数字游民的定义与自我评估"),
},
"0-1": {
name: "02 从朝九晚五到边旅行边赚钱的路径",
duration: "14:32",
videoUrl: SAMPLE_VIDEO,
markdown: SAMPLE_MARKDOWN.replace("本小节", "本节").replace("核心概念", "从上班族到数字游民的转型路径"),
},
"1-0": {
name: "3.1 最适合远程的5大技能方向",
duration: "06:25",
videoUrl: SAMPLE_VIDEO,
markdown: SAMPLE_MARKDOWN.replace("本小节", "本节").replace("核心概念", "编程、设计、写作、营销、咨询等远程技能"),
},
"1-1": {
name: "3.2 如何打造你的技能组合与作品集",
duration: "07:34",
videoUrl: SAMPLE_VIDEO,
markdown: SAMPLE_MARKDOWN.replace("本小节", "本节").replace("核心概念", "作品集搭建与个人品牌展示"),
},
"2-0": { name: "04 从接单到产品的思维转变", duration: "04:16", videoUrl: SAMPLE_VIDEO, markdown: SAMPLE_MARKDOWN },
"2-1": { name: "05 打造你的第一个数字产品", duration: "06:18", videoUrl: SAMPLE_VIDEO, markdown: SAMPLE_MARKDOWN },
"2-2": { name: "06 海外平台接单与变现", duration: "02:30", videoUrl: SAMPLE_VIDEO, markdown: SAMPLE_MARKDOWN },
"2-3": { name: "07 被动收入组合:课程+会员+咨询", duration: "06:25", videoUrl: SAMPLE_VIDEO, markdown: SAMPLE_MARKDOWN },
"2-4": { name: "08 如何定价才能既赚又自由", duration: "03:09", videoUrl: SAMPLE_VIDEO, markdown: SAMPLE_MARKDOWN },
"3-0": { name: "09 数字游民的时间管理心法", duration: "07:49", videoUrl: SAMPLE_VIDEO, markdown: SAMPLE_MARKDOWN },
"3-1": { name: "09-1 独处与社交的平衡", duration: "01:24", videoUrl: SAMPLE_VIDEO, markdown: SAMPLE_MARKDOWN },
"3-2": { name: "10 如何应对家人的不理解", duration: "04:07", videoUrl: SAMPLE_VIDEO, markdown: SAMPLE_MARKDOWN },
"4-0": { name: "11 签证与长期居留规划", duration: "04:12", videoUrl: SAMPLE_VIDEO, markdown: SAMPLE_MARKDOWN },
"4-1": { name: "12 住宿选择短租、民宿、Co-living", duration: "05:19", videoUrl: SAMPLE_VIDEO, markdown: SAMPLE_MARKDOWN },
"4-2": { name: "13 网络、保险与紧急预案", duration: "04:11", videoUrl: SAMPLE_VIDEO, markdown: SAMPLE_MARKDOWN },
"5-0": { name: "14 巴厘岛数字游民社区探访", duration: "12:02", videoUrl: SAMPLE_VIDEO, markdown: SAMPLE_MARKDOWN },
"5-1": { name: "15 曼谷/清迈生活成本与体验", duration: "09:39", videoUrl: SAMPLE_VIDEO, markdown: SAMPLE_MARKDOWN },
"5-2": { name: "16 欧洲数字游民签证攻略", duration: "09:04", videoUrl: SAMPLE_VIDEO, markdown: SAMPLE_MARKDOWN },
"5-3": { name: "17 一人公司如何合法合规运营", duration: "05:12", videoUrl: SAMPLE_VIDEO, markdown: SAMPLE_MARKDOWN },
"6-0": { name: "18 从一人到小团队的进化", duration: "11:25", videoUrl: SAMPLE_VIDEO, markdown: SAMPLE_MARKDOWN },
"6-1": { name: "19 建立你的数字游民品牌", duration: "25:57", videoUrl: SAMPLE_VIDEO, markdown: SAMPLE_MARKDOWN },
"6-2": { name: "20 年度旅居计划与预算规划", duration: "12:34", videoUrl: SAMPLE_VIDEO, markdown: SAMPLE_MARKDOWN },
"6-3": { name: "21 长期数字游民的可持续之道", duration: "08:53", videoUrl: SAMPLE_VIDEO, markdown: SAMPLE_MARKDOWN },
};
export function getLessonKey(moduleIndex: number, lessonIndex: number): string {
return `${moduleIndex}-${lessonIndex}`;
}
export function getLesson(moduleIndex: number, lessonIndex: number): LessonDetail | null {
return LESSONS_MAP[getLessonKey(moduleIndex, lessonIndex)] ?? null;
}