Files
test-repo/docs/.vitepress/config.mjs
T
2026-02-24 00:18:09 +08:00

1350 lines
46 KiB
JavaScript
Raw Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
import { defineConfig } from 'vitepress'
import markdownItKatex from 'markdown-it-katex'
// 判断是否是 Vercel 环境, github page 和 vercel 的部署地址相关不一样
const isVercel = process.env.VERCEL === '1' || !!process.env.VERCEL_URL
// 检查是否为 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/')
// 语言映射配置
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
}
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'
},
// socialLinks: [
// { icon: 'github', link: 'https://github.com/datawhalechina/easy-vibe' }
// ],
outline: {
level: [1, 6]
},
footer: {
message:
'<a href="https://beian.miit.gov.cn/" target="_blank">京ICP备2026002630号-1</a> | <a href="https://beian.mps.gov.cn/#/query/webSearch?code=11010602202215" rel="noreferrer" target="_blank">京公网安备11010602202215号</a>',
copyright:
'本作品采用 <a href="http://creativecommons.org/licenses/by-nc-sa/4.0/" target="_blank">知识共享署名-非商业性使用-相同方式共享 4.0 国际许可协议(CC BY-NC-SA 4.0</a> 进行许可'
}
}
const productManagerSidebar = [
{
text: '新手入门',
collapsed: false,
items: [
{ text: '学习地图', link: '/zh-cn/stage-0/0.1-learning-map/' },
{
text: 'AI 时代,会说话就会编程',
link: '/zh-cn/stage-0/0.2-ai-capabilities-through-games/'
}
]
},
{
text: '产品原型实战',
collapsed: false,
items: [
{
text: '学会 AI 编程工具',
link: '/zh-cn/stage-1/1.1-introduction-to-ai-ide/'
},
{
text: '找到好点子',
link: '/zh-cn/stage-1/1.0-finding-great-idea/'
},
{
text: '搭建产品原型',
link: '/zh-cn/stage-1/1.2-building-prototype/'
},
{
text: '接入 AI 能力',
link: '/zh-cn/stage-1/1.3-integrating-ai-capabilities/'
},
{
text: '完整项目实战',
link: '/zh-cn/stage-1/1.4-complete-project-practice/'
}
]
},
{
text: '附录:业务思维',
collapsed: false,
items: [
{
text: '产品思维与方案设计',
link: '/zh-cn/stage-1/appendix-a-product-thinking/'
},
{
text: 'AI 行业应用场景参考 (B端)',
link: '/zh-cn/stage-1/appendix-industry-scenarios/'
},
{
text: 'AI 消费场景灵感参考 (C端)',
link: '/zh-cn/stage-1/appendix-c-consumer-scenarios/'
}
]
},
{
text: '附录:技术方案',
collapsed: false,
items: [
{
text: '写代码时遇到错误怎么办',
link: '/zh-cn/stage-1/appendix-b-common-errors/'
},
{
text: '七款 AI 编程工具对比',
link: '/zh-cn/stage-1/appendix-articles/example0-1/vibe-coding-tools-snake-game-tutorial'
},
{
text: '用设计和编程 Agent 设计网站',
link: '/zh-cn/stage-1/appendix-articles/example0-2/vibe-coding-tools-build-website-with-ai-coding-and-design-agents'
}
]
}
]
export default defineConfig({
markdown: {
config: (md) => {
md.use(markdownItKatex)
}
},
base: base,
ignoreDeadLinks: true,
// 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
})
}
},
// 多语言配置 - 使用 cn/en-us/ja 结构
locales: {
// 中文
'zh-cn': {
label: '简体中文',
lang: 'zh-CN',
link: '/zh-cn/',
title: 'Easy-Vibe 教程',
description:
'从零到一学习 Vibe Coding - 零基础学会用 AI 编程,掌握 Claude Code、Cursor 等 AI IDE 工具',
head: getSeoHead(
'zh-cn',
'Easy-Vibe 教程',
'从零到一学习 Vibe Coding - 零基础学会用 AI 编程,掌握 Claude Code、Cursor 等 AI IDE 工具'
),
themeConfig: {
...commonThemeConfig,
outline: {
level: [1, 6],
label: '页面导航'
},
nav: [
{ text: '首页', link: '/zh-cn/' },
{
text: '零基础入门',
link: '/zh-cn/stage-0/'
},
{
text: '初中级开发',
link: '/zh-cn/stage-2/'
},
{
text: '高级开发',
link: '/zh-cn/stage-3/'
},
{ text: '附录', link: '/zh-cn/appendix/index' }
],
sidebar: {
'/zh-cn/stage-0/': productManagerSidebar,
'/zh-cn/stage-1/': productManagerSidebar,
'/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/'
}
]
},
{
text: '后端与全栈',
collapsed: false,
items: [
{
text: '后端一:什么是 API',
link: '/zh-cn/stage-2/backend/2.1-what-is-api/extra2/'
},
{
text: '后端二:从数据库到 Supabase',
link: '/zh-cn/stage-2/backend/2.2-database-supabase/chapter5/'
},
{
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/'
},
{
text: '后端五:如何部署 Web 应用',
link: '/zh-cn/stage-2/backend/2.5-zeabur-deployment/extra6/'
},
{
text: '后端六:现代 CLI 开发工具',
link: '/zh-cn/stage-2/backend/2.6-modern-cli/extra7/'
},
{
text: '后端七:如何集成 Stripe 等收费系统',
link: '/zh-cn/stage-2/backend/2.7-stripe-payment/'
}
]
},
{
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/'
}
]
},
{
text: 'AI 能力附录',
collapsed: false,
items: [
{
text: 'AI 一:Dify 入门与知识库集成',
link: '/zh-cn/stage-2/ai-capabilities/2.1-dify-knowledge-base/chapter3/'
},
{
text: 'AI 二:学会查询 AI 词典与集成多模态 API',
link: '/zh-cn/stage-2/ai-capabilities/2.2-multimodal-api/extra3/'
}
]
}
],
'/zh-cn/stage-3/': [
{
text: '核心技能',
collapsed: false,
items: [
{
text: '高级一:MCP 与 Claude Code Skills',
link: '/zh-cn/stage-3/core-skills/3.1-mcp-claude-code-skills/'
},
{
text: '高级二:如何让 Coding Tools 长时间工作',
link: '/zh-cn/stage-3/core-skills/3.2-long-running-tasks/'
}
]
},
{
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: '高级五:如何构建安卓程序-compose 原生开发',
link: '/zh-cn/stage-3/cross-platform/3.5-android-app/'
},
{
text: '高级六:如何构建 iOS 程序-swiftUI原生开发',
link: '/zh-cn/stage-3/cross-platform/3.6-ios-app/'
}
]
},
{
text: '个人品牌',
collapsed: false,
items: [
{
text: '高级七:如何构建属于自己的个人网页与学术博客',
link: '/zh-cn/stage-3/personal-brand/3.7-personal-website-blog/'
}
]
},
{
text: 'AI 能力附录',
collapsed: false,
items: [
{
text: '高级 AI 一:什么是 RAG 以及它如何工作',
link: '/zh-cn/stage-3/ai-advanced/3.a1-rag-introduction/'
},
{
text: '高级 AI 二:中高级 RAG 与工作流编排 - 以 LangGraph 为例',
link: '/zh-cn/stage-3/ai-advanced/3.a2-langgraph-advanced-rag/'
}
]
}
],
'/zh-cn/guide/': [
{
text: '课程指南',
items: [{ text: '课程介绍', link: '/zh-cn/guide/introduction' }]
}
],
'/zh-cn/extra/': [
{
text: 'Extra 扩展知识(旧版,已迁移到 Stage 2/3',
items: [
{
text: 'Extra 1: Git & GitHub',
link: '/zh-cn/stage-2/backend/2.4-git-workflow/extra1/'
},
{
text: 'Extra 2: What is API',
link: '/zh-cn/stage-2/backend/2.1-what-is-api/extra2/'
},
{
text: 'Extra 5: What is RAG',
link: '/zh-cn/stage-3/ai-advanced/3.a1-rag-introduction/'
},
{
text: 'Extra 6: Zeabur Deployment',
link: '/zh-cn/stage-2/backend/2.5-zeabur-deployment/extra6/'
},
{
text: 'Extra 7: CLI AI Tools & TDD',
link: '/zh-cn/stage-2/backend/2.6-modern-cli/extra7/'
}
]
}
],
'/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'
}
]
}
],
'/zh-cn/project/': [
{
text: 'Project 文档(旧版,已迁移到 Stage 2',
items: [
{
text: '前端四:霍格沃茨画像',
link: '/zh-cn/stage-2/frontend/2.4-hogwarts-portraits/'
},
{
text: '后端二:Supabase 数据库',
link: '/zh-cn/stage-2/backend/2.2-database-supabase/chapter5/'
},
{
text: 'AI 一:Dify & Knowledge Base',
link: '/zh-cn/stage-2/ai-capabilities/2.1-dify-knowledge-base/chapter3/'
}
]
}
],
'/zh-cn/appendix/': [
{
text: '一、计算机是怎么回事',
collapsed: false,
items: [
{
text: '从晶体管到 CPU',
link: '/zh-cn/appendix/1-computer-fundamentals/transistor-to-cpu'
},
{
text: '操作系统(进程 / 内存 / 文件系统)',
link: '/zh-cn/appendix/1-computer-fundamentals/operating-systems'
},
{
text: '数据的编码、存储与传输',
link: '/zh-cn/appendix/1-computer-fundamentals/data-encoding-storage'
},
{
text: '网络:从输入网址到返回结果的过程',
link: '/zh-cn/appendix/1-computer-fundamentals/computer-networks'
},
{
text: '数据结构',
link: '/zh-cn/appendix/1-computer-fundamentals/data-structures'
},
{
text: '算法思维入门',
link: '/zh-cn/appendix/1-computer-fundamentals/algorithm-thinking'
},
{
text: '编程语言图谱',
link: '/zh-cn/appendix/1-computer-fundamentals/programming-languages'
},
{
text: '类型系统与编译原理入门',
link: '/zh-cn/appendix/1-computer-fundamentals/type-systems-compilers'
}
]
},
{
text: '二、开发环境与工具',
collapsed: false,
items: [
{
text: '集成开发环境 (IDE) 基础',
link: '/zh-cn/appendix/2-development-tools/ide-basics'
},
{
text: '命令行与 Shell 脚本',
link: '/zh-cn/appendix/2-development-tools/command-line-shell'
},
{
text: 'Git:代码的时光机',
link: '/zh-cn/appendix/2-development-tools/git-version-control'
},
{
text: '环境变量与 PATH',
link: '/zh-cn/appendix/2-development-tools/environment-path'
},
{
text: '端口与 localhost',
link: '/zh-cn/appendix/2-development-tools/ports-localhost'
},
{
text: 'SSH 与密钥认证',
link: '/zh-cn/appendix/2-development-tools/ssh-authentication'
},
{
text: '包管理器(npm / pip / cargo',
link: '/zh-cn/appendix/2-development-tools/package-managers'
},
{
text: '调试的艺术',
link: '/zh-cn/appendix/2-development-tools/debugging-art/'
},
{
text: '正则表达式',
link: '/zh-cn/appendix/2-development-tools/regex'
}
]
},
{
text: '三、浏览器与前端',
collapsed: false,
items: [
{
text: 'JavaScript 语言深入',
link: '/zh-cn/appendix/3-browser-and-frontend/javascript-deep-dive'
},
{
text: 'TypeScript:给 JS 加上类型系统',
link: '/zh-cn/appendix/3-browser-and-frontend/typescript'
},
{
text: '前端框架对比(React / Vue / Svelte / Angular',
link: '/zh-cn/appendix/3-browser-and-frontend/frontend-frameworks'
},
{
text: '浏览器是一个操作系统',
link: '/zh-cn/appendix/3-browser-and-frontend/browser-as-os'
},
{
text: '浏览器渲染管道',
link: '/zh-cn/appendix/3-browser-and-frontend/browser-as-os-rendering'
},
{
text: 'HTML / CSS 布局体系',
link: '/zh-cn/appendix/3-browser-and-frontend/html-css-layout'
},
{
text: 'JavaScript 运行时',
link: '/zh-cn/appendix/3-browser-and-frontend/javascript-runtime'
},
{
text: '前端框架的本质',
link: '/zh-cn/appendix/3-browser-and-frontend/frontend-framework-nature'
},
{
text: '状态管理哲学',
link: '/zh-cn/appendix/3-browser-and-frontend/state-management'
},
{
text: '路由与导航',
link: '/zh-cn/appendix/3-browser-and-frontend/routing-navigation'
},
{
text: '图形与动画(Canvas / SVG / WebGL',
link: '/zh-cn/appendix/3-browser-and-frontend/graphics-animation'
},
{
text: '实时通信(WebSocket / SSE',
link: '/zh-cn/appendix/3-browser-and-frontend/realtime-communication'
},
{
text: '网页性能的度量与优化',
link: '/zh-cn/appendix/3-browser-and-frontend/web-performance'
},
{
text: '前端工程化全貌',
link: '/zh-cn/appendix/3-browser-and-frontend/frontend-engineering'
},
{
text: '无障碍与国际化',
link: '/zh-cn/appendix/3-browser-and-frontend/a11n-i18n'
}
]
},
{
text: '四、服务器与后端',
collapsed: false,
items: [
{
text: '后端语言对比(Node.js / Go / Java / Rust',
link: '/zh-cn/appendix/4-server-and-backend/backend-languages'
},
{
text: '客户端语言对比(Swift / Kotlin / Dart',
link: '/zh-cn/appendix/4-server-and-backend/client-languages'
},
{
text: '跨平台方案对比(React Native / Flutter / Electron / Tauri',
link: '/zh-cn/appendix/4-server-and-backend/cross-platform'
},
{
text: 'HTTP 协议',
link: '/zh-cn/appendix/4-server-and-backend/http-protocol'
},
{
text: '一个请求的完整旅程',
link: '/zh-cn/appendix/4-server-and-backend/request-journey'
},
{
text: 'Web 框架的本质',
link: '/zh-cn/appendix/4-server-and-backend/web-frameworks'
},
{
text: 'API 入门',
link: '/zh-cn/appendix/4-server-and-backend/api-intro'
},
{
text: 'API 设计哲学(REST / GraphQL / gRPC',
link: '/zh-cn/appendix/4-server-and-backend/api-design'
},
{
text: '序列化与数据格式',
link: '/zh-cn/appendix/4-server-and-backend/serialization'
},
{
text: '认证与授权体系',
link: '/zh-cn/appendix/4-server-and-backend/auth-authorization'
},
{
text: '并发、异步与多线程',
link: '/zh-cn/appendix/4-server-and-backend/concurrency-async'
},
{
text: '缓存的层次与策略',
link: '/zh-cn/appendix/4-server-and-backend/caching'
},
{
text: '消息队列与事件驱动',
link: '/zh-cn/appendix/4-server-and-backend/message-queues'
},
{
text: '异步任务队列与生产消费模型',
link: '/zh-cn/appendix/4-server-and-backend/async-task-queues'
},
{
text: '限流与背压控制',
link: '/zh-cn/appendix/4-server-and-backend/rate-limiting-backpressure'
},
{
text: '搜索引擎原理',
link: '/zh-cn/appendix/4-server-and-backend/search-engines'
},
{
text: '文件存储与对象存储',
link: '/zh-cn/appendix/4-server-and-backend/file-storage'
},
{
text: '后端分层架构',
link: '/zh-cn/appendix/4-server-and-backend/backend-layered-architecture'
}
]
},
{
text: '五、数据',
collapsed: false,
items: [
{
text: '数据库原理(索引 / 事务 / 查询优化)',
link: '/zh-cn/appendix/5-data/database-fundamentals'
},
{
text: '数据模型全景(文档 / 图 / 时序 / 向量)',
link: '/zh-cn/appendix/5-data/data-models'
},
{
text: '数据埋点与用户行为采集',
link: '/zh-cn/appendix/5-data/data-tracking'
},
{
text: '数据分析基础(统计 / 指标 / 漏斗)',
link: '/zh-cn/appendix/5-data/data-analysis'
},
{
text: 'A/B 测试与实验驱动',
link: '/zh-cn/appendix/5-data/ab-testing'
},
{
text: '数据可视化与仪表盘',
link: '/zh-cn/appendix/5-data/data-visualization'
},
{
text: '数据治理与数据质量',
link: '/zh-cn/appendix/5-data/data-governance'
}
]
},
{
text: '六、架构与系统设计',
collapsed: false,
items: [
{
text: '从单体到微服务的演进',
link: '/zh-cn/appendix/6-architecture-and-system-design/monolith-to-microservices'
},
{
text: '分布式系统的挑战',
link: '/zh-cn/appendix/6-architecture-and-system-design/distributed-systems'
},
{
text: '高可用与容灾',
link: '/zh-cn/appendix/6-architecture-and-system-design/high-availability'
},
{
text: '系统设计方法论',
link: '/zh-cn/appendix/6-architecture-and-system-design/system-design-methodology'
}
]
},
{
text: '七、基础设施与运维',
collapsed: false,
items: [
{
text: 'Linux 基础',
link: '/zh-cn/appendix/7-infrastructure-and-operations/linux-basics'
},
{
text: 'Docker 容器化',
link: '/zh-cn/appendix/7-infrastructure-and-operations/docker-containers'
},
{
text: 'Kubernetes 编排',
link: '/zh-cn/appendix/7-infrastructure-and-operations/kubernetes'
},
{
text: 'CI / CD 自动化',
link: '/zh-cn/appendix/7-infrastructure-and-operations/ci-cd'
},
{
text: '域名、DNS 与 HTTPS',
link: '/zh-cn/appendix/7-infrastructure-and-operations/dns-https'
},
{
text: '负载均衡与网关',
link: '/zh-cn/appendix/7-infrastructure-and-operations/load-balancing-gateway'
},
{
text: '网关与反向代理',
link: '/zh-cn/appendix/7-infrastructure-and-operations/gateway-proxy'
},
{
text: '云平台实战',
link: '/zh-cn/appendix/7-infrastructure-and-operations/cloud-platforms'
},
{
text: 'IAM 权限管理',
link: '/zh-cn/appendix/7-infrastructure-and-operations/cloud-iam'
},
{
text: '对象存储与 CDN',
link: '/zh-cn/appendix/7-infrastructure-and-operations/cloud-storage-cdn'
},
{
text: '基础设施即代码',
link: '/zh-cn/appendix/7-infrastructure-and-operations/infrastructure-as-code'
},
{
text: '监控、日志与告警',
link: '/zh-cn/appendix/7-infrastructure-and-operations/monitoring-logging'
},
{
text: '故障排查与应急响应',
link: '/zh-cn/appendix/7-infrastructure-and-operations/incident-response'
}
]
},
{
text: '八、人工智能',
collapsed: false,
items: [
{
text: 'AI 简史与核心概念',
link: '/zh-cn/appendix/8-artificial-intelligence/ai-history'
},
{
text: '神经网络与深度学习',
link: '/zh-cn/appendix/8-artificial-intelligence/neural-networks'
},
{
text: 'Transformer 与注意力机制',
link: '/zh-cn/appendix/8-artificial-intelligence/transformer-attention'
},
{
text: '大语言模型的工作原理',
link: '/zh-cn/appendix/8-artificial-intelligence/llm-principles'
},
{
text: '提示词工程',
link: '/zh-cn/appendix/8-artificial-intelligence/prompt-engineering'
},
{
text: '上下文工程',
link: '/zh-cn/appendix/8-artificial-intelligence/context-engineering'
},
{
text: '多模态模型(视觉 / 音频 / 视频)',
link: '/zh-cn/appendix/8-artificial-intelligence/multimodal-models'
},
{
text: '图像生成原理',
link: '/zh-cn/appendix/8-artificial-intelligence/image-generation'
},
{
text: '语音合成与识别',
link: '/zh-cn/appendix/8-artificial-intelligence/speech-synthesis-recognition'
},
{
text: 'Embedding 与向量检索',
link: '/zh-cn/appendix/8-artificial-intelligence/embedding-vector-retrieval'
},
{
text: 'RAG 架构',
link: '/zh-cn/appendix/8-artificial-intelligence/rag'
},
{
text: 'AI Agent 与工具调用',
link: '/zh-cn/appendix/8-artificial-intelligence/ai-agents'
},
{
text: 'AI 协议(MCP & A2A',
link: '/zh-cn/appendix/8-artificial-intelligence/ai-protocols'
},
{
text: '模型微调与部署',
link: '/zh-cn/appendix/8-artificial-intelligence/model-finetuning-deployment'
},
{
text: 'AI 原生应用设计',
link: '/zh-cn/appendix/8-artificial-intelligence/ai-native-app-design'
},
{
text: 'AI 能力词典',
link: '/zh-cn/appendix/8-artificial-intelligence/ai-capability-dictionary'
}
]
},
{
text: '九、工程素养',
collapsed: false,
items: [
{
text: '代码质量与重构',
link: '/zh-cn/appendix/9-engineering-excellence/code-quality-refactoring'
},
{
text: '测试策略',
link: '/zh-cn/appendix/9-engineering-excellence/testing-strategies'
},
{
text: '设计模式',
link: '/zh-cn/appendix/9-engineering-excellence/design-patterns'
},
{
text: '安全思维与攻防基础',
link: '/zh-cn/appendix/9-engineering-excellence/security-thinking'
},
{
text: '技术文档写作',
link: '/zh-cn/appendix/9-engineering-excellence/technical-writing'
},
{
text: '开源协作',
link: '/zh-cn/appendix/9-engineering-excellence/open-source-collaboration'
},
{
text: '技术选型方法论',
link: '/zh-cn/appendix/9-engineering-excellence/technology-selection'
}
]
}
]
}
}
},
// 英文
'en-us': {
label: 'English (US)',
lang: 'en-US',
link: '/en-us/',
title: 'Easy-Vibe Tutorial',
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'
),
themeConfig: {
...commonThemeConfig,
outline: {
level: [1, 6],
label: 'On this page'
},
nav: [
{ text: 'Home', link: '/en-us/' },
{
text: 'Novice & PM',
link: '/en-us/stage-0/'
},
{
text: 'Full-Stack Development',
link: '/en-us/stage-2/'
},
{
text: 'Advanced Development',
link: '/en-us/stage-3/'
},
{ text: 'Appendix', link: '/en-us/appendix/' }
],
// TODO: Add English sidebar when content is ready
sidebar: {}
}
},
// 日文
'ja-jp': {
label: '日本語',
lang: 'ja-JP',
link: '/ja-jp/',
title: 'Easy-Vibe チュートリアル',
description:
'ゼロから学ぶ Vibe Coding - AIプログラミングを初めから体系的に学習',
head: getSeoHead(
'ja-jp',
'Easy-Vibe チュートリアル',
'ゼロから学ぶ Vibe Coding - AIプログラミングを初めから体系的に学習'
),
themeConfig: {
...commonThemeConfig,
outline: {
level: [1, 6],
label: 'このページの目次'
},
nav: [
{ text: 'ホーム', link: '/ja-jp/' },
{
text: '初心者とPM',
link: '/ja-jp/stage-0/'
},
{
text: 'フルスタック開発',
link: '/ja-jp/stage-2/'
},
{
text: '上級開発',
link: '/ja-jp/stage-3/'
},
{ text: '付録', link: '/ja-jp/appendix/' }
],
// TODO: Add Japanese sidebar when content is ready
sidebar: {}
}
},
'zh-tw': {
label: '繁體中文',
lang: 'zh-TW',
link: '/zh-tw/',
title: 'Easy-Vibe 教程',
description:
'從零到一學習 Vibe Coding - 零基礎學會用 AI 編程,掌握 Claude Code、Cursor 等 AI IDE 工具',
head: getSeoHead(
'zh-tw',
'Easy-Vibe 教程',
'從零到一學習 Vibe Coding - 零基礎學會用 AI 編程,掌握 Claude Code、Cursor 等 AI IDE 工具'
),
themeConfig: {
...commonThemeConfig,
outline: {
level: [1, 6],
label: '頁面導航'
},
nav: [
{ text: '首頁', link: '/zh-tw/' },
{
text: '新手與產品原型',
link: '/zh-tw/stage-0/'
},
{
text: '初中級開發',
link: '/zh-tw/stage-2/'
},
{
text: '高級開發',
link: '/zh-tw/stage-3/'
},
{ text: '附錄', link: '/zh-tw/appendix/' }
],
sidebar: {}
}
},
'ko-kr': {
label: '한국어',
lang: 'ko-KR',
link: '/ko-kr/',
title: 'Easy-Vibe 튜토리얼',
description:
'Vibe Coding을 처음부터 체계적으로 학습합니다 - AI 프로그래밍을 처음부터 고급까지',
head: getSeoHead(
'ko-kr',
'Easy-Vibe 튜토리얼',
'Vibe Coding을 처음부터 체계적으로 학습합니다 - AI 프로그래밍을 처음부터 고급까지'
),
themeConfig: {
...commonThemeConfig,
outline: {
level: [1, 6],
label: '페이지 탐색'
},
nav: [
{ text: '홈', link: '/ko-kr/' },
{ text: '초보자 & PM', link: '/ko-kr/stage-0/' },
{
text: '풀스택 개발',
link: '/ko-kr/stage-2/'
},
{
text: '고급 개발',
link: '/ko-kr/stage-3/'
},
{ text: '부록', link: '/ko-kr/appendix/' }
],
sidebar: {}
}
},
'es-es': {
label: 'Español',
lang: 'es-ES',
link: '/es-es/',
title: 'Tutorial de Easy-Vibe',
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'
),
themeConfig: {
...commonThemeConfig,
outline: {
level: [1, 6],
label: 'Navegación de página'
},
nav: [
{ text: 'Inicio', link: '/es-es/' },
{
text: 'Principiante y PM',
link: '/es-es/stage-0/'
},
{
text: 'Desarrollo Full Stack',
link: '/es-es/stage-2/'
},
{
text: 'Desarrollo Avanzado',
link: '/es-es/stage-3/'
},
{ text: 'Apéndice', link: '/es-es/appendix/' }
],
sidebar: {}
}
},
'fr-fr': {
label: 'Français',
lang: 'fr-FR',
link: '/fr-fr/',
title: 'Tutoriel Easy-Vibe',
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é'
),
themeConfig: {
...commonThemeConfig,
outline: {
level: [1, 6],
label: 'Navigation de page'
},
nav: [
{ text: 'Accueil', link: '/fr-fr/' },
{ text: 'Débutant & PM', link: '/fr-fr/stage-0/' },
{
text: 'Développement Full Stack',
link: '/fr-fr/stage-2/'
},
{
text: 'Développement Avancé',
link: '/fr-fr/stage-3/'
},
{ text: 'Annexe', link: '/fr-fr/appendix/' }
],
sidebar: {}
}
},
'de-de': {
label: 'Deutsch',
lang: 'de-DE',
link: '/de-de/',
title: 'Easy-Vibe Tutorial',
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'
),
themeConfig: {
...commonThemeConfig,
outline: {
level: [1, 6],
label: 'Seitennavigation'
},
nav: [
{ text: 'Start', link: '/de-de/' },
{ text: 'Anfänger & PM', link: '/de-de/stage-0/' },
{
text: 'Full Stack Entwicklung',
link: '/de-de/stage-2/'
},
{
text: 'Fortgeschrittene Entwicklung',
link: '/de-de/stage-3/'
},
{ text: 'Anhang', link: '/de-de/appendix/' }
],
sidebar: {}
}
},
'ar-sa': {
label: 'العربية',
lang: 'ar-SA',
link: '/ar-sa/',
title: 'دروس Easy-Vibe',
description:
'تعلم Vibe Coding من الصفر إلى المتقدم - إتقان البرمجة بالذكاء الاصطناعي من البداية',
head: getSeoHead(
'ar-sa',
'دروس Easy-Vibe',
'تعلم Vibe Coding من الصفر إلى المتقدم - إتقان البرمجة بالذكاء الاصطناعي من البداية'
),
themeConfig: {
...commonThemeConfig,
outline: {
level: [1, 6],
label: 'تنقل الصفحة'
},
nav: [
{ text: 'الرئيسية', link: '/ar-sa/' },
{
text: 'مبتدأ & PM',
link: '/ar-sa/stage-0/'
},
{
text: 'تطوير Full Stack',
link: '/ar-sa/stage-2/'
},
{
text: 'تطوير متقدم',
link: '/ar-sa/stage-3/'
},
{ text: 'ملحق', link: '/ar-sa/appendix/' }
],
sidebar: {}
}
},
'vi-vn': {
label: 'Tiếng Việt',
lang: 'vi-VN',
link: '/vi-vn/',
title: 'Hướng dẫn Easy-Vibe',
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'
),
themeConfig: {
...commonThemeConfig,
outline: {
level: [1, 6],
label: 'Điều hướng trang'
},
nav: [
{ text: 'Trang chủ', link: '/vi-vn/' },
{
text: 'Người mới & PM',
link: '/vi-vn/stage-0/'
},
{
text: 'Phát triển Full Stack',
link: '/vi-vn/stage-2/'
},
{
text: 'Phát triển Nâng cao',
link: '/vi-vn/stage-3/'
},
{ text: 'Phụ lục', link: '/vi-vn/appendix/' }
],
sidebar: {}
}
}
}
})