2026-01-12 12:21:35 +08:00
import { defineConfig } from 'vitepress'
2026-01-15 20:10:19 +08:00
import markdownItKatex from 'markdown-it-katex'
2026-01-12 12:21:35 +08:00
2026-01-12 22:39:15 +08:00
// 判断是否是 Vercel 环境, github page 和 vercel 的部署地址相关不一样
2026-01-13 23:03:43 +08:00
const isVercel = process . env . VERCEL === '1' || ! ! process . env . VERCEL _URL
2026-01-15 20:10:19 +08:00
// 检查是否为 EdgeOne 部署 (通过环境变量 EDGEONE 判断)
const isEdgeOne = ! ! process . env . EDGEONE || process . env . EDGEONE === '1'
// 确定 Base 路径:
// 1. 如果设置了 BASE 环境变量,优先使用
// 2. 如果是 Vercel 或 EdgeOne,默认使用根路径 '/'
// 3. 否则(如 GitHub Pages),使用 '/easy-vibe/'
const base = process . env . BASE || ( isVercel || isEdgeOne ? '/' : '/easy-vibe/' )
2026-01-12 22:33:49 +08:00
2026-01-13 22:51:28 +08:00
// 语言映射配置
const localeMap = {
'zh-cn' : { ogLocale : 'zh_CN' , twitterSite : '@datawhale' , lang : 'zh-CN' , hreflang : 'zh-CN' } ,
'en-us' : { ogLocale : 'en_US' , twitterSite : '@datawhale' , lang : 'en-US' , hreflang : 'en' } ,
'ja-jp' : { ogLocale : 'ja_JP' , twitterSite : '@datawhale' , lang : 'ja-JP' , hreflang : 'ja' } ,
'zh-tw' : { ogLocale : 'zh_TW' , twitterSite : '@datawhale' , lang : 'zh-TW' , hreflang : 'zh-TW' } ,
'ko-kr' : { ogLocale : 'ko_KR' , twitterSite : '@datawhale' , lang : 'ko-KR' , hreflang : 'ko' } ,
'es-es' : { ogLocale : 'es_ES' , twitterSite : '@datawhale' , lang : 'es-ES' , hreflang : 'es' } ,
'fr-fr' : { ogLocale : 'fr_FR' , twitterSite : '@datawhale' , lang : 'fr-FR' , hreflang : 'fr' } ,
'de-de' : { ogLocale : 'de_DE' , twitterSite : '@datawhale' , lang : 'de-DE' , hreflang : 'de' } ,
'ar-sa' : { ogLocale : 'ar_SA' , twitterSite : '@datawhale' , lang : 'ar-SA' , hreflang : 'ar' } ,
'vi-vn' : { ogLocale : 'vi_VN' , twitterSite : '@datawhale' , lang : 'vi-VN' , hreflang : 'vi' }
}
// SEO 相关配置
const getSeoHead = ( locale , title , description , path = '' ) => {
const seoConfig = localeMap [ locale ] || localeMap [ 'zh-cn' ]
const siteUrl = isVercel ? 'https://your-project.vercel.app' : 'https://datawhalechina.github.io/easy-vibe'
const canonicalUrl = path ? ` ${ siteUrl } ${ path } ` : ` ${ siteUrl } / ${ locale } / `
const ogImageUrl = ` ${ siteUrl } ${ base } logo.png `
const head = [
[ 'link' , { rel : 'icon' , href : ` ${ base } logo.png ` . replace ( '//' , '/' ) } ] ,
[ 'link' , { rel : 'stylesheet' , href : ` ${ base } style.css ` . replace ( '//' , '/' ) } ] ,
[ 'meta' , { name : 'theme-color' , content : '#3eaf7c' } ] ,
[ 'meta' , { name : 'viewport' , content : 'width=device-width, initial-scale=1.0' } ] ,
[ 'meta' , { name : 'format-detection' , content : 'telephone=no' } ] ,
[ 'link' , { rel : 'canonical' , href : canonicalUrl } ] ,
// Open Graph / Facebook
[ 'meta' , { property : 'og:type' , content : 'website' } ] ,
[ 'meta' , { property : 'og:locale' , content : seoConfig . ogLocale } ] ,
[ 'meta' , { property : 'og:site_name' , content : title } ] ,
[ 'meta' , { property : 'og:title' , content : title } ] ,
[ 'meta' , { property : 'og:description' , content : description } ] ,
[ 'meta' , { property : 'og:image' , content : ogImageUrl } ] ,
[ 'meta' , { property : 'og:image:alt' , content : title } ] ,
[ 'meta' , { property : 'og:image:width' , content : '1200' } ] ,
[ 'meta' , { property : 'og:image:height' , content : '630' } ] ,
[ 'meta' , { property : 'og:url' , content : canonicalUrl } ] ,
// Twitter Card
[ 'meta' , { name : 'twitter:card' , content : 'summary_large_image' } ] ,
[ 'meta' , { name : 'twitter:site' , content : seoConfig . twitterSite } ] ,
[ 'meta' , { name : 'twitter:creator' , content : seoConfig . twitterSite } ] ,
[ 'meta' , { name : 'twitter:title' , content : title } ] ,
[ 'meta' , { name : 'twitter:description' , content : description } ] ,
[ 'meta' , { name : 'twitter:image' , content : ogImageUrl } ] ,
[ 'meta' , { name : 'twitter:image:alt' , content : title } ] ,
// Additional SEO
[ 'meta' , { name : 'keywords' , content : 'AI编程,Vibe Coding,Claude Code,Cursor,Trae,AI IDE,零基础学编程,AI辅助开发,产品经理,全栈开发,编程教程,编程工具,Datawhale,Supabase,React,大模型,LLM,人工智能,微信小程序,Android开发,iOS开发,MCP,RAG,LangGraph,Dify,跨平台开发,AI应用开发' } ] ,
[ 'meta' , { name : 'author' , content : 'Datawhale' } ] ,
[ 'meta' , { name : 'robots' , content : 'index,follow' } ] ,
[ 'meta' , { name : 'googlebot' , content : 'index,follow' } ] ,
[ 'meta' , { name : 'baiduspider' , content : 'index,follow' } ] ,
[ 'meta' , { name : 'distribution' , content : 'global' } ] ,
[ 'meta' , { name : 'rating' , content : 'general' } ] ,
[ 'meta' , { name : 'revisit-after' , content : '7 days' } ]
]
// 添加 hreflang 标签
Object . keys ( localeMap ) . forEach ( lang => {
head . push ( [ 'link' , { rel : 'alternate' , hreflang : localeMap [ lang ] . hreflang , href : ` ${ siteUrl } / ${ lang } / ` } ] )
} )
head . push ( [ 'link' , { rel : 'alternate' , hreflang : 'x-default' , href : ` ${ siteUrl } /zh-cn/ ` } ] )
// 添加 JSON-LD 结构化数据
const jsonLd = {
'@context' : 'https://schema.org' ,
'@type' : 'WebSite' ,
name : title ,
description : description ,
url : siteUrl ,
inLanguage : seoConfig . ogLocale ,
potentialAction : {
'@type' : 'SearchAction' ,
target : ` ${ siteUrl } /search?q={search_term_string} ` ,
'query-input' : 'required name=search_term_string'
} ,
publisher : {
'@type' : 'Organization' ,
name : 'Datawhale' ,
url : 'https://datawhalechina.github.io' ,
logo : {
'@type' : 'ImageObject' ,
url : ogImageUrl
}
}
}
head . push ( [ 'script' , { type : 'application/ld+json' } , JSON . stringify ( jsonLd ) ] )
return head
}
2026-01-13 20:09:45 +08:00
const commonHead = [
[ 'link' , { rel : 'icon' , href : ` ${ base } logo.png ` . replace ( '//' , '/' ) } ] ,
[ 'link' , { rel : 'stylesheet' , href : ` ${ base } style.css ` . replace ( '//' , '/' ) } ]
]
const commonThemeConfig = {
logo : ` ${ base } logo.png ` . replace ( '//' , '/' ) ,
search : {
provider : 'local'
} ,
2026-01-13 20:32:41 +08:00
// socialLinks: [
// { icon: 'github', link: 'https://github.com/datawhalechina/easy-vibe' }
// ],
2026-01-13 20:09:45 +08:00
outline : {
level : [ 1 , 6 ]
}
}
2026-01-12 12:21:35 +08:00
export default defineConfig ( {
2026-01-15 20:10:19 +08:00
markdown : {
config : ( md ) => {
md . use ( markdownItKatex )
}
} ,
2026-01-12 22:33:49 +08:00
base : base ,
2026-01-13 20:09:45 +08:00
2026-01-13 22:51:28 +08:00
// Sitemap 配置
sitemap : {
hostname : 'https://datawhalechina.github.io/easy-vibe' ,
transformItems ( items ) {
// 过滤掉旧版内容和未完成的语言版本
return items . filter ( ( item ) => {
const url = item . url
// 排除旧版内容目录
if ( url . includes ( '/extra/' ) || url . includes ( '/examples/' ) || url . includes ( '/project/' ) ) {
return false
}
// 包含所有语言版本
return true
} )
}
} ,
2026-01-13 20:09:45 +08:00
// 多语言配置 - 使用 cn/en-us/ja 结构
locales : {
// 中文
'zh-cn' : {
label : '简体中文' ,
lang : 'zh-CN' ,
link : '/zh-cn/' ,
title : 'Easy-Vibe 教程' ,
2026-01-13 22:51:28 +08:00
description : '从零到一学习 Vibe Coding - 零基础学会用 AI 编程,掌握 Claude Code、Cursor 等 AI IDE 工具' ,
head : getSeoHead ( 'zh-cn' , 'Easy-Vibe 教程' , '从零到一学习 Vibe Coding - 零基础学会用 AI 编程,掌握 Claude Code、Cursor 等 AI IDE 工具' ) ,
2026-01-13 20:09:45 +08:00
themeConfig : {
... commonThemeConfig ,
outline : {
level : [ 1 , 6 ] ,
label : '页面导航'
2026-01-12 15:31:23 +08:00
} ,
2026-01-13 20:09:45 +08:00
nav : [
{ text : '首页' , link : '/zh-cn/' } ,
{ text : '新手入门' , link : '/zh-cn/stage-0/0.1-learning-map/' } ,
{ text : '产品经理' , link : '/zh-cn/stage-1/1.1-introduction-to-ai-ide/' } ,
{
text : '初中级开发' ,
link : '/zh-cn/stage-2/frontend/2.0-lovart-assets/'
} ,
{
text : '高级开发' ,
link : '/zh-cn/stage-3/core-skills/3.1-mcp-claudecode-skills/'
} ,
{ text : '附录' , link : '/zh-cn/appendix/ai-capability-dictionary' }
] ,
sidebar : {
'/zh-cn/stage-0/' : [
{ text : '1. 学习地图' , link : '/zh-cn/stage-0/0.1-learning-map/' } ,
{
text : '2. AI 时代,会说话就会编程' ,
link : '/zh-cn/stage-0/0.2-ai-capabilities-through-games/'
}
] ,
'/zh-cn/stage-1/' : [
2026-01-12 12:21:35 +08:00
{
2026-01-13 20:09:45 +08:00
text : '1. 认识 AI IDE 工具' ,
link : '/zh-cn/stage-1/1.1-introduction-to-ai-ide/'
2026-01-12 12:21:35 +08:00
} ,
{
2026-01-13 20:09:45 +08:00
text : '2. 动手做出原型' ,
link : '/zh-cn/stage-1/1.2-building-prototype/'
2026-01-12 12:21:35 +08:00
} ,
{
2026-01-13 20:09:45 +08:00
text : '3. 给原型加上 AI 能力' ,
link : '/zh-cn/stage-1/1.3-integrating-ai-capabilities/'
2026-01-12 12:21:35 +08:00
} ,
{
2026-01-13 20:09:45 +08:00
text : '4. 完整项目实战' ,
link : '/zh-cn/stage-1/1.4-complete-project-practice/'
2026-01-12 12:21:35 +08:00
} ,
{
2026-01-13 20:09:45 +08:00
text : '5. 大作业:完成一个 Web 应用原型' ,
link : '/zh-cn/stage-1/1.5-final-project/'
2026-01-12 12:21:35 +08:00
} ,
{
2026-01-13 20:09:45 +08:00
text : '附录 A:产品思维补充' ,
link : '/zh-cn/stage-1/appendix-a-product-thinking/'
2026-01-12 12:21:35 +08:00
} ,
{
2026-01-13 20:09:45 +08:00
text : '附录 B:常见报错及解决方案' ,
link : '/zh-cn/stage-1/appendix-b-common-errors/'
2026-01-12 12:21:35 +08:00
} ,
{
2026-01-14 17:13:28 +08:00
text : '附录示例 1: 7 款主流 Vibe Coding 在线平台实测对比' ,
2026-01-13 20:09:45 +08:00
link : '/zh-cn/stage-1/appendix-articles/example0-1/vibe-coding-tools-snake-game-tutorial'
2026-01-12 12:21:35 +08:00
} ,
{
2026-01-14 10:14:04 +08:00
text : '附录示例:用编程和设计智能体开发网站' ,
2026-01-13 20:09:45 +08:00
link : '/zh-cn/stage-1/appendix-articles/example0-2/vibe-coding-tools-build-website-with-ai-coding-and-design-agents'
2026-01-12 12:21:35 +08:00
}
2026-01-13 20:09:45 +08:00
] ,
'/zh-cn/stage-2/' : [
{
text : '前端开发' ,
collapsed : false ,
items : [
{
text : '前端零:使用 Lovart 生产素材' ,
link : '/zh-cn/stage-2/frontend/2.0-lovart-assets/'
} ,
{
text : '前端一:Figma 与 MasterGo 入门' ,
link : '/zh-cn/stage-2/frontend/2.1-figma-mastergo/'
} ,
{
text : '前端二:构建第一个现代应用程序 - UI 设计' ,
link : '/zh-cn/stage-2/frontend/2.2-ui-design/'
} ,
{
text : '前端三:参考 UI 设计规范与多产品 UI 设计' ,
link : '/zh-cn/stage-2/frontend/2.3-multi-product-ui/'
} ,
{
text : '前端四:一起做霍格沃茨画像' ,
link : '/zh-cn/stage-2/frontend/2.4-hogwarts-portraits/chapter4-lets-build-hogwarts-portraits'
}
]
2026-01-12 12:21:35 +08:00
} ,
{
2026-01-13 20:09:45 +08:00
text : '后端与全栈' ,
collapsed : false ,
items : [
{
text : '后端一:什么是 API' ,
link : '/zh-cn/stage-2/backend/2.1-what-is-api/extra2/extra2-what-is-api'
} ,
{
text : '后端二:从数据库到 Supabase' ,
link : '/zh-cn/stage-2/backend/2.2-database-supabase/chapter5/chapter5-from-database-to-supabase'
} ,
{
text : '后端三:大模型辅助编写接口代码与接口文档' ,
link : '/zh-cn/stage-2/backend/2.3-ai-interface-code/'
} ,
{
text : '后端四:Git 工作流' ,
link : '/zh-cn/stage-2/backend/2.4-git-workflow/extra1/extra1-what-is-git-and-what-is-github'
} ,
{
text : '后端五:Zeabur 部署' ,
link : '/zh-cn/stage-2/backend/2.5-zeabur-deployment/extra6/extra6-zeabur-what-is-it-and-how-to-deploy-web-applications'
} ,
{
text : '后端六:现代 CLI 开发工具' ,
link : '/zh-cn/stage-2/backend/2.6-modern-cli/extra7/extra7-cli-ai-coding-tools-and-the-principles-of-test-driven-development'
} ,
{
text : '后端七:如何集成 Stripe 等收费系统' ,
link : '/zh-cn/stage-2/backend/2.7-stripe-payment/'
}
]
2026-01-12 12:21:35 +08:00
} ,
{
2026-01-13 20:09:45 +08:00
text : '大作业' ,
collapsed : false ,
items : [
{
text : '大作业 1:构建第一个现代应用程序 - 全栈应用' ,
link : '/zh-cn/stage-2/assignments/2.1-fullstack-app/'
} ,
{
text : '大作业 2:现代前端组件库 + Trae 实战' ,
link : '/zh-cn/stage-2/assignments/2.2-modern-frontend-trae/'
}
]
2026-01-12 12:21:35 +08:00
} ,
{
2026-01-13 20:09:45 +08:00
text : 'AI 能力附录' ,
collapsed : false ,
items : [
{
text : 'AI 一:Dify 入门与知识库集成' ,
link : '/zh-cn/stage-2/ai-capabilities/2.1-dify-knowledge-base/chapter3/chapter3-getting-started-with-dify-and-its-knowledge-base-integration'
} ,
{
text : 'AI 二:学会查询 AI 词典与集成多模态 API' ,
link : '/zh-cn/stage-2/ai-capabilities/2.2-multimodal-api/extra3/extra3-ai-capability-starter-handbook'
}
]
2026-01-12 12:21:35 +08:00
}
2026-01-13 20:09:45 +08:00
] ,
'/zh-cn/stage-3/' : [
{
text : '核心技能' ,
collapsed : false ,
items : [
{
text : '高级一:MCP 与 ClaudeCode Skills' ,
link : '/zh-cn/stage-3/core-skills/3.1-mcp-claudecode-skills/'
} ,
{
text : '高级二:如何让 Coding Tools 长时间工作' ,
link : '/zh-cn/stage-3/core-skills/3.2-long-running-tasks/'
}
]
2026-01-12 12:21:35 +08:00
} ,
{
2026-01-13 20:09:45 +08:00
text : '多平台开发' ,
collapsed : false ,
items : [
{
text : '高级三:如何构建微信小程序' ,
link : '/zh-cn/stage-3/cross-platform/3.3-wechat-miniprogram/'
} ,
{
text : '高级四:如何构建微信小程序(包含后端)' ,
link : '/zh-cn/stage-3/cross-platform/3.4-wechat-miniprogram-backend/'
} ,
{
text : '高级五:如何构建安卓程序' ,
link : '/zh-cn/stage-3/cross-platform/3.5-android-app/'
} ,
{
text : '高级六:如何构建 iOS 程序' ,
link : '/zh-cn/stage-3/cross-platform/3.6-ios-app/'
}
]
2026-01-12 12:21:35 +08:00
} ,
{
2026-01-13 20:09:45 +08:00
text : '个人品牌' ,
collapsed : false ,
items : [
{
text : '高级七:如何构建属于自己的个人网页与学术博客' ,
link : '/zh-cn/stage-3/personal-brand/3.7-personal-website-blog/'
}
]
2026-01-12 12:21:35 +08:00
} ,
{
2026-01-13 20:09:45 +08:00
text : 'AI 能力附录' ,
collapsed : false ,
items : [
{
text : '高级 AI 一:什么是 RAG 以及它如何工作' ,
link : '/zh-cn/stage-3/ai-advanced/3.a1-rag-introduction/extra5-what-is-rag-and-how-does-it-work-and-future'
} ,
{
text : '高级 AI 二:中高级 RAG 与工作流编排 - 以 LangGraph 为例' ,
link : '/zh-cn/stage-3/ai-advanced/3.a2-langgraph-advanced-rag/'
}
]
2026-01-12 12:21:35 +08:00
}
2026-01-13 20:09:45 +08:00
] ,
'/zh-cn/guide/' : [
2026-01-12 12:21:35 +08:00
{
2026-01-13 20:09:45 +08:00
text : '课程指南' ,
items : [ { text : '课程介绍' , link : '/zh-cn/guide/introduction' } ]
2026-01-12 12:21:35 +08:00
}
2026-01-13 20:09:45 +08:00
] ,
'/zh-cn/extra/' : [
{
text : 'Extra 扩展知识(旧版,已迁移到 Stage 2/3) ' ,
items : [
{
text : 'Extra 1: Git & GitHub' ,
link : '/zh-cn/extra/extra1/extra1-what-is-git-and-what-is-github'
} ,
{
text : 'Extra 2: What is API' ,
link : '/zh-cn/extra/extra2/extra2-what-is-api'
} ,
{
text : 'Extra 5: What is RAG' ,
link : '/zh-cn/extra/extra5/extra5-what-is-rag-and-how-does-it-work-and-future'
} ,
{
text : 'Extra 6: Zeabur Deployment' ,
link : '/zh-cn/extra/extra6/extra6-zeabur-what-is-it-and-how-to-deploy-web-applications'
} ,
{
text : 'Extra 7: CLI AI Tools & TDD' ,
link : '/zh-cn/extra/extra7/extra7-cli-ai-coding-tools-and-the-principles-of-test-driven-development'
}
]
2026-01-12 12:21:35 +08:00
}
2026-01-13 20:09:45 +08:00
] ,
'/zh-cn/examples/' : [
{
text : 'Examples 实战案例(旧版,已迁移到 Stage 0/3) ' ,
items : [
{
text : 'Ex 0.1: Snake Game' ,
link : '/zh-cn/examples/example0/example0-1/vibe-coding-tools-snake-game-tutorial'
} ,
{
text : 'Ex 0.2: Build Website with AI' ,
link : '/zh-cn/examples/example0/example0-2/vibe-coding-tools-build-website-with-ai-coding-and-design-agents'
}
]
2026-01-12 12:21:35 +08:00
}
2026-01-13 20:09:45 +08:00
] ,
'/zh-cn/project/' : [
{
text : 'Project 文档(旧版,已迁移到 Stage 2) ' ,
items : [
{
text : '前端四:霍格沃茨画像' ,
link : '/zh-cn/project/chapter4/chapter4-lets-build-hogwarts-portraits'
} ,
{
text : '后端二:Supabase 数据库' ,
link : '/zh-cn/project/chapter5/chapter5-from-database-to-supabase'
} ,
{
text : 'AI 一:Dify & Knowledge Base' ,
link : '/zh-cn/project/chapter3/chapter3-getting-started-with-dify-and-its-knowledge-base-integration'
}
]
2026-01-12 12:21:35 +08:00
}
2026-01-13 20:09:45 +08:00
] ,
'/zh-cn/appendix/' : [
2026-01-12 12:21:35 +08:00
{
2026-01-15 20:10:19 +08:00
text : '人工智能基础' ,
collapsed : false ,
items : [
{ text : '大语言模型' , link : '/zh-cn/appendix/llm-intro' } ,
{ text : '多模态大模型' , link : '/zh-cn/appendix/vlm-intro' } ,
{ text : 'AI 绘画原理' , link : '/zh-cn/appendix/image-gen-intro' } ,
{ text : 'AI 音频模型' , link : '/zh-cn/appendix/audio-intro' } ,
{ text : '提示词工程' , link : '/zh-cn/appendix/prompt-engineering' } ,
{ text : '上下文工程' , link : '/zh-cn/appendix/context-engineering' } ,
{ text : 'Agent 智能体' , link : '/zh-cn/appendix/agent-intro' } ,
{ text : 'AI 能力词典' , link : '/zh-cn/appendix/ai-capability-dictionary' }
]
} ,
{
text : 'Web 基础' ,
collapsed : false ,
items : [
{ text : 'HTML/CSS/JS 基础' , link : '/zh-cn/appendix/web-basics' } ,
{ text : 'URL 到浏览器显示' , link : '/zh-cn/appendix/url-to-browser' }
]
} ,
{
text : '开发基础' ,
collapsed : false ,
2026-01-13 20:09:45 +08:00
items : [
2026-01-15 20:10:19 +08:00
{ text : '终端入门' , link : '/zh-cn/appendix/terminal-intro' } ,
{ text : 'Git 详细介绍' , link : '/zh-cn/appendix/git-intro' } ,
{ text : '计算机网络' , link : '/zh-cn/appendix/computer-networks' } ,
{ text : '部署与上线' , link : '/zh-cn/appendix/deployment' }
2026-01-13 20:09:45 +08:00
]
2026-01-12 12:21:35 +08:00
}
]
}
2026-01-13 20:09:45 +08:00
}
} ,
// 英文
'en-us' : {
label : 'English (US)' ,
lang : 'en-US' ,
link : '/en-us/' ,
title : 'Easy-Vibe Tutorial' ,
2026-01-13 22:51:28 +08:00
description : 'Learn Vibe Coding from Zero to Advanced - Master AI programming with Claude Code, Cursor, and other AI IDE tools' ,
head : getSeoHead ( 'en-us' , 'Easy-Vibe Tutorial' , 'Learn Vibe Coding from Zero to Advanced - Master AI programming with Claude Code, Cursor, and other AI IDE tools' ) ,
2026-01-13 20:09:45 +08:00
themeConfig : {
... commonThemeConfig ,
outline : {
level : [ 1 , 6 ] ,
label : 'On this page'
} ,
nav : [
{ text : 'Home' , link : '/en-us/' } ,
{ text : 'Getting Started' , link : '/en-us/stage-0/0.1-learning-map/' } ,
{ text : 'AI Product Manager' , link : '/en-us/stage-1/1.1-introduction-to-ai-ide/' } ,
{
text : 'Full-Stack Development' ,
link : '/en-us/stage-2/frontend/2.0-lovart-assets/'
} ,
{
text : 'Advanced Development' ,
link : '/en-us/stage-3/core-skills/3.1-mcp-claudecode-skills/'
} ,
{ text : 'Appendix' , link : '/en-us/appendix/ai-capability-dictionary' }
] ,
// TODO: Add English sidebar when content is ready
sidebar : { }
}
} ,
// 日文
'ja-jp' : {
label : '日本語' ,
lang : 'ja-JP' ,
link : '/ja-jp/' ,
title : 'Easy-Vibe チュートリアル' ,
2026-01-13 22:51:28 +08:00
description : 'ゼロから学ぶ Vibe Coding - AIプログラミングを初めから体系的に学習' ,
head : getSeoHead ( 'ja-jp' , 'Easy-Vibe チュートリアル' , 'ゼロから学ぶ Vibe Coding - AIプログラミングを初めから体系的に学習' ) ,
2026-01-13 20:09:45 +08:00
themeConfig : {
... commonThemeConfig ,
outline : {
level : [ 1 , 6 ] ,
label : 'このページの目次'
} ,
nav : [
{ text : 'ホーム' , link : '/ja-jp/' } ,
{ text : '入門' , link : '/ja-jp/stage-0/0.1-learning-map/' } ,
{ text : 'AI プロダクトマネージャー' , link : '/ja-jp/stage-1/1.1-introduction-to-ai-ide/' } ,
{
text : 'フルスタック開発' ,
link : '/ja-jp/stage-2/frontend/2.0-lovart-assets/'
} ,
{
text : '上級開発' ,
link : '/ja-jp/stage-3/core-skills/3.1-mcp-claudecode-skills/'
} ,
{ text : '付録' , link : '/ja-jp/appendix/ai-capability-dictionary' }
] ,
// TODO: Add Japanese sidebar when content is ready
sidebar : { }
}
} ,
'zh-tw' : {
label : '繁體中文' ,
lang : 'zh-TW' ,
link : '/zh-tw/' ,
title : 'Easy-Vibe 教程' ,
2026-01-13 22:51:28 +08:00
description : '從零到一學習 Vibe Coding - 零基礎學會用 AI 編程,掌握 Claude Code、Cursor 等 AI IDE 工具' ,
head : getSeoHead ( 'zh-tw' , 'Easy-Vibe 教程' , '從零到一學習 Vibe Coding - 零基礎學會用 AI 編程,掌握 Claude Code、Cursor 等 AI IDE 工具' ) ,
2026-01-13 20:09:45 +08:00
themeConfig : {
... commonThemeConfig ,
outline : {
level : [ 1 , 6 ] ,
label : '頁面導航'
} ,
nav : [
{ text : '首頁' , link : '/zh-tw/' } ,
{ text : '新手入門' , link : '/zh-tw/stage-0/0.1-learning-map/' } ,
{ text : '產品經理' , link : '/zh-tw/stage-1/1.1-introduction-to-ai-ide/' } ,
{
text : '初中級開發' ,
link : '/zh-tw/stage-2/frontend/2.0-lovart-assets/'
} ,
{
text : '高級開發' ,
link : '/zh-tw/stage-3/core-skills/3.1-mcp-claudecode-skills/'
} ,
{ text : '附錄' , link : '/zh-tw/appendix/ai-capability-dictionary' }
] ,
sidebar : { }
}
2026-01-12 12:21:35 +08:00
} ,
2026-01-13 20:09:45 +08:00
'ko-kr' : {
label : '한국어' ,
lang : 'ko-KR' ,
link : '/ko-kr/' ,
title : 'Easy-Vibe 튜토리얼' ,
2026-01-13 22:51:28 +08:00
description : 'Vibe Coding을 처음부터 체계적으로 학습합니다 - AI 프로그래밍을 처음부터 고급까지' ,
head : getSeoHead ( 'ko-kr' , 'Easy-Vibe 튜토리얼' , 'Vibe Coding을 처음부터 체계적으로 학습합니다 - AI 프로그래밍을 처음부터 고급까지' ) ,
2026-01-13 20:09:45 +08:00
themeConfig : {
... commonThemeConfig ,
outline : {
level : [ 1 , 6 ] ,
label : '페이지 탐색'
} ,
nav : [
{ text : '홈' , link : '/ko-kr/' } ,
{ text : '입문' , link : '/ko-kr/stage-0/0.1-learning-map/' } ,
{ text : 'AI PM' , link : '/ko-kr/stage-1/1.1-introduction-to-ai-ide/' } ,
{
text : '풀스택 개발' ,
link : '/ko-kr/stage-2/frontend/2.0-lovart-assets/'
} ,
{
text : '고급 개발' ,
link : '/ko-kr/stage-3/core-skills/3.1-mcp-claudecode-skills/'
} ,
{ text : '부록' , link : '/ko-kr/appendix/ai-capability-dictionary' }
] ,
sidebar : { }
}
} ,
'es-es' : {
label : 'Español' ,
lang : 'es-ES' ,
link : '/es-es/' ,
title : 'Tutorial de Easy-Vibe' ,
2026-01-13 22:51:28 +08:00
description : 'Aprende Vibe Coding desde cero hasta avanzado - Domina la programación con IA desde el principio' ,
head : getSeoHead ( 'es-es' , 'Tutorial de Easy-Vibe' , 'Aprende Vibe Coding desde cero hasta avanzado - Domina la programación con IA desde el principio' ) ,
2026-01-13 20:09:45 +08:00
themeConfig : {
... commonThemeConfig ,
outline : {
level : [ 1 , 6 ] ,
label : 'Navegación de página'
} ,
nav : [
{ text : 'Inicio' , link : '/es-es/' } ,
{ text : 'Principiante' , link : '/es-es/stage-0/0.1-learning-map/' } ,
{ text : 'PM de IA' , link : '/es-es/stage-1/1.1-introduction-to-ai-ide/' } ,
{
text : 'Desarrollo Full Stack' ,
link : '/es-es/stage-2/frontend/2.0-lovart-assets/'
} ,
{
text : 'Desarrollo Avanzado' ,
link : '/es-es/stage-3/core-skills/3.1-mcp-claudecode-skills/'
} ,
{ text : 'Apéndice' , link : '/es-es/appendix/ai-capability-dictionary' }
] ,
sidebar : { }
}
} ,
'fr-fr' : {
label : 'Français' ,
lang : 'fr-FR' ,
link : '/fr-fr/' ,
title : 'Tutoriel Easy-Vibe' ,
2026-01-13 22:51:28 +08:00
description : 'Apprenez Vibe Coding de zéro à avancé - Maîtrisez la programmation IA du début au niveau avancé' ,
head : getSeoHead ( 'fr-fr' , 'Tutoriel Easy-Vibe' , 'Apprenez Vibe Coding de zéro à avancé - Maîtrisez la programmation IA du début au niveau avancé' ) ,
2026-01-13 20:09:45 +08:00
themeConfig : {
... commonThemeConfig ,
outline : {
level : [ 1 , 6 ] ,
label : 'Navigation de page'
} ,
nav : [
{ text : 'Accueil' , link : '/fr-fr/' } ,
{ text : 'Débutant' , link : '/fr-fr/stage-0/0.1-learning-map/' } ,
{ text : 'PM IA' , link : '/fr-fr/stage-1/1.1-introduction-to-ai-ide/' } ,
{
text : 'Développement Full Stack' ,
link : '/fr-fr/stage-2/frontend/2.0-lovart-assets/'
} ,
{
text : 'Développement Avancé' ,
link : '/fr-fr/stage-3/core-skills/3.1-mcp-claudecode-skills/'
} ,
{ text : 'Annexe' , link : '/fr-fr/appendix/ai-capability-dictionary' }
] ,
sidebar : { }
}
} ,
'de-de' : {
label : 'Deutsch' ,
lang : 'de-DE' ,
link : '/de-de/' ,
title : 'Easy-Vibe Tutorial' ,
2026-01-13 22:51:28 +08:00
description : 'Lernen Sie Vibe Coding von Null bis Fortgeschritten - Meistern Sie die KI-Programmierung von Grund auf' ,
head : getSeoHead ( 'de-de' , 'Easy-Vibe Tutorial' , 'Lernen Sie Vibe Coding von Null bis Fortgeschritten - Meistern Sie die KI-Programmierung von Grund auf' ) ,
2026-01-13 20:09:45 +08:00
themeConfig : {
... commonThemeConfig ,
outline : {
level : [ 1 , 6 ] ,
label : 'Seitennavigation'
} ,
nav : [
{ text : 'Start' , link : '/de-de/' } ,
{ text : 'Einsteiger' , link : '/de-de/stage-0/0.1-learning-map/' } ,
{ text : 'KI-PM' , link : '/de-de/stage-1/1.1-introduction-to-ai-ide/' } ,
{
text : 'Full Stack Entwicklung' ,
link : '/de-de/stage-2/frontend/2.0-lovart-assets/'
} ,
{
text : 'Fortgeschrittene Entwicklung' ,
link : '/de-de/stage-3/core-skills/3.1-mcp-claudecode-skills/'
} ,
{ text : 'Anhang' , link : '/de-de/appendix/ai-capability-dictionary' }
] ,
sidebar : { }
}
} ,
'ar-sa' : {
label : 'العربية' ,
lang : 'ar-SA' ,
link : '/ar-sa/' ,
title : 'دروس Easy-Vibe' ,
2026-01-13 22:51:28 +08:00
description : 'تعلم Vibe Coding من الصفر إلى المتقدم - إتقان البرمجة بالذكاء الاصطناعي من البداية' ,
head : getSeoHead ( 'ar-sa' , 'دروس Easy-Vibe' , 'تعلم Vibe Coding من الصفر إلى المتقدم - إتقان البرمجة بالذكاء الاصطناعي من البداية' ) ,
2026-01-13 20:09:45 +08:00
themeConfig : {
... commonThemeConfig ,
outline : {
level : [ 1 , 6 ] ,
label : 'تنقل الصفحة'
} ,
nav : [
{ text : 'الرئيسية' , link : '/ar-sa/' } ,
{ text : 'المبتدئين' , link : '/ar-sa/stage-0/0.1-learning-map/' } ,
{ text : 'مدير منتج AI' , link : '/ar-sa/stage-1/1.1-introduction-to-ai-ide/' } ,
{
text : 'تطوير Full Stack' ,
link : '/ar-sa/stage-2/frontend/2.0-lovart-assets/'
} ,
{
text : 'تطوير متقدم' ,
link : '/ar-sa/stage-3/core-skills/3.1-mcp-claudecode-skills/'
} ,
{ text : 'ملحق' , link : '/ar-sa/appendix/ai-capability-dictionary' }
] ,
sidebar : { }
}
} ,
'vi-vn' : {
label : 'Tiếng Việt' ,
lang : 'vi-VN' ,
link : '/vi-vn/' ,
title : 'Hướng dẫn Easy-Vibe' ,
2026-01-13 22:51:28 +08:00
description : 'Học Vibe Coding từ cơ bản đến nâng cao - Làm chủ lập trình AI từ cơ bản đến chuyên sâu' ,
head : getSeoHead ( 'vi-vn' , 'Hướng dẫn Easy-Vibe' , 'Học Vibe Coding từ cơ bản đến nâng cao - Làm chủ lập trình AI từ cơ bản đến chuyên sâu' ) ,
2026-01-13 20:09:45 +08:00
themeConfig : {
... commonThemeConfig ,
outline : {
level : [ 1 , 6 ] ,
label : 'Điều hướng trang'
} ,
nav : [
{ text : 'Trang chủ' , link : '/vi-vn/' } ,
{ text : 'Người mới' , link : '/vi-vn/stage-0/0.1-learning-map/' } ,
{ text : 'PM AI' , link : '/vi-vn/stage-1/1.1-introduction-to-ai-ide/' } ,
{
text : 'Phát triển Full Stack' ,
link : '/vi-vn/stage-2/frontend/2.0-lovart-assets/'
} ,
{
text : 'Phát triển Nâng cao' ,
link : '/vi-vn/stage-3/core-skills/3.1-mcp-claudecode-skills/'
} ,
{ text : 'Phụ lục' , link : '/vi-vn/appendix/ai-capability-dictionary' }
] ,
sidebar : { }
}
}
2026-01-12 12:21:35 +08:00
}
} )