refactor(docs): consolidate stage-0 into stage-1 and update routing

- Update homepage links in zh-cn and zh-tw to point to stage-1
- Update internal navigation links within stage-1 index files
- Remove obsolete github-pages-deployment document
- Update sitemap generation script to reflect stage-0 removal
This commit is contained in:
sanbuphy
2026-04-02 13:48:55 +08:00
parent c74849757e
commit 80609bf277
983 changed files with 1902 additions and 2246 deletions
+102 -107
View File
@@ -238,7 +238,6 @@ const getSeoHead = (locale, title, description, path = '') => {
// 路径分段名称映射
const segmentNames = {
'zh-cn': {
'stage-0': '幼儿园',
'stage-1': 'AI产品经理',
'stage-2': '初中级开发工程师',
'stage-3': '高级开发工程师',
@@ -253,7 +252,6 @@ const getSeoHead = (locale, title, description, path = '') => {
'ai-advanced': 'AI进阶'
},
en: {
'stage-0': 'Kindergarten',
'stage-1': 'AI Product Manager',
'stage-2': 'Junior Developer',
'stage-3': 'Senior Developer',
@@ -334,10 +332,10 @@ const productManagerSidebarEn = [
text: 'Getting Started',
collapsed: false,
items: [
{ text: 'Learning Map', link: '/en/stage-0/0.1-learning-map/' },
{ text: 'Learning Map', link: '/en/stage-1/learning-map/' },
{
text: 'AI Era: If You Can Speak, You Can Code',
link: '/en/stage-0/0.2-ai-capabilities-through-games/'
link: '/en/stage-1/ai-capabilities-through-games/'
}
]
},
@@ -347,23 +345,23 @@ const productManagerSidebarEn = [
items: [
{
text: 'Master AI Programming Tools',
link: '/en/stage-1/1.1-introduction-to-ai-ide/'
link: '/en/stage-1/introduction-to-ai-ide/'
},
{
text: 'Find Great Ideas',
link: '/en/stage-1/1.0-finding-great-idea/'
link: '/en/stage-1/finding-great-idea/'
},
{
text: 'Build Product Prototypes',
link: '/en/stage-1/1.2-building-prototype/'
link: '/en/stage-1/building-prototype/'
},
{
text: 'Integrate AI Capabilities',
link: '/en/stage-1/1.3-integrating-ai-capabilities/'
link: '/en/stage-1/integrating-ai-capabilities/'
},
{
text: 'Complete Project Practice',
link: '/en/stage-1/1.4-complete-project-practice/'
link: '/en/stage-1/complete-project-practice/'
}
]
},
@@ -434,35 +432,35 @@ const stage2SidebarEn = [
items: [
{
text: 'Build Your Own Asset-Production Agent with Lovart',
link: '/en/stage-2/frontend/2.0-lovart-assets/'
link: '/en/stage-2/frontend/lovart-assets/'
},
{
text: 'Figma & MasterGo Basics',
link: '/en/stage-2/frontend/2.1-figma-mastergo/'
link: '/en/stage-2/frontend/figma-mastergo/'
},
{
text: 'Build Your First Modern App - UI Design',
link: '/en/stage-2/frontend/2.2-ui-design/'
link: '/en/stage-2/frontend/ui-design/'
},
{
text: 'UI Design Guidelines and Multi-Product UI',
link: '/en/stage-2/frontend/2.3-multi-product-ui/'
link: '/en/stage-2/frontend/multi-product-ui/'
},
{
text: 'Make Interfaces Beautiful with LLMs and Skills',
link: '/en/stage-2/frontend/2.4-llm-skills-beautiful/'
link: '/en/stage-2/frontend/llm-skills-beautiful/'
},
{
text: "Let's Build Hogwarts Portraits",
link: '/en/stage-2/frontend/2.5-hogwarts-portraits/'
link: '/en/stage-2/frontend/hogwarts-portraits/'
},
{
text: 'From Design Prototype to Project Code',
link: '/en/stage-2/frontend/2.6-design-to-code/'
link: '/en/stage-2/frontend/design-to-code/'
},
{
text: 'Upgrade Your UI with Modern Component Libraries',
link: '/en/stage-2/frontend/2.7-modern-component-library/'
link: '/en/stage-2/frontend/modern-component-library/'
}
]
},
@@ -472,27 +470,27 @@ const stage2SidebarEn = [
items: [
{
text: 'Learn Git and GitHub',
link: '/en/stage-2/backend/2.4-git-workflow/'
link: '/en/stage-2/backend/git-workflow/'
},
{
text: 'From Database to Supabase',
link: '/en/stage-2/backend/2.2-database-supabase/'
link: '/en/stage-2/backend/database-supabase/'
},
{
text: 'Backend API Design and Development',
link: '/en/stage-2/backend/2.3-ai-interface-code/'
link: '/en/stage-2/backend/ai-interface-code/'
},
{
text: 'Ship Your Product Prototype',
link: '/en/stage-2/backend/2.5-zeabur-deployment/'
link: '/en/stage-2/backend/zeabur-deployment/'
},
{
text: 'From IDEs to CLI AI Coding Tools',
link: '/en/stage-2/backend/2.6-modern-cli/'
link: '/en/stage-2/backend/modern-cli/'
},
{
text: 'Integrate Stripe and Other Billing Systems',
link: '/en/stage-2/backend/2.7-stripe-payment/'
link: '/en/stage-2/backend/stripe-payment/'
}
]
},
@@ -502,7 +500,7 @@ const stage2SidebarEn = [
items: [
{
text: 'AI 1: Dify & Knowledge Base',
link: '/en/stage-2/ai-capabilities/2.1-dify-knowledge-base/'
link: '/en/stage-2/ai-capabilities/dify-knowledge-base/'
}
]
},
@@ -512,15 +510,15 @@ const stage2SidebarEn = [
items: [
{
text: 'Hogwarts Portraits Project',
link: '/en/stage-2/frontend/2.5-hogwarts-portraits/'
link: '/en/stage-2/frontend/hogwarts-portraits/'
},
{
text: 'Assignment 1: Full-Stack App',
link: '/en/stage-2/assignments/2.1-fullstack-app/'
link: '/en/stage-2/assignments/fullstack-app/'
},
{
text: 'Assignment 2: UI Library & Trae',
link: '/en/stage-2/assignments/2.2-modern-frontend-trae/'
link: '/en/stage-2/assignments/modern-frontend-trae/'
}
]
}
@@ -579,51 +577,51 @@ const stage3SidebarEn = [
items: [
{
text: 'How to Choose the Right Platform for Your App',
link: '/en/stage-3/cross-platform/3.1-choose-platform/'
link: '/en/stage-3/cross-platform/choose-platform/'
},
{
text: 'How to Build a Simple WeChat Mini Program',
link: '/en/stage-3/cross-platform/3.3-wechat-miniprogram/'
link: '/en/stage-3/cross-platform/wechat-miniprogram/'
},
{
text: 'How to Build a WeChat Mini Program with a Backend',
link: '/en/stage-3/cross-platform/3.4-wechat-miniprogram-backend/'
link: '/en/stage-3/cross-platform/wechat-miniprogram-backend/'
},
{
text: 'How to Build an Android App with Jetpack Compose',
link: '/en/stage-3/cross-platform/3.5-android-app/'
link: '/en/stage-3/cross-platform/android-app/'
},
{
text: 'How to Build an iOS App with SwiftUI',
link: '/en/stage-3/cross-platform/3.6-ios-app/'
link: '/en/stage-3/cross-platform/ios-app/'
},
{
text: 'How to Build a PWA Local App',
link: '/en/stage-3/cross-platform/3.8-pwa-local-app/'
link: '/en/stage-3/cross-platform/pwa-local-app/'
},
{
text: 'How to Build a Browser AI Assistant Extension',
link: '/en/stage-3/cross-platform/3.9-browser-ai-extension/'
link: '/en/stage-3/cross-platform/browser-ai-extension/'
},
{
text: 'How to Build a Cross-Platform Electron Desktop App',
link: '/en/stage-3/cross-platform/3.10-electron-voice-to-text/'
link: '/en/stage-3/cross-platform/electron-voice-to-text/'
},
{
text: 'How to Quickly Build and Mint an NFT',
link: '/en/stage-3/cross-platform/3.11-nft-minting/'
link: '/en/stage-3/cross-platform/nft-minting/'
},
{
text: 'How to Build a VS Code Extension',
link: '/en/stage-3/cross-platform/3.12-vscode-extension/'
link: '/en/stage-3/cross-platform/vscode-extension/'
},
{
text: 'How to Build an Industrial Qt Desktop App',
link: '/en/stage-3/cross-platform/3.13-qt-industrial-hmi/'
link: '/en/stage-3/cross-platform/qt-industrial-hmi/'
},
{
text: 'How to Build Your Personal Website and Academic Blog',
link: '/en/stage-3/personal-brand/3.7-personal-website-blog/'
link: '/en/stage-3/personal-brand/personal-website-blog/'
}
]
},
@@ -633,11 +631,11 @@ const stage3SidebarEn = [
items: [
{
text: 'What Is RAG and How It Works',
link: '/en/stage-3/ai-advanced/3.a1-rag-introduction/'
link: '/en/stage-3/ai-advanced/rag-introduction/'
},
{
text: 'Advanced RAG and Workflow Orchestration with LangGraph',
link: '/en/stage-3/ai-advanced/3.a2-langgraph-advanced-rag/'
link: '/en/stage-3/ai-advanced/langgraph-advanced-rag/'
}
]
}
@@ -1145,10 +1143,10 @@ const productManagerSidebar = [
text: '新手入门',
collapsed: false,
items: [
{ text: '学习地图', link: '/zh-cn/stage-0/0.1-learning-map/' },
{ text: '学习地图', link: '/zh-cn/stage-1/learning-map/' },
{
text: 'AI 时代,会说话就会编程',
link: '/zh-cn/stage-0/0.2-ai-capabilities-through-games/'
link: '/zh-cn/stage-1/ai-capabilities-through-games/'
}
]
},
@@ -1158,23 +1156,23 @@ const productManagerSidebar = [
items: [
{
text: '学会 AI 编程工具',
link: '/zh-cn/stage-1/1.1-introduction-to-ai-ide/'
link: '/zh-cn/stage-1/introduction-to-ai-ide/'
},
{
text: '找到好点子',
link: '/zh-cn/stage-1/1.0-finding-great-idea/'
link: '/zh-cn/stage-1/finding-great-idea/'
},
{
text: '搭建产品原型',
link: '/zh-cn/stage-1/1.2-building-prototype/'
link: '/zh-cn/stage-1/building-prototype/'
},
{
text: '接入 AI 能力',
link: '/zh-cn/stage-1/1.3-integrating-ai-capabilities/'
link: '/zh-cn/stage-1/integrating-ai-capabilities/'
},
{
text: '完整项目实战',
link: '/zh-cn/stage-1/1.4-complete-project-practice/'
link: '/zh-cn/stage-1/complete-project-practice/'
}
]
},
@@ -1266,7 +1264,6 @@ export default defineConfig({
priority: {
'/': 1.0,
'/zh-cn/': 0.9,
'/zh-cn/stage-0/': 0.9,
'/zh-cn/stage-1/': 0.8,
'/zh-cn/stage-2/': 0.8,
'/zh-cn/stage-3/': 0.8,
@@ -1397,8 +1394,8 @@ Sitemap: ${siteUrl}/sitemap.xml
{ text: '首页', link: '/zh-cn/' },
{
text: '零基础入门',
link: '/zh-cn/stage-0/',
activeMatch: '/zh-cn/stage-[01]/'
link: '/zh-cn/stage-1/',
activeMatch: '/zh-cn/stage-1/'
},
{
text: '初中级开发',
@@ -1446,7 +1443,6 @@ Sitemap: ${siteUrl}/sitemap.xml
]
}
],
'/zh-cn/stage-0/': productManagerSidebar,
'/zh-cn/stage-1/': productManagerSidebar,
'/zh-cn/stage-2/': [
{
@@ -1455,27 +1451,27 @@ Sitemap: ${siteUrl}/sitemap.xml
items: [
{
text: '使用 NanoBanana 生产素材',
link: '/zh-cn/stage-2/frontend/2.0-lovart-assets/'
link: '/zh-cn/stage-2/frontend/lovart-assets/'
},
{
text: 'Figma 与 MasterGo 入门',
link: '/zh-cn/stage-2/frontend/2.1-figma-mastergo/'
link: '/zh-cn/stage-2/frontend/figma-mastergo/'
},
{
text: '参考 UI 设计规范设计页面和按钮',
link: '/zh-cn/stage-2/frontend/2.3-multi-product-ui/'
link: '/zh-cn/stage-2/frontend/multi-product-ui/'
},
{
text: '用 LLM 和 Skills 让界面变好看',
link: '/zh-cn/stage-2/frontend/2.4-llm-skills-beautiful/'
link: '/zh-cn/stage-2/frontend/llm-skills-beautiful/'
},
{
text: '从设计原型到项目代码',
link: '/zh-cn/stage-2/frontend/2.6-design-to-code/'
link: '/zh-cn/stage-2/frontend/design-to-code/'
},
{
text: '使用现代组件库更新你的界面',
link: '/zh-cn/stage-2/frontend/2.7-modern-component-library/'
link: '/zh-cn/stage-2/frontend/modern-component-library/'
}
]
},
@@ -1485,27 +1481,27 @@ Sitemap: ${siteUrl}/sitemap.xml
items: [
{
text: '从数据库到 Supabase',
link: '/zh-cn/stage-2/backend/2.2-database-supabase/'
link: '/zh-cn/stage-2/backend/database-supabase/'
},
{
text: '大模型辅助编写接口代码与接口文档',
link: '/zh-cn/stage-2/backend/2.3-ai-interface-code/'
link: '/zh-cn/stage-2/backend/ai-interface-code/'
},
{
text: 'Git 工作流',
link: '/zh-cn/stage-2/backend/2.4-git-workflow/'
link: '/zh-cn/stage-2/backend/git-workflow/'
},
{
text: '如何部署 Web 应用',
link: '/zh-cn/stage-2/backend/2.5-zeabur-deployment/'
link: '/zh-cn/stage-2/backend/zeabur-deployment/'
},
{
text: '现代 CLI 开发工具',
link: '/zh-cn/stage-2/backend/2.6-modern-cli/'
link: '/zh-cn/stage-2/backend/modern-cli/'
},
{
text: '如何集成 Stripe 等收费系统',
link: '/zh-cn/stage-2/backend/2.7-stripe-payment/'
link: '/zh-cn/stage-2/backend/stripe-payment/'
}
]
},
@@ -1515,7 +1511,7 @@ Sitemap: ${siteUrl}/sitemap.xml
items: [
{
text: 'Dify 入门与知识库集成',
link: '/zh-cn/stage-2/ai-capabilities/2.1-dify-knowledge-base/'
link: '/zh-cn/stage-2/ai-capabilities/dify-knowledge-base/'
}
]
},
@@ -1525,7 +1521,7 @@ Sitemap: ${siteUrl}/sitemap.xml
items: [
{
text: '一起做霍格沃茨画像',
link: '/zh-cn/stage-2/frontend/2.5-hogwarts-portraits/'
link: '/zh-cn/stage-2/frontend/hogwarts-portraits/'
},
{
text: 'AI 营销文案 SaaS',
@@ -1615,51 +1611,51 @@ Sitemap: ${siteUrl}/sitemap.xml
items: [
{
text: '如何选择你的应用该开发的平台',
link: '/zh-cn/stage-3/cross-platform/3.1-choose-platform/'
link: '/zh-cn/stage-3/cross-platform/choose-platform/'
},
{
text: '如何构建微信小程序',
link: '/zh-cn/stage-3/cross-platform/3.3-wechat-miniprogram/'
link: '/zh-cn/stage-3/cross-platform/wechat-miniprogram/'
},
{
text: '如何构建微信小程序(包含后端)',
link: '/zh-cn/stage-3/cross-platform/3.4-wechat-miniprogram-backend/'
link: '/zh-cn/stage-3/cross-platform/wechat-miniprogram-backend/'
},
{
text: '如何构建安卓程序-compose 原生开发',
link: '/zh-cn/stage-3/cross-platform/3.5-android-app/'
link: '/zh-cn/stage-3/cross-platform/android-app/'
},
{
text: '如何构建 iOS 程序-swiftUI原生开发',
link: '/zh-cn/stage-3/cross-platform/3.6-ios-app/'
link: '/zh-cn/stage-3/cross-platform/ios-app/'
},
{
text: '如何开发 PWA 本地应用',
link: '/zh-cn/stage-3/cross-platform/3.8-pwa-local-app/'
link: '/zh-cn/stage-3/cross-platform/pwa-local-app/'
},
{
text: '如何开发浏览器 AI 助手插件',
link: '/zh-cn/stage-3/cross-platform/3.9-browser-ai-extension/'
link: '/zh-cn/stage-3/cross-platform/browser-ai-extension/'
},
{
text: '如何开发跨平台 Electron 桌面程序',
link: '/zh-cn/stage-3/cross-platform/3.10-electron-voice-to-text/'
link: '/zh-cn/stage-3/cross-platform/electron-voice-to-text/'
},
{
text: '如何快速开发并铸造 NFT',
link: '/zh-cn/stage-3/cross-platform/3.11-nft-minting/'
link: '/zh-cn/stage-3/cross-platform/nft-minting/'
},
{
text: '如何开发 VS Code 插件',
link: '/zh-cn/stage-3/cross-platform/3.12-vscode-extension/'
link: '/zh-cn/stage-3/cross-platform/vscode-extension/'
},
{
text: '如何开发工业级 Qt 桌面应用',
link: '/zh-cn/stage-3/cross-platform/3.13-qt-industrial-hmi/'
link: '/zh-cn/stage-3/cross-platform/qt-industrial-hmi/'
},
{
text: '如何构建属于自己的个人网页与学术博客',
link: '/zh-cn/stage-3/personal-brand/3.7-personal-website-blog/'
link: '/zh-cn/stage-3/personal-brand/personal-website-blog/'
}
]
},
@@ -1669,11 +1665,11 @@ Sitemap: ${siteUrl}/sitemap.xml
items: [
{
text: '什么是 RAG 以及它如何工作',
link: '/zh-cn/stage-3/ai-advanced/3.a1-rag-introduction/'
link: '/zh-cn/stage-3/ai-advanced/rag-introduction/'
},
{
text: '中高级 RAG 与工作流编排 - 以 LangGraph 为例',
link: '/zh-cn/stage-3/ai-advanced/3.a2-langgraph-advanced-rag/'
link: '/zh-cn/stage-3/ai-advanced/langgraph-advanced-rag/'
}
]
}
@@ -1690,23 +1686,23 @@ Sitemap: ${siteUrl}/sitemap.xml
items: [
{
text: 'Extra 1: Git & GitHub',
link: '/zh-cn/stage-2/backend/2.4-git-workflow/'
link: '/zh-cn/stage-2/backend/git-workflow/'
},
{
text: 'Extra 2: What is API',
link: '/zh-cn/stage-2/backend/2.1-what-is-api/'
link: '/zh-cn/stage-2/backend/what-is-api/'
},
{
text: 'Extra 5: What is RAG',
link: '/zh-cn/stage-3/ai-advanced/3.a1-rag-introduction/'
link: '/zh-cn/stage-3/ai-advanced/rag-introduction/'
},
{
text: 'Extra 6: Zeabur Deployment',
link: '/zh-cn/stage-2/backend/2.5-zeabur-deployment/'
link: '/zh-cn/stage-2/backend/zeabur-deployment/'
},
{
text: 'Extra 7: CLI AI Tools & TDD',
link: '/zh-cn/stage-2/backend/2.6-modern-cli/'
link: '/zh-cn/stage-2/backend/modern-cli/'
}
]
}
@@ -1732,15 +1728,15 @@ Sitemap: ${siteUrl}/sitemap.xml
items: [
{
text: '一起做霍格沃茨画像',
link: '/zh-cn/stage-2/frontend/2.5-hogwarts-portraits/'
link: '/zh-cn/stage-2/frontend/hogwarts-portraits/'
},
{
text: 'Supabase 数据库',
link: '/zh-cn/stage-2/backend/2.2-database-supabase/'
link: '/zh-cn/stage-2/backend/database-supabase/'
},
{
text: 'Dify & Knowledge Base',
link: '/zh-cn/stage-2/ai-capabilities/2.1-dify-knowledge-base/'
link: '/zh-cn/stage-2/ai-capabilities/dify-knowledge-base/'
}
]
}
@@ -2251,8 +2247,8 @@ Sitemap: ${siteUrl}/sitemap.xml
{ text: 'Home', link: '/en/' },
{
text: 'Getting Started',
link: '/en/stage-0/',
activeMatch: '/en/stage-[01]/'
link: '/en/stage-1/',
activeMatch: '/en/stage-1/'
},
{
text: 'Full-Stack Development',
@@ -2300,7 +2296,6 @@ Sitemap: ${siteUrl}/sitemap.xml
]
}
],
'/en/stage-0/': productManagerSidebarEn,
'/en/stage-1/': productManagerSidebarEn,
'/en/stage-2/': stage2SidebarEn,
'/en/stage-3/': stage3SidebarEn,
@@ -2338,8 +2333,8 @@ Sitemap: ${siteUrl}/sitemap.xml
{ text: 'ホーム', link: '/ja-jp/' },
{
text: '初心者とPM',
link: '/zh-cn/stage-0/',
activeMatch: '/zh-cn/stage-0/'
link: '/zh-cn/stage-1/',
activeMatch: '/zh-cn/stage-1/'
},
{
text: 'フルスタック開発',
@@ -2389,8 +2384,8 @@ Sitemap: ${siteUrl}/sitemap.xml
{ text: '首頁', link: '/zh-tw/' },
{
text: '新手與產品原型',
link: '/zh-cn/stage-0/',
activeMatch: '/zh-cn/stage-0/'
link: '/zh-cn/stage-1/',
activeMatch: '/zh-cn/stage-1/'
},
{
text: '初中級開發',
@@ -2439,8 +2434,8 @@ Sitemap: ${siteUrl}/sitemap.xml
{ text: '홈', link: '/ko-kr/' },
{
text: '초보자 & PM',
link: '/zh-cn/stage-0/',
activeMatch: '/zh-cn/stage-0/'
link: '/zh-cn/stage-1/',
activeMatch: '/zh-cn/stage-1/'
},
{
text: '풀스택 개발',
@@ -2489,8 +2484,8 @@ Sitemap: ${siteUrl}/sitemap.xml
{ text: 'Inicio', link: '/es-es/' },
{
text: 'Principiante y PM',
link: '/zh-cn/stage-0/',
activeMatch: '/zh-cn/stage-0/'
link: '/zh-cn/stage-1/',
activeMatch: '/zh-cn/stage-1/'
},
{
text: 'Desarrollo Full Stack',
@@ -2539,8 +2534,8 @@ Sitemap: ${siteUrl}/sitemap.xml
{ text: 'Accueil', link: '/fr-fr/' },
{
text: 'Débutant & PM',
link: '/zh-cn/stage-0/',
activeMatch: '/zh-cn/stage-0/'
link: '/zh-cn/stage-1/',
activeMatch: '/zh-cn/stage-1/'
},
{
text: 'Développement Full Stack',
@@ -2589,8 +2584,8 @@ Sitemap: ${siteUrl}/sitemap.xml
{ text: 'Start', link: '/de-de/' },
{
text: 'Anfänger & PM',
link: '/zh-cn/stage-0/',
activeMatch: '/zh-cn/stage-0/'
link: '/zh-cn/stage-1/',
activeMatch: '/zh-cn/stage-1/'
},
{
text: 'Full Stack Entwicklung',
@@ -2639,8 +2634,8 @@ Sitemap: ${siteUrl}/sitemap.xml
{ text: 'الرئيسية', link: '/ar-sa/' },
{
text: 'مبتدأ & PM',
link: '/zh-cn/stage-0/',
activeMatch: '/zh-cn/stage-0/'
link: '/zh-cn/stage-1/',
activeMatch: '/zh-cn/stage-1/'
},
{
text: 'تطوير Full Stack',
@@ -2690,8 +2685,8 @@ Sitemap: ${siteUrl}/sitemap.xml
{ text: 'Trang chủ', link: '/vi-vn/' },
{
text: 'Người mới & PM',
link: '/zh-cn/stage-0/',
activeMatch: '/zh-cn/stage-0/'
link: '/zh-cn/stage-1/',
activeMatch: '/zh-cn/stage-1/'
},
{
text: 'Phát triển Full Stack',
@@ -4,16 +4,16 @@ import { useRouter, withBase, useData } from 'vitepress'
import GitHubStars from './GitHubStars.vue'
import VibeStories from './VibeStories.vue'
import { provide } from 'vue'
import stage2LovartCover from '../../../zh-cn/stage-2/frontend/2.0-lovart-assets/images/image1.png'
import stage2FigmaCover from '../../../zh-cn/stage-2/frontend/2.1-figma-mastergo/images/image8.png'
import stage2DesignToCodeCover from '../../../zh-cn/stage-2/frontend/2.6-design-to-code/images/image42.png'
import stage2SupabaseCover from '../../../zh-cn/stage-2/backend/2.2-database-supabase/images/image1.png'
import stage2ZeaburCover from '../../../zh-cn/stage-2/backend/2.5-zeabur-deployment/images/image1.png'
import stage2DifyCover from '../../../zh-cn/stage-2/ai-capabilities/2.1-dify-knowledge-base/images/image1.png'
import stage3ElectronCover from '../../../zh-cn/stage-3/cross-platform/3.10-electron-voice-to-text/images/image3.png'
import stage2LovartCover from '../../../zh-cn/stage-2/frontend/lovart-assets/images/image1.png'
import stage2FigmaCover from '../../../zh-cn/stage-2/frontend/figma-mastergo/images/image8.png'
import stage2DesignToCodeCover from '../../../zh-cn/stage-2/frontend/design-to-code/images/image42.png'
import stage2SupabaseCover from '../../../zh-cn/stage-2/backend/database-supabase/images/image1.png'
import stage2ZeaburCover from '../../../zh-cn/stage-2/backend/zeabur-deployment/images/image1.png'
import stage2DifyCover from '../../../zh-cn/stage-2/ai-capabilities/dify-knowledge-base/images/image1.png'
import stage3ElectronCover from '../../../zh-cn/stage-3/cross-platform/electron-voice-to-text/images/image3.png'
import stage3AgentTeamsCover from '../../../zh-cn/stage-3/core-skills/agent-teams/images/home-cover.svg'
import stage3LongRunningCover from '../../../zh-cn/stage-3/core-skills/long-running-tasks/images/home-cover.svg'
import stage3PersonalBrandCover from '../../../zh-cn/stage-3/personal-brand/3.7-personal-website-blog/images/image1.png'
import stage3PersonalBrandCover from '../../../zh-cn/stage-3/personal-brand/personal-website-blog/images/image1.png'
const router = useRouter()
const { site, page, lang } = useData()
@@ -125,19 +125,19 @@ const i18n = {
title: '学习地图',
desc: '了解从零基础到全栈开发的完整学习路径,明确每个阶段的目标和收获。',
sub: '全年龄友好',
link: '/zh-cn/stage-0/0.1-learning-map/'
link: '/zh-cn/stage-1/learning-map/'
},
{
title: '游戏化入门',
desc: '通过制作贪吃蛇等 AI 原生小游戏,体验 AI 编程的魅力,打破对代码的恐惧。',
sub: '边玩边学',
link: '/zh-cn/stage-0/0.2-ai-capabilities-through-games/'
link: '/zh-cn/stage-1/ai-capabilities-through-games/'
},
{
title: '产品原型实战',
desc: '掌握 Vibe Coding 工作流,从想法到可交互原型,独立完成高保真 Web 应用。',
sub: '核心心法',
link: '/zh-cn/stage-1/1.0-finding-great-idea/'
link: '/zh-cn/stage-1/finding-great-idea/'
}
]
},
@@ -150,37 +150,37 @@ const i18n = {
title: '素材生成 Agent',
headline: '先把素材生产提速。',
desc: '从 Lovart 和 Nanobanana 出发,搭建自己的素材生产工作流和绘图 Agent。',
link: '/zh-cn/stage-2/frontend/2.0-lovart-assets/'
link: '/zh-cn/stage-2/frontend/lovart-assets/'
},
{
title: 'Figma 与 MasterGo',
headline: '先把设计工具用顺。',
desc: '掌握专业 UI 设计工具的基础操作,理解从设计稿到开发协作的关键链路。',
link: '/zh-cn/stage-2/frontend/2.1-figma-mastergo/'
link: '/zh-cn/stage-2/frontend/figma-mastergo/'
},
{
title: '设计稿转代码',
headline: '把原型真正变成页面。',
desc: '学习如何将设计原型转成可以在浏览器里运行的前端代码,减少手工重搭。',
link: '/zh-cn/stage-2/frontend/2.6-design-to-code/'
link: '/zh-cn/stage-2/frontend/design-to-code/'
},
{
title: '真实数据项目',
headline: '连上真正的数据库。',
desc: '在 Supabase 上设计数据表和权限,用真实读写操作支撑你的产品数据层。',
link: '/zh-cn/stage-2/backend/2.2-database-supabase/'
link: '/zh-cn/stage-2/backend/database-supabase/'
},
{
title: '部署上线',
headline: '让世界看到你的作品。',
desc: '使用 CloudBase、Vercel、Zeabur 等平台,一口气打通从代码到公网访问的完整流程。',
link: '/zh-cn/stage-2/backend/2.5-zeabur-deployment/'
link: '/zh-cn/stage-2/backend/zeabur-deployment/'
},
{
title: 'AI 知识库集成',
headline: '让应用接上智能问答。',
desc: '学习用 Dify 构建 AI 应用和知识库,把检索增强能力接进你的真实产品。',
link: '/zh-cn/stage-2/ai-capabilities/2.1-dify-knowledge-base/'
link: '/zh-cn/stage-2/ai-capabilities/dify-knowledge-base/'
}
]
},
@@ -192,7 +192,7 @@ const i18n = {
{
title: '跨平台桌面应用',
desc: '用 Electron 做语音转文字桌面程序,一次开发同时跑在 Windows、macOS、Linux。',
link: '/zh-cn/stage-3/cross-platform/3.10-electron-voice-to-text/'
link: '/zh-cn/stage-3/cross-platform/electron-voice-to-text/'
},
{
title: 'AI 智能体团队',
@@ -207,7 +207,7 @@ const i18n = {
{
title: '个人品牌与输出',
desc: '搭建个人网站与技术博客,让你的项目和经验长期沉淀并被更多人看到。',
link: '/zh-cn/stage-3/personal-brand/3.7-personal-website-blog/'
link: '/zh-cn/stage-3/personal-brand/personal-website-blog/'
}
]
},
@@ -320,19 +320,19 @@ const i18n = {
title: 'Learning Map',
desc: 'Understand the complete learning path from zero to full-stack development.',
sub: 'All Ages Friendly',
link: '/en/stage-0/0.1-learning-map/'
link: '/en/stage-1/learning-map/'
},
{
title: 'Gamified Intro',
desc: 'Experience the magic of AI programming by building games like Snake.',
sub: 'Learn by Playing',
link: '/en/stage-0/0.2-ai-capabilities-through-games/'
link: '/en/stage-1/ai-capabilities-through-games/'
},
{
title: 'Vibe Coding',
desc: 'Master the core of AI coding: From product ideas to interactive prototypes.',
sub: 'Core Mindset',
link: '/en/stage-0/'
link: '/en/stage-1/'
}
]
},
@@ -346,37 +346,37 @@ const i18n = {
title: 'Asset Agent',
headline: 'Speed up content production.',
desc: 'Build your own design-asset workflow and drawing agent with Lovart and Nanobanana.',
link: '/zh-cn/stage-2/frontend/2.0-lovart-assets/'
link: '/zh-cn/stage-2/frontend/lovart-assets/'
},
{
title: 'Figma & MasterGo',
headline: 'Get fluent with design tools.',
desc: 'Learn the basics of modern UI design tools and how design files flow into development.',
link: '/zh-cn/stage-2/frontend/2.1-figma-mastergo/'
link: '/zh-cn/stage-2/frontend/figma-mastergo/'
},
{
title: 'Design to Code',
headline: 'Turn mockups into pages.',
desc: 'Convert prototypes into real frontend code that runs in the browser instead of staying as static designs.',
link: '/zh-cn/stage-2/frontend/2.6-design-to-code/'
link: '/zh-cn/stage-2/frontend/design-to-code/'
},
{
title: 'Real Data Project',
headline: 'Backed by a real DB.',
desc: 'Design tables and permissions on Supabase and wire them into real read/write flows.',
link: '/zh-cn/stage-2/backend/2.2-database-supabase/'
link: '/zh-cn/stage-2/backend/database-supabase/'
},
{
title: 'Deployment',
headline: 'Ship it to the world.',
desc: 'Use CloudBase, Vercel and Zeabur to turn local projects into publicly reachable sites.',
link: '/zh-cn/stage-2/backend/2.5-zeabur-deployment/'
link: '/zh-cn/stage-2/backend/zeabur-deployment/'
},
{
title: 'AI Knowledge Base',
headline: 'Plug AI into the app.',
desc: 'Use Dify to build AI workflows and knowledge-base powered product experiences.',
link: '/zh-cn/stage-2/ai-capabilities/2.1-dify-knowledge-base/'
link: '/zh-cn/stage-2/ai-capabilities/dify-knowledge-base/'
}
]
},
@@ -389,7 +389,7 @@ const i18n = {
{
title: 'Electron Desktop App',
desc: 'Build a speech-to-text desktop app that runs on Windows, macOS and Linux from one codebase.',
link: '/zh-cn/stage-3/cross-platform/3.10-electron-voice-to-text/'
link: '/zh-cn/stage-3/cross-platform/electron-voice-to-text/'
},
{
title: 'Agent Teams',
@@ -404,7 +404,7 @@ const i18n = {
{
title: 'Personal Brand',
desc: 'Build your own website and tech blog to showcase projects and writing.',
link: '/zh-cn/stage-3/personal-brand/3.7-personal-website-blog/'
link: '/zh-cn/stage-3/personal-brand/personal-website-blog/'
}
]
},
@@ -519,19 +519,19 @@ const i18n = {
title: 'AI PM',
desc: 'アイデアからプロトタイプまで、話すだけ。',
sub: '非技術者向け',
link: '/ja-jp/stage-0/'
link: '/ja-jp/stage-1/'
},
{
title: 'ゲーム化入門',
desc: 'スネークゲームやテトリスを作って、コードへの恐怖を克服。',
sub: '遊びながら学ぶ',
link: '/ja-jp/stage-0/'
link: '/ja-jp/stage-1/'
},
{
title: 'Vibe Coding',
desc: 'AI時代のコーディングの核心:プロンプトエンジニアリングとコンテキスト管理。',
sub: '核心的な考え方',
link: '/ja-jp/stage-0/'
link: '/ja-jp/stage-1/'
}
]
},
@@ -659,19 +659,19 @@ const i18n = {
title: 'AI 產品經理',
desc: '從想法到高保真原型,你只需要會說話。',
sub: '適合非技術背景',
link: '/zh-tw/stage-0/'
link: '/zh-tw/stage-1/'
},
{
title: '遊戲化入門',
desc: '通過製作貪吃蛇、俄羅斯方塊,打破對代碼的恐懼。',
sub: '邊玩邊學',
link: '/zh-tw/stage-0/'
link: '/zh-tw/stage-1/'
},
{
title: 'Vibe Coding',
desc: '掌握 AI 時代的編程核心:提示詞工程與上下文管理。',
sub: '核心心法',
link: '/zh-tw/stage-0/'
link: '/zh-tw/stage-1/'
}
]
},
@@ -797,19 +797,19 @@ const i18n = {
title: 'AI 제품 관리자',
desc: '아이디어에서 프로토타입까지, 말 한마디로.',
sub: '비전공자 추천',
link: '/ko-kr/stage-0/'
link: '/ko-kr/stage-1/'
},
{
title: '게임으로 입문',
desc: '스네이크 게임, 테트리스를 만들며 코딩 공포증 극복.',
sub: '놀면서 배우기',
link: '/ko-kr/stage-0/'
link: '/ko-kr/stage-1/'
},
{
title: 'Vibe Coding',
desc: 'AI 시대 코딩의 핵심: 프롬프트 엔지니어링과 컨텍스트 관리.',
sub: '핵심 마인드셋',
link: '/ko-kr/stage-0/'
link: '/ko-kr/stage-1/'
}
]
},
@@ -937,19 +937,19 @@ const i18n = {
title: 'PM de IA',
desc: 'De la idea al prototipo, solo hablando.',
sub: 'Amigable para no técnicos',
link: '/es-es/stage-0/'
link: '/es-es/stage-1/'
},
{
title: 'Intro Gamificada',
desc: 'Crea Snake, Tetris y rompe el miedo al código.',
sub: 'Aprende jugando',
link: '/es-es/stage-0/'
link: '/es-es/stage-1/'
},
{
title: 'Vibe Coding',
desc: 'Domina el núcleo de la programación con IA: Ingeniería de Prompts y Contexto.',
sub: 'Mentalidad Clave',
link: '/es-es/stage-0/'
link: '/es-es/stage-1/'
}
]
},
@@ -968,13 +968,13 @@ const i18n = {
title: 'Proyecto con DB real',
headline: 'Supabase como base de datos de verdad.',
desc: 'Diseña tablas y permisos en Supabase y conéctalos a flujos reales de lectura/escritura.',
link: '/zh-cn/stage-2/backend/2.2-database-supabase/'
link: '/zh-cn/stage-2/backend/database-supabase/'
},
{
title: 'Despliegue en producción',
headline: 'Lleva tu app al mundo real.',
desc: 'Usa CloudBase, Vercel y Zeabur para convertir tu código local en un sitio público.',
link: '/zh-cn/stage-2/backend/2.5-zeabur-deployment/'
link: '/zh-cn/stage-2/backend/zeabur-deployment/'
}
]
},
@@ -987,7 +987,7 @@ const i18n = {
{
title: 'App de escritorio multiplataforma',
desc: 'Crea con Electron una app de voz a texto que funciona en Windows, macOS y Linux con una sola base de código.',
link: '/zh-cn/stage-3/cross-platform/3.10-electron-voice-to-text/'
link: '/zh-cn/stage-3/cross-platform/electron-voice-to-text/'
},
{
title: 'Equipos de agentes IA',
@@ -1002,7 +1002,7 @@ const i18n = {
{
title: 'Marca personal',
desc: 'Construye tu sitio web y blog técnico para dar visibilidad a tus proyectos.',
link: '/zh-cn/stage-3/personal-brand/3.7-personal-website-blog/'
link: '/zh-cn/stage-3/personal-brand/personal-website-blog/'
}
]
},
@@ -1077,19 +1077,19 @@ const i18n = {
title: 'PM IA',
desc: "De l'idée au prototype, juste en parlant.",
sub: 'Accessible aux non-tech',
link: '/fr-fr/stage-0/'
link: '/fr-fr/stage-1/'
},
{
title: 'Intro Gamifiée',
desc: 'Créez Snake, Tetris et brisez la peur du code.',
sub: 'Apprendre en jouant',
link: '/fr-fr/stage-0/'
link: '/fr-fr/stage-1/'
},
{
title: 'Vibe Coding',
desc: 'Maîtrisez le cœur du codage IA : Prompt Engineering & Contexte.',
sub: 'Esprit Clé',
link: '/fr-fr/stage-0/'
link: '/fr-fr/stage-1/'
}
]
},
@@ -1218,19 +1218,19 @@ const i18n = {
title: 'KI PM',
desc: 'Von der Idee zum Prototyp, einfach durch Sprechen.',
sub: 'Nicht-Tech-freundlich',
link: '/de-de/stage-0/'
link: '/de-de/stage-1/'
},
{
title: 'Gamifizierte Intro',
desc: 'Baue Snake, Tetris und überwinde die Angst vor Code.',
sub: 'Spielend lernen',
link: '/de-de/stage-0/'
link: '/de-de/stage-1/'
},
{
title: 'Vibe Coding',
desc: 'Meistere den Kern des KI-Codings: Prompt Engineering & Kontext.',
sub: 'Kern-Mindset',
link: '/de-de/stage-0/'
link: '/de-de/stage-1/'
}
]
},
@@ -1358,19 +1358,19 @@ const i18n = {
title: 'مدير منتج AI',
desc: 'من الفكرة إلى النموذج الأولي، بمجرد التحدث.',
sub: 'صديق لغير التقنيين',
link: '/ar-sa/stage-0/'
link: '/ar-sa/stage-1/'
},
{
title: 'مقدمة بالألعاب',
desc: 'ابنِ Snake و Tetris واكسر حاجز الخوف من الكود.',
sub: 'تعلم باللعب',
link: '/ar-sa/stage-0/'
link: '/ar-sa/stage-1/'
},
{
title: 'Vibe Coding',
desc: 'أتقن جوهر برمجة الذكاء الاصطناعي: هندسة الأوامر والسياق.',
sub: 'العقلية الأساسية',
link: '/ar-sa/stage-0/'
link: '/ar-sa/stage-1/'
}
]
},
@@ -1499,19 +1499,19 @@ const i18n = {
title: 'AI PM',
desc: 'Từ ý tưởng đến nguyên mẫu, chỉ bằng lời nói.',
sub: 'Thân thiện với non-tech',
link: '/vi-vn/stage-0/'
link: '/vi-vn/stage-1/'
},
{
title: 'Nhập môn qua Game',
desc: 'Xây dựng Snake, Tetris và phá bỏ nỗi sợ code.',
sub: 'Học mà chơi',
link: '/vi-vn/stage-0/'
link: '/vi-vn/stage-1/'
},
{
title: 'Vibe Coding',
desc: 'Nắm vững cốt lõi lập trình AI: Prompt Engineering & Context.',
sub: 'Tư duy cốt lõi',
link: '/vi-vn/stage-0/'
link: '/vi-vn/stage-1/'
}
]
},
@@ -1627,13 +1627,13 @@ const topPromo = computed(() => {
return {
text: '用 Easy-Vibe 构建你的第一个 AI 应用,最快当天可上线原型。',
cta: '开始学习 ',
link: '/zh-cn/stage-0/0.1-learning-map/'
link: '/zh-cn/stage-1/learning-map/'
}
}
return {
text: 'Build your first AI app with Easy-Vibe and ship a working prototype fast.',
cta: 'Start learning ',
link: '/en/stage-0/0.1-learning-map/'
link: '/en/stage-1/learning-map/'
}
})
@@ -1735,19 +1735,19 @@ const footerPolicyLinkMap = {
}
const footerColumnLinkMap = {
'零基础入门': '/zh-cn/stage-0/',
'零基础入门': '/zh-cn/stage-1/',
'初中级开发': '/zh-cn/stage-2/',
'高级开发': '/zh-cn/stage-3/',
'附录': '/zh-cn/appendix/',
'学习地图': '/zh-cn/stage-0/0.1-learning-map/',
'课程总览': '/zh-cn/stage-0/',
'学习地图': '/zh-cn/stage-1/learning-map/',
'课程总览': '/zh-cn/stage-1/',
'GitHub 仓库': 'https://github.com/datawhalechina/easy-vibe',
'Foundations': '/en/stage-0/',
'Foundations': '/en/stage-1/',
'Junior/Mid Dev': '/en/stage-2/',
'Senior Dev': '/en/stage-3/',
'Appendix': '/en/appendix/',
'Learning Map': '/en/stage-0/0.1-learning-map/',
'Course Outline': '/en/stage-0/',
'Learning Map': '/en/stage-1/learning-map/',
'Course Outline': '/en/stage-1/',
'GitHub Repository': 'https://github.com/datawhalechina/easy-vibe',
'Overview': '/en/guide/introduction',
'Changelog': 'https://github.com/datawhalechina/easy-vibe/releases'
@@ -2042,7 +2042,7 @@ const stage1Cards = [
sub: '适合非技术背景',
color: 'linear-gradient(135deg, #FF9A9E 0%, #FECFEF 99%, #FECFEF 100%)',
icon: '🎨',
link: '/zh-cn/stage-0/0.1-learning-map/'
link: '/zh-cn/stage-1/learning-map/'
},
{
title: '游戏化入门',
@@ -2050,7 +2050,7 @@ const stage1Cards = [
sub: '边玩边学',
color: 'linear-gradient(120deg, #a1c4fd 0%, #c2e9fb 100%)',
icon: '🎮',
link: '/zh-cn/stage-0/0.2-ai-capabilities-through-games/'
link: '/zh-cn/stage-1/ai-capabilities-through-games/'
},
{
title: 'Vibe Coding',
@@ -2058,7 +2058,7 @@ const stage1Cards = [
sub: '核心心法',
color: 'linear-gradient(to top, #cfd9df 0%, #e2ebf0 100%)',
icon: '💡',
link: '/zh-cn/stage-1/1.1-introduction-to-ai-ide/'
link: '/zh-cn/stage-1/introduction-to-ai-ide/'
}
]
@@ -2068,37 +2068,37 @@ const stage2Cards = [
imageColor: '#E0C3FC',
image: stage2LovartCover,
imageAlt: 'Lovart 素材生产 Agent 界面截图',
link: '/zh-cn/stage-2/frontend/2.0-lovart-assets/'
link: '/zh-cn/stage-2/frontend/lovart-assets/'
},
{
imageColor: '#D8C4F8',
image: stage2FigmaCover,
imageAlt: 'Figma 与 MasterGo 设计工具截图',
link: '/zh-cn/stage-2/frontend/2.1-figma-mastergo/'
link: '/zh-cn/stage-2/frontend/figma-mastergo/'
},
{
imageColor: '#C7DDFB',
image: stage2DesignToCodeCover,
imageAlt: '设计稿转代码示意截图',
link: '/zh-cn/stage-2/frontend/2.6-design-to-code/'
link: '/zh-cn/stage-2/frontend/design-to-code/'
},
{
imageColor: '#8EC5FC',
image: stage2SupabaseCover,
imageAlt: 'Supabase 数据库控制台截图',
link: '/zh-cn/stage-2/backend/2.2-database-supabase/'
link: '/zh-cn/stage-2/backend/database-supabase/'
},
{
imageColor: '#96E6A1',
image: stage2ZeaburCover,
imageAlt: 'Zeabur 部署流程截图',
link: '/zh-cn/stage-2/backend/2.5-zeabur-deployment/'
link: '/zh-cn/stage-2/backend/zeabur-deployment/'
},
{
imageColor: '#A7F3D0',
image: stage2DifyCover,
imageAlt: 'Dify 知识库工作台截图',
link: '/zh-cn/stage-2/ai-capabilities/2.1-dify-knowledge-base/'
link: '/zh-cn/stage-2/ai-capabilities/dify-knowledge-base/'
}
]
@@ -2121,7 +2121,7 @@ const stage3Cards = [
visualType: 'phone',
image: stage3ElectronCover,
imageAlt: 'Electron 语音转文字桌面应用预览图',
link: '/zh-cn/stage-3/cross-platform/3.10-electron-voice-to-text/'
link: '/zh-cn/stage-3/cross-platform/electron-voice-to-text/'
},
{
title: 'AI 智能体团队',
@@ -2149,7 +2149,7 @@ const stage3Cards = [
image: stage3PersonalBrandCover,
imageAlt: '个人网站与学术博客示例截图',
imageClass: 'prod-image--personal-brand',
link: '/zh-cn/stage-3/personal-brand/3.7-personal-website-blog/'
link: '/zh-cn/stage-3/personal-brand/personal-website-blog/'
}
]
@@ -2585,7 +2585,7 @@ const appendixCards = [
<p>{{ t.footer.desc }}</p>
<a
class="buy-btn large"
:href="withBase('/zh-cn/stage-0/0.1-learning-map/')"
:href="withBase('/zh-cn/stage-1/learning-map/')"
>{{ t.footer.btn }}</a>
</div>
+33 -33
View File
@@ -5,61 +5,61 @@
* 页面只负责按 key 读取并渲染不在页面内重复维护映射数据
*/
export const relatedArticlesMap = {
'zh-cn/stage-0/0.1-learning-map': [
'zh-cn/stage-1/learning-map': [
{
href: '/zh-cn/stage-0/0.2-ai-capabilities-through-games/',
href: '/zh-cn/stage-1/ai-capabilities-through-games/',
title: '0.2 用“小游戏”理解 AI 能力边界',
description: '先用游戏化方式建立手感,快速理解“什么问题适合交给 AI”。',
icon: '🎮'
},
{
href: '/zh-cn/stage-1/1.0-finding-great-idea/',
href: '/zh-cn/stage-1/finding-great-idea/',
title: '1.0 找到值得做的点子',
description: '把“我有想法”变成“我有可验证的产品方向”。',
icon: '💡'
},
{
href: '/zh-cn/stage-1/1.2-building-prototype/',
href: '/zh-cn/stage-1/building-prototype/',
title: '1.2 把想法做成可交互原型',
description: '从需求拆解到页面落地,快速完成第一版 Demo。',
icon: '🧩'
},
{
href: '/zh-cn/stage-2/frontend/2.0-lovart-assets/',
href: '/zh-cn/stage-2/frontend/lovart-assets/',
title: '2.0 从 NanoBanana 出发做素材 Agent',
description: '进入实战阶段,学习构建稳定可复用的素材生产流程。',
icon: '🖼️'
}
],
'zh-cn/stage-0/0.2-ai-capabilities-through-games': [
'zh-cn/stage-1/ai-capabilities-through-games': [
{
href: '/zh-cn/stage-1/1.1-introduction-to-ai-ide/',
href: '/zh-cn/stage-1/introduction-to-ai-ide/',
title: '初级二:学会 AI 编程工具',
description: '把网页试玩升级到本地 AI IDE,建立完整开发环境。',
icon: '💻'
},
{
href: '/zh-cn/stage-1/1.0-finding-great-idea/',
href: '/zh-cn/stage-1/finding-great-idea/',
title: '初级:找到好点子',
description: '从“会用工具”走向“做对方向”,明确真实用户问题。',
icon: '💡'
},
{
href: '/zh-cn/stage-0/0.1-learning-map/',
href: '/zh-cn/stage-1/learning-map/',
title: '返回学习地图',
description: '按完整路线查看每个阶段目标与推荐学习顺序。',
icon: '🗺️'
}
],
'zh-cn/stage-1/1.1-introduction-to-ai-ide': [
'zh-cn/stage-1/introduction-to-ai-ide': [
{
href: '/zh-cn/stage-1/1.2-building-prototype/',
href: '/zh-cn/stage-1/building-prototype/',
title: '初级三:动手做出原型',
description: '从会用 AI IDE 进阶到真正落地业务原型。',
icon: '🧩'
},
{
href: '/zh-cn/stage-1/1.3-integrating-ai-capabilities/',
href: '/zh-cn/stage-1/integrating-ai-capabilities/',
title: '初级四:给原型加上 AI 能力',
description: '接入真实 API,让页面从“可看”变“可用”。',
icon: '🤖'
@@ -71,107 +71,107 @@ export const relatedArticlesMap = {
icon: '🛠️'
}
],
'zh-cn/stage-1/1.2-building-prototype': [
'zh-cn/stage-1/building-prototype': [
{
href: '/zh-cn/stage-1/1.3-integrating-ai-capabilities/',
href: '/zh-cn/stage-1/integrating-ai-capabilities/',
title: '初级四:给原型加上 AI 能力',
description: '把静态原型升级为可调用真实模型服务的应用。',
icon: '🤖'
},
{
href: '/zh-cn/stage-1/1.4-complete-project-practice/',
href: '/zh-cn/stage-1/complete-project-practice/',
title: '初级五:完整项目实战',
description: '补齐数据、交互与异常处理,完成可演示的完整项目。',
icon: '🚀'
},
{
href: '/zh-cn/stage-2/frontend/2.1-figma-mastergo/',
href: '/zh-cn/stage-2/frontend/figma-mastergo/',
title: '进阶:Figma 与 MasterGo 入门',
description: '继续强化设计到开发的协作流程,为工程化打基础。',
icon: '🎨'
}
],
'zh-cn/stage-1/1.3-integrating-ai-capabilities': [
'zh-cn/stage-1/integrating-ai-capabilities': [
{
href: '/zh-cn/stage-1/1.4-complete-project-practice/',
href: '/zh-cn/stage-1/complete-project-practice/',
title: '初级五:完整项目实战',
description: '把分散能力拼成完整业务链路,做出可展示的成品。',
icon: '🧱'
},
{
href: '/zh-cn/stage-2/frontend/2.0-lovart-assets/',
href: '/zh-cn/stage-2/frontend/lovart-assets/',
title: '初中级:素材生产 Agent',
description: '进入更真实的多模型协同流程,搭建可复用的生成系统。',
icon: '🖼️'
},
{
href: '/zh-cn/stage-2/backend/2.3-ai-interface-code/',
href: '/zh-cn/stage-2/backend/ai-interface-code/',
title: '初中级:后端接口设计与开发',
description: '把 AI 能力规范地接入后端接口,提升工程可维护性。',
icon: '🔌'
}
],
'zh-cn/stage-1/1.4-complete-project-practice': [
'zh-cn/stage-1/complete-project-practice': [
{
href: '/zh-cn/stage-2/frontend/2.0-lovart-assets/',
href: '/zh-cn/stage-2/frontend/lovart-assets/',
title: '初中级前端:素材生产 Agent',
description: '学习更复杂的多模型素材生产流程,提升视觉资产效率。',
icon: '🎯'
},
{
href: '/zh-cn/stage-2/assignments/2.1-fullstack-app/',
href: '/zh-cn/stage-2/assignments/fullstack-app/',
title: 'Stage 2 大作业:全栈应用实战',
description: '把原型能力升级为前后端一体化的可上线应用。',
icon: '💻'
},
{
href: '/zh-cn/stage-2/backend/2.2-database-supabase/',
href: '/zh-cn/stage-2/backend/database-supabase/',
title: '初中级后端:从数据库到 Supabase',
description: '补齐数据建模、存储与权限能力,迈向工程化开发。',
icon: '🗄️'
}
],
'zh-cn/stage-2/frontend/2.0-lovart-assets': [
'zh-cn/stage-2/frontend/lovart-assets': [
{
href: '/zh-cn/stage-2/frontend/2.1-figma-mastergo/',
href: '/zh-cn/stage-2/frontend/figma-mastergo/',
title: '2.1 Figma 与 MasterGo 入门',
description: '把素材放进设计稿,建立从视觉到布局的结构化表达。',
icon: '🎨'
},
{
href: '/zh-cn/stage-2/frontend/2.2-ui-design/',
href: '/zh-cn/stage-2/frontend/ui-design/',
title: '2.2 构建第一个现代应用程序 - UI 设计',
description: '在统一视觉规范下,完成页面层级、组件和布局设计。',
icon: '🧱'
},
{
href: '/zh-cn/stage-2/frontend/2.6-design-to-code/',
href: '/zh-cn/stage-2/frontend/design-to-code/',
title: '2.6 从设计原型到项目代码',
description: '把设计稿准确转成可维护的前端代码与组件结构。',
icon: '💻'
},
{
href: '/zh-cn/stage-2/frontend/2.7-modern-component-library/',
href: '/zh-cn/stage-2/frontend/modern-component-library/',
title: '2.7 使用现代组件库更新你的界面',
description: '利用组件库做工程化提效,让界面一致性更稳定。',
icon: '🧩'
}
],
'zh-cn/stage-2/frontend/2.1-figma-mastergo': [
'zh-cn/stage-2/frontend/figma-mastergo': [
{
href: '/zh-cn/stage-2/frontend/2.2-ui-design/',
href: '/zh-cn/stage-2/frontend/ui-design/',
title: '2.2 构建第一个现代应用程序 - UI 设计',
description: '继续完善界面结构、视觉层级与交互细节。',
icon: '🧱'
},
{
href: '/zh-cn/stage-2/frontend/2.6-design-to-code/',
href: '/zh-cn/stage-2/frontend/design-to-code/',
title: '2.6 从设计原型到项目代码',
description: '把设计稿系统化转译为可维护的前端代码。',
icon: '💻'
},
{
href: '/zh-cn/stage-2/frontend/2.7-modern-component-library/',
href: '/zh-cn/stage-2/frontend/modern-component-library/',
title: '2.7 使用现代组件库更新你的界面',
description: '用组件库统一 UI 规范并提升页面开发效率。',
icon: '🧩'