From 80609bf277774a1cc38d3f779bd71349c442b844 Mon Sep 17 00:00:00 2001 From: sanbuphy Date: Thu, 2 Apr 2026 13:48:55 +0800 Subject: [PATCH] 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 --- CLAUDE.md | 9 +- README.md | 80 ++-- docs-readme/ar-SA/README.md | 80 ++-- docs-readme/de-DE/README.md | 80 ++-- docs-readme/en-US/README.md | 80 ++-- docs-readme/es-ES/README.md | 80 ++-- docs-readme/fr-FR/README.md | 80 ++-- docs-readme/ja-JP/README.md | 80 ++-- docs-readme/ko-KR/README.md | 80 ++-- docs-readme/vi-VN/README.md | 80 ++-- docs-readme/zh-CN/README.md | 80 ++-- docs-readme/zh-TW/README.md | 80 ++-- docs/.vitepress/config.mjs | 209 +++++----- .../theme/components/HomeFeatures.vue | 156 ++++---- docs/.vitepress/theme/data/relatedArticles.js | 66 ++-- docs/DEPLOYMENT.md | 10 +- docs/ar-sa/index.md | 4 +- docs/ar-sa/stage-0/index.md | 12 +- docs/de-de/index.md | 4 +- docs/de-de/stage-0/index.md | 12 +- docs/en/index.md | 2 +- docs/en/stage-0/index.md | 161 -------- .../ai-capabilities-through-games}/index.md | 24 +- .../index.md | 42 +- .../index.md | 0 .../index.md | 0 .../index.md | 70 ++-- .../index.md | 64 +-- .../learning-map}/index.md | 0 .../index.md | 198 +++++----- .../index.md | 22 +- .../index.md | 0 .../index.md | 6 +- .../index.md | 128 +++--- .../index.md | 38 +- .../{2.6-modern-cli => modern-cli}/index.md | 52 +-- .../index.md | 0 .../index.md | 66 ++-- .../index.md | 24 +- .../index.md | 74 ++-- .../index.md | 30 +- .../index.md | 0 .../index.md | 110 +++--- .../index.md | 0 .../index.md | 0 .../{2.2-ui-design => ui-design}/index.md | 0 docs/en/stage-2/index.md | 34 +- .../index.md | 0 .../index.md | 30 +- docs/en/stage-3/core-skills/basics/index.md | 2 +- docs/en/stage-3/core-skills/workflow/index.md | 4 +- .../{3.5-android-app => android-app}/index.md | 108 ++--- .../index.md | 50 +-- .../index.md | 16 +- .../index.md | 20 +- .../{3.6-ios-app => ios-app}/index.md | 92 ++--- .../index.md | 24 +- .../index.md | 2 +- .../index.md | 22 +- .../index.md | 46 +-- .../index.md | 0 .../index.md | 74 ++-- docs/en/stage-3/index.md | 28 +- .../index.md | 106 ++--- docs/es-es/index.md | 4 +- docs/es-es/stage-0/index.md | 12 +- docs/fr-fr/index.md | 4 +- docs/fr-fr/stage-0/index.md | 12 +- docs/ja-jp/index.md | 4 +- docs/ja-jp/stage-0/index.md | 12 +- docs/ja-jp/stage-2/index.md | 24 +- docs/ko-kr/index.md | 4 +- docs/ko-kr/stage-0/index.md | 12 +- docs/public/sitemap.xml | 374 +++++++++--------- docs/vi-vn/index.md | 4 +- docs/vi-vn/stage-0/index.md | 12 +- docs/zh-cn/guide/introduction.md | 18 +- docs/zh-cn/index.md | 2 +- docs/zh-cn/stage-0/index.md | 161 -------- .../images/1767350588191.png | Bin .../images/image1.png | Bin .../images/image10.png | Bin .../images/image11.png | Bin .../images/image12.png | Bin .../images/image13.png | Bin .../images/image14.png | Bin .../images/image15.png | Bin .../images/image16.png | Bin .../images/image17.png | Bin .../images/image18.png | Bin .../images/image19.png | Bin .../images/image2.png | Bin .../images/image20.png | Bin .../images/image21.png | Bin .../images/image22.png | Bin .../images/image23.png | Bin .../images/image24.png | Bin .../images/image25.png | Bin .../images/image26.png | Bin .../images/image27.png | Bin .../images/image28.png | Bin .../images/image29.png | Bin .../images/image3.png | Bin .../images/image30.png | Bin .../images/image31.png | Bin .../images/image32.png | Bin .../images/image33.png | Bin .../images/image34.png | Bin .../images/image35.png | Bin .../images/image36.png | Bin .../images/image37.png | Bin .../images/image38.png | Bin .../images/image39.png | Bin .../images/image4.png | Bin .../images/image40.png | Bin .../images/image41.png | Bin .../images/image42.png | Bin .../images/image43.png | Bin .../images/image44.png | Bin .../images/image45.png | Bin .../images/image46.png | Bin .../images/image47.png | Bin .../images/image48.png | Bin .../images/image49.png | Bin .../images/image5.png | Bin .../images/image50.png | Bin .../images/image51.png | Bin .../images/image52.png | Bin .../images/image53.png | Bin .../images/image54.png | Bin .../images/image55.png | Bin .../images/image56.png | Bin .../images/image57.png | Bin .../images/image58.png | Bin .../images/image6.png | Bin .../images/image7.png | Bin .../images/image9.png | Bin .../images/index-2026-01-07-18-25-03.png | Bin .../images/index-2026-01-07-18-34-03.png | Bin .../images/index-2026-01-07-18-35-11.png | Bin .../ai-capabilities-through-games}/index.md | 2 +- .../images/index-2026-01-14-14-25-56.png | Bin .../images/index-2026-01-14-14-28-44.png | Bin .../images/index-2026-01-14-14-30-00.png | Bin .../images/index-2026-01-14-14-31-41.png | Bin .../images/index-2026-01-14-14-33-03.png | Bin .../images/index-2026-01-14-14-35-53.png | Bin .../images/index-2026-01-14-14-38-11.png | Bin .../images/index-2026-01-14-14-50-34.png | Bin .../images/index-2026-01-14-15-01-16.png | Bin .../images/index-2026-01-14-15-05-16.png | Bin .../images/index-2026-01-14-15-13-12.png | Bin .../images/index-2026-01-14-15-15-18.png | Bin .../images/index-2026-01-14-15-17-55.png | Bin .../images/index-2026-01-14-15-23-40.png | Bin .../images/index-2026-01-14-15-23-53.png | Bin .../images/index-2026-01-14-15-30-30.png | Bin .../images/index-2026-01-14-15-31-23.png | Bin .../images/index-2026-01-14-15-50-05.png | Bin .../images/index-2026-01-14-15-57-14.png | Bin .../images/index-2026-01-14-16-12-56.png | Bin .../index.md | 4 +- .../index.md | 2 +- .../index.md | 0 .../images/image.png | Bin .../images/image40.png | Bin .../images/index-2026-01-20-13-57-41.png | Bin .../images/index-2026-01-20-13-58-13.png | Bin .../images/index-2026-01-20-13-58-32.png | Bin .../images/index-2026-01-20-13-58-56.png | Bin .../images/index-2026-01-20-13-59-31.png | Bin .../images/index-2026-01-20-14-16-48.png | Bin .../images/index-2026-01-20-14-23-23.png | Bin .../images/index-2026-01-20-14-26-35.png | Bin .../images/index-2026-01-20-14-43-10.png | Bin .../images/index-2026-01-20-14-43-30.png | Bin .../images/index-2026-01-20-14-46-17.png | Bin .../images/index-2026-01-20-14-46-29.png | Bin .../images/index-2026-01-20-14-46-33.png | Bin .../images/index-2026-01-20-14-48-27.png | Bin .../images/index-2026-01-20-14-48-41.png | Bin .../images/index-2026-01-20-15-05-04.png | Bin .../images/index-2026-01-20-15-07-44.png | Bin .../images/index-2026-01-20-15-34-36.png | Bin .../images/index-2026-01-20-15-35-41.png | Bin .../images/index-2026-01-20-15-52-56.png | Bin .../images/index-2026-01-20-23-12-07.png | Bin .../images/index-2026-01-20-23-12-22.png | Bin .../images/index-2026-01-20-23-12-30.png | Bin .../images/index-2026-01-20-23-12-43.png | Bin .../images/index-2026-01-20-23-13-01.png | Bin .../images/index-2026-01-20-23-13-11.png | Bin .../images/index-2026-01-20-23-14-10.png | Bin .../images/index-2026-01-20-23-15-17.png | Bin .../images/index-2026-01-20-23-15-38.png | Bin .../images/index-2026-01-20-23-15-50.png | Bin .../images/index-2026-01-20-23-21-13.png | Bin .../images/index-2026-01-20-23-23-34.png | Bin .../images/index-2026-01-20-23-23-42.png | Bin .../index.md | 2 +- .../images/image1.png | Bin .../images/image10.png | Bin .../images/image11.png | Bin .../images/image12.png | Bin .../images/image13.png | Bin .../images/image14.png | Bin .../images/image15.png | Bin .../images/image16.png | Bin .../images/image17.png | Bin .../images/image18.png | Bin .../images/image19.png | Bin .../images/image2.png | Bin .../images/image20.png | Bin .../images/image21.png | Bin .../images/image22.png | Bin .../images/image3.png | Bin .../images/image32.webp | Bin .../images/image4.png | Bin .../images/image5.png | Bin .../images/image6.png | Bin .../images/image7.png | Bin .../images/image8.png | Bin .../images/image9.png | Bin .../images/index-2026-01-09-10-26-33.png | Bin .../images/index-2026-01-09-10-27-13.png | Bin .../images/index-2026-01-09-10-29-12.png | Bin .../images/index-2026-01-09-10-30-51.png | Bin .../images/index-2026-01-09-10-33-37.png | Bin .../images/index-2026-01-09-10-37-39.png | Bin .../images/index-2026-01-09-10-42-53.png | Bin .../images/index-2026-01-09-10-44-36.png | Bin .../images/index-2026-01-09-10-49-33.png | Bin .../images/index-2026-01-09-10-50-31.png | Bin .../images/index-2026-01-09-10-52-55.png | Bin .../images/index-2026-01-09-10-53-24.png | Bin .../images/index-2026-01-09-11-00-57.png | Bin .../images/index-2026-01-09-11-35-51.png | Bin .../images/index-2026-02-12-14-14-51.png | Bin .../images/index-2026-02-12-14-15-29.png | Bin .../index.md | 4 +- .../learning-map}/index.md | 2 +- .../Log in.yml | 0 .../Love Loop.yml | 0 .../images/image1.png | Bin .../images/image10.png | Bin .../images/image11.png | Bin .../images/image12.png | Bin .../images/image13.png | Bin .../images/image14.png | Bin .../images/image15.png | Bin .../images/image16.png | Bin .../images/image17.png | Bin .../images/image18.png | Bin .../images/image19.png | Bin .../images/image2.png | Bin .../images/image20.png | Bin .../images/image21.png | Bin .../images/image22.png | Bin .../images/image23.png | Bin .../images/image24.png | Bin .../images/image25.png | Bin .../images/image26.png | Bin .../images/image27.png | Bin .../images/image28.png | Bin .../images/image29.png | Bin .../images/image3.png | Bin .../images/image30.png | Bin .../images/image31.png | Bin .../images/image32.png | Bin .../images/image33.png | Bin .../images/image34.png | Bin .../images/image35.png | Bin .../images/image36.png | Bin .../images/image37.png | Bin .../images/image38.png | Bin .../images/image39.png | Bin .../images/image4.png | Bin .../images/image40.png | Bin .../images/image41.png | Bin .../images/image42.png | Bin .../images/image43.png | Bin .../images/image44.png | Bin .../images/image45.png | Bin .../images/image46.png | Bin .../images/image47.png | Bin .../images/image48.png | Bin .../images/image49.png | Bin .../images/image5.png | Bin .../images/image50.png | Bin .../images/image51.png | Bin .../images/image52.png | Bin .../images/image53.png | Bin .../images/image54.png | Bin .../images/image55.png | Bin .../images/image56.png | Bin .../images/image57.png | Bin .../images/image58.png | Bin .../images/image59.png | Bin .../images/image6.png | Bin .../images/image60.png | Bin .../images/image61.png | Bin .../images/image62.png | Bin .../images/image63.png | Bin .../images/image64.png | Bin .../images/image65.png | Bin .../images/image66.png | Bin .../images/image67.png | Bin .../images/image68.png | Bin .../images/image69.png | Bin .../images/image7.png | Bin .../images/image70.png | Bin .../images/image71.png | Bin .../images/image72.png | Bin .../images/image73.png | Bin .../images/image74.png | Bin .../images/image75.png | Bin .../images/image76.png | Bin .../images/image77.png | Bin .../images/image78.png | Bin .../images/image79.png | Bin .../images/image8.png | Bin .../images/image80.png | Bin .../images/image81.png | Bin .../images/image82.png | Bin .../images/image83.png | Bin .../images/image84.png | Bin .../images/image85.png | Bin .../images/image86.png | Bin .../images/image87.png | Bin .../images/image88.png | Bin .../images/image89.png | Bin .../images/image9.png | Bin .../images/image90.png | Bin .../images/image91.png | Bin .../images/image92.png | Bin .../images/image93.png | Bin .../images/image94.png | Bin .../images/image95.png | Bin .../images/image96.png | Bin .../images/image97.png | Bin .../images/image98.png | Bin .../index.md | 2 +- .../copywriting-platform-supabase/index.md | 48 +-- .../custom-dify-agent-platform/index.md | 22 +- .../exam-management-express/index.md | 26 +- .../assignments/modern-landing-page/index.md | 32 +- .../movie-recommendation-springboot/index.md | 20 +- .../simple-grocery-microservices/index.md | 20 +- .../traffic-data-visualization-go/index.md | 20 +- .../travel-planning-agent-platform/index.md | 20 +- .../index.md | 6 +- .../images/image1.png | Bin .../images/image10.png | Bin .../images/image11.png | Bin .../images/image12.png | Bin .../images/image13.png | Bin .../images/image14.png | Bin .../images/image15.png | Bin .../images/image16.png | Bin .../images/image17.png | Bin .../images/image18.png | Bin .../images/image19.png | Bin .../images/image2.png | Bin .../images/image20.png | Bin .../images/image21.png | Bin .../images/image22.png | Bin .../images/image23.png | Bin .../images/image24.png | Bin .../images/image25.png | Bin .../images/image26.png | Bin .../images/image27.png | Bin .../images/image28.png | Bin .../images/image29.png | Bin .../images/image3.png | Bin .../images/image30.png | Bin .../images/image31.png | Bin .../images/image32.png | Bin .../images/image33.png | Bin .../images/image34.png | Bin .../images/image35.png | Bin .../images/image36.png | Bin .../images/image37.png | Bin .../images/image38.png | Bin .../images/image39.png | Bin .../images/image4.png | Bin .../images/image40.png | Bin .../images/image41.png | Bin .../images/image42.png | Bin .../images/image43.png | Bin .../images/image44.png | Bin .../images/image45.png | Bin .../images/image46.png | Bin .../images/image47.png | Bin .../images/image48.png | Bin .../images/image49.png | Bin .../images/image5.png | Bin .../images/image50.png | Bin .../images/image51.png | Bin .../images/image52.png | Bin .../images/image53.png | Bin .../images/image54.png | Bin .../images/image55.png | Bin .../images/image56.png | Bin .../images/image57.png | Bin .../images/image58.png | Bin .../images/image59.png | Bin .../images/image6.png | Bin .../images/image60.png | Bin .../images/image61.png | Bin .../images/image62.png | Bin .../images/image63.png | Bin .../images/image64.png | Bin .../images/image65.png | Bin .../images/image7.png | Bin .../images/image8.png | Bin .../images/image9.png | Bin .../index.md | 0 .../images/image1.png | Bin .../images/image10.png | Bin .../images/image11.png | Bin .../images/image12.png | Bin .../images/image13.png | Bin .../images/image14.png | Bin .../images/image15.png | Bin .../images/image16.png | Bin .../images/image17.png | Bin .../images/image18.png | Bin .../images/image19.png | Bin .../images/image2.png | Bin .../images/image20.png | Bin .../images/image21.png | Bin .../images/image22.png | Bin .../images/image23.png | Bin .../images/image24.png | Bin .../images/image25.png | Bin .../images/image3.png | Bin .../images/image4.png | Bin .../images/image5.png | Bin .../images/image6.png | Bin .../images/image7.png | Bin .../images/image8.png | Bin .../images/image9.png | Bin .../index.md | 0 .../images/image1.png | Bin .../images/image10.png | Bin .../images/image11.png | Bin .../images/image12.png | Bin .../images/image13.png | Bin .../images/image14.png | Bin .../images/image15.png | Bin .../images/image16.png | Bin .../images/image17.png | Bin .../images/image18.png | Bin .../images/image19.png | Bin .../images/image2.png | Bin .../images/image20.png | Bin .../images/image21.png | Bin .../images/image22.png | Bin .../images/image23.png | Bin .../images/image24.png | Bin .../images/image25.png | Bin .../images/image26.png | Bin .../images/image27.png | Bin .../images/image28.png | Bin .../images/image29.png | Bin .../images/image3.png | Bin .../images/image30.png | Bin .../images/image31.png | Bin .../images/image4.png | Bin .../images/image5.png | Bin .../images/image6.png | Bin .../images/image7.png | Bin .../images/image8.png | Bin .../images/image9.png | Bin .../{2.6-modern-cli => modern-cli}/index.md | 0 .../index.md | 6 +- .../images/image1.png | Bin .../images/image10.png | Bin .../images/image11.png | Bin .../images/image12.png | Bin .../images/image13.png | Bin .../images/image14.png | Bin .../images/image15.png | Bin .../images/image16.png | Bin .../images/image17.png | Bin .../images/image18.png | Bin .../images/image19.png | Bin .../images/image2.png | Bin .../images/image20.png | Bin .../images/image21.png | Bin .../images/image22.png | Bin .../images/image23.png | Bin .../images/image24.png | Bin .../images/image25.png | Bin .../images/image26.png | Bin .../images/image27.png | Bin .../images/image28.png | Bin .../images/image29.png | Bin .../images/image3.png | Bin .../images/image30.png | Bin .../images/image31.png | Bin .../images/image32.png | Bin .../images/image33.png | Bin .../images/image34.png | Bin .../images/image35.png | Bin .../images/image36.png | Bin .../images/image4.png | Bin .../images/image5.png | Bin .../images/image6.png | Bin .../images/image7.png | Bin .../images/image8.png | Bin .../images/image9.png | Bin .../index.md | 0 .../images/image42.png | Bin .../images/image43.png | Bin .../images/image44.png | Bin .../images/image45.png | Bin .../images/image46.png | Bin .../images/image47.png | Bin .../images/image48.png | Bin .../images/image49.png | Bin .../images/image50.png | Bin .../index.md | 6 +- .../images/image10.png | Bin .../images/image11.png | Bin .../images/image12.png | Bin .../images/image13.png | Bin .../images/image14.png | Bin .../images/image15.png | Bin .../images/image16.png | Bin .../images/image17.png | Bin .../images/image18.png | Bin .../images/image19.png | Bin .../images/image20.png | Bin .../images/image21.png | Bin .../images/image22.png | Bin .../images/image23.png | Bin .../images/image24.png | Bin .../images/image25.png | Bin .../images/image26.png | Bin .../images/image27.png | Bin .../images/image28.png | Bin .../images/image29.png | Bin .../images/image30.png | Bin .../images/image31.png | Bin .../images/image32.png | Bin .../images/image33.png | Bin .../images/image34.png | Bin .../images/image35.png | Bin .../images/image36.png | Bin .../images/image37.png | Bin .../images/image38.png | Bin .../images/image39.png | Bin .../images/image40.png | Bin .../images/image41.png | Bin .../images/image42.png | Bin .../images/image43.png | Bin .../images/image44.png | Bin .../images/image45.png | Bin .../images/image46.png | Bin .../images/image47.png | Bin .../images/image48.png | Bin .../images/image49.png | Bin .../images/image50.png | Bin .../images/image8.png | Bin .../images/image9.png | Bin .../index.md | 8 +- .../images/image1.png | Bin .../images/image10.png | Bin .../images/image11.png | Bin .../images/image12.png | Bin .../images/image13.png | Bin .../images/image14.png | Bin .../images/image15.png | Bin .../images/image16.png | Bin .../images/image17.png | Bin .../images/image18.png | Bin .../images/image19.png | Bin .../images/image2.png | Bin .../images/image20.png | Bin .../images/image21.png | Bin .../images/image22.png | Bin .../images/image23.png | Bin .../images/image24.png | Bin .../images/image25.png | Bin .../images/image26.png | Bin .../images/image27.png | Bin .../images/image28.png | Bin .../images/image29.png | Bin .../images/image3.png | Bin .../images/image30.png | Bin .../images/image31.png | Bin .../images/image32.png | Bin .../images/image33.png | Bin .../images/image34.png | Bin .../images/image35.png | Bin .../images/image36.png | Bin .../images/image37.png | Bin .../images/image38.png | Bin .../images/image39.png | Bin .../images/image4.png | Bin .../images/image40.png | Bin .../images/image41.png | Bin .../images/image42.png | Bin .../images/image43.png | Bin .../images/image44.png | Bin .../images/image45.png | Bin .../images/image46.png | Bin .../images/image47.png | Bin .../images/image48.png | Bin .../images/image49.png | Bin .../images/image5.png | Bin .../images/image50.png | Bin .../images/image51.png | Bin .../images/image52.png | Bin .../images/image53.png | Bin .../images/image54.png | Bin .../images/image55.png | Bin .../images/image6.png | Bin .../images/image7.png | Bin .../images/image8.png | Bin .../images/image9.png | Bin .../index.md | 6 +- .../index.md | 0 .../images/image1.png | Bin .../images/image10.png | Bin .../images/image11.png | Bin .../images/image12.png | Bin .../images/image13.png | Bin .../images/image14.png | Bin .../images/image15.png | Bin .../images/image16.png | Bin .../images/image17.png | Bin .../images/image18.png | Bin .../images/image19.png | Bin .../images/image2.png | Bin .../images/image20.png | Bin .../images/image21.png | Bin .../images/image22.png | Bin .../images/image23.png | Bin .../images/image24.png | Bin .../images/image25.png | Bin .../images/image26.png | Bin .../images/image27.png | Bin .../images/image28.png | Bin .../images/image29.png | Bin .../images/image3.png | Bin .../images/image30.png | Bin .../images/image31.png | Bin .../images/image32.png | Bin .../images/image33.png | Bin .../images/image34.png | Bin .../images/image35.png | Bin .../images/image36.png | Bin .../images/image37.png | Bin .../images/image38.png | Bin .../images/image39.png | Bin .../images/image4.png | Bin .../images/image40.png | Bin .../images/image41.png | Bin .../images/image42.png | Bin .../images/image43.png | Bin .../images/image44.png | Bin .../images/image45.png | Bin .../images/image46.png | Bin .../images/image47.png | Bin .../images/image48.png | Bin .../images/image49.png | Bin .../images/image5.png | Bin .../images/image50.png | Bin .../images/image51.png | Bin .../images/image52.png | Bin .../images/image53.png | Bin .../images/image54.png | Bin .../images/image55.png | Bin .../images/image56.png | Bin .../images/image57.png | Bin .../images/image58.png | Bin .../images/image6.png | Bin .../images/image7.png | Bin .../images/image8.png | Bin .../images/image9.png | Bin .../index.md | 2 +- .../index.md | 0 .../index.md | 0 .../{2.2-ui-design => ui-design}/index.md | 0 docs/zh-cn/stage-2/index.md | 30 +- .../index.md | 0 .../index.md | 0 .../images/image1.png | Bin .../images/image10.png | Bin .../images/image11.png | Bin .../images/image12.png | Bin .../images/image13.png | Bin .../images/image14.png | Bin .../images/image15.png | Bin .../images/image2.png | Bin .../images/image3.png | Bin .../images/image4.png | Bin .../images/image5.png | Bin .../images/image6.png | Bin .../images/image7.png | Bin .../images/image8.png | Bin .../images/image9.png | Bin .../index.md | 0 .../zh-cn/stage-3/core-skills/basics/index.md | 2 +- .../stage-3/core-skills/workflow/index.md | 4 +- .../images/image1.png | Bin .../images/image10.png | Bin .../images/image11.png | Bin .../images/image12.png | Bin .../images/image13.png | Bin .../images/image14.png | Bin .../images/image15.png | Bin .../images/image16.png | Bin .../images/image17.png | Bin .../images/image18.png | Bin .../images/image19.png | Bin .../images/image2.png | Bin .../images/image20.png | Bin .../images/image21.png | Bin .../images/image22.png | Bin .../images/image23.png | Bin .../images/image24.png | Bin .../images/image25.png | Bin .../images/image26.png | Bin .../images/image27.png | Bin .../images/image28.png | Bin .../images/image29.png | Bin .../images/image3.png | Bin .../images/image30.png | Bin .../images/image31.png | Bin .../images/image32.png | Bin .../images/image33.png | Bin .../images/image34.png | Bin .../images/image35.png | Bin .../images/image36.png | Bin .../images/image37.png | Bin .../images/image38.png | Bin .../images/image39.png | Bin .../images/image4.png | Bin .../images/image40.png | Bin .../images/image41.png | Bin .../images/image42.png | Bin .../images/image43.png | Bin .../images/image44.png | Bin .../images/image45.png | Bin .../images/image46.png | Bin .../images/image47.png | Bin .../images/image48.png | Bin .../images/image49.png | Bin .../images/image5.png | Bin .../images/image50.png | Bin .../images/image51.png | Bin .../images/image52.png | Bin .../images/image53.png | Bin .../images/image54.png | Bin .../images/image55.png | Bin .../images/image56.png | Bin .../images/image57.png | Bin .../images/image58.png | Bin .../images/image59.png | Bin .../images/image6.png | Bin .../images/image60.png | Bin .../images/image61.png | Bin .../images/image62.png | Bin .../images/image63.png | Bin .../images/image64.png | Bin .../images/image65.png | Bin .../images/image7.png | Bin .../images/image8.png | Bin .../images/image9.png | Bin .../{3.5-android-app => android-app}/index.md | 0 .../images/image1.png | Bin .../images/image10-1.png | Bin .../images/image10.png | Bin .../images/image2.png | Bin .../images/image2b.png | Bin .../images/image3.png | Bin .../images/image4.png | Bin .../images/image5.png | Bin .../images/image6-1.png | Bin .../images/image6-2.png | Bin .../images/image6-3.png | Bin .../images/image7.png | Bin .../images/image8.png | Bin .../images/image9.png | Bin .../index.md | 0 .../index.md | 16 +- .../images/image1.png | Bin .../images/image10.png | Bin .../images/image2.png | Bin .../images/image3.png | Bin .../images/image4.png | Bin .../images/image5.png | Bin .../images/image6.png | Bin .../images/image7.png | Bin .../images/image8.png | Bin .../images/image9.png | Bin .../index.md | 0 .../images/image1.png | Bin .../images/image10.png | Bin .../images/image11.png | Bin .../images/image12.png | Bin .../images/image13.png | Bin .../images/image14.png | Bin .../images/image15.png | Bin .../images/image16.png | Bin .../images/image17.png | Bin .../images/image18.png | Bin .../images/image19.png | Bin .../images/image2.png | Bin .../images/image20.png | Bin .../images/image21.png | Bin .../images/image22.png | Bin .../images/image23.png | Bin .../images/image24.png | Bin .../images/image25.png | Bin .../images/image26.png | Bin .../images/image27.png | Bin .../images/image28.png | Bin .../images/image29.png | Bin .../images/image3.png | Bin .../images/image30.png | Bin .../images/image31.png | Bin .../images/image32.png | Bin .../images/image33.png | Bin .../images/image34.png | Bin .../images/image35.png | Bin .../images/image36.png | Bin .../images/image37.png | Bin .../images/image38.png | Bin .../images/image39.png | Bin .../images/image4.png | Bin .../images/image40.png | Bin .../images/image41.png | Bin .../images/image42.png | Bin .../images/image43.png | Bin .../images/image44.png | Bin .../images/image45.png | Bin .../images/image46.png | Bin .../images/image47.png | Bin .../images/image5.png | Bin .../images/image6.png | Bin .../images/image7.png | Bin .../images/image8.png | Bin .../images/image9.png | Bin .../{3.6-ios-app => ios-app}/index.md | 0 .../index.md | 0 .../images/icon-192.png | Bin .../images/icon-512.png | Bin .../images/image0.png | Bin .../images/image1.png | Bin .../images/image10.png | Bin .../images/image11.png | Bin .../images/image2.png | Bin .../images/image3.png | Bin .../images/image4.png | Bin .../images/image5.png | Bin .../images/image6.png | Bin .../images/image7.png | Bin .../images/image8.png | Bin .../images/image9.png | Bin .../index.md | 0 .../index.md | 0 .../images/image1.png | Bin .../images/image10.png | Bin .../images/image11.png | Bin .../images/image2.png | Bin .../images/image3.png | Bin .../images/image4.png | Bin .../images/image5.png | Bin .../images/image6.png | Bin .../images/image7.png | Bin .../images/image8.png | Bin .../images/image9.png | Bin .../index.md | 0 .../index.md | 0 .../images/image1.png | Bin .../images/image10.png | Bin .../images/image11.png | Bin .../images/image12.png | Bin .../images/image13.png | Bin .../images/image14.png | Bin .../images/image15.png | Bin .../images/image16.png | Bin .../images/image17.png | Bin .../images/image18.png | Bin .../images/image19.png | Bin .../images/image2.png | Bin .../images/image20.png | Bin .../images/image21.png | Bin .../images/image22.png | Bin .../images/image23.png | Bin .../images/image24.png | Bin .../images/image25.png | Bin .../images/image26.png | Bin .../images/image27.png | Bin .../images/image28.png | Bin .../images/image29.png | Bin .../images/image3.png | Bin .../images/image30.png | Bin .../images/image31.png | Bin .../images/image32.png | Bin .../images/image33.png | Bin .../images/image34.png | Bin .../images/image35.png | Bin .../images/image36.png | Bin .../images/image37.png | Bin .../images/image38.png | Bin .../images/image39.png | Bin .../images/image4.png | Bin .../images/image40.png | Bin .../images/image41.png | Bin .../images/image42.png | Bin .../images/image5.png | Bin .../images/image6.png | Bin .../images/image7.png | Bin .../images/image8.png | Bin .../images/image9.png | Bin .../index.md | 0 docs/zh-cn/stage-3/index.md | 28 +- .../images/image1.png | Bin .../images/image10.png | Bin .../images/image11.png | Bin .../images/image12.png | Bin .../images/image13.png | Bin .../images/image14.png | Bin .../images/image15.png | Bin .../images/image16.png | Bin .../images/image17.png | Bin .../images/image18.png | Bin .../images/image19.png | Bin .../images/image2.png | Bin .../images/image20.png | Bin .../images/image21.png | Bin .../images/image22.png | Bin .../images/image23.png | Bin .../images/image24.png | Bin .../images/image25.png | Bin .../images/image26.png | Bin .../images/image27.png | Bin .../images/image28.png | Bin .../images/image29.png | Bin .../images/image3.png | Bin .../images/image30.png | Bin .../images/image31.png | Bin .../images/image32.png | Bin .../images/image33.png | Bin .../images/image34.png | Bin .../images/image35.png | Bin .../images/image36.png | Bin .../images/image37.png | Bin .../images/image38.png | Bin .../images/image39.png | Bin .../images/image4.png | Bin .../images/image40.png | Bin .../images/image41.png | Bin .../images/image42.png | Bin .../images/image43.png | Bin .../images/image44.png | Bin .../images/image45.png | Bin .../images/image46.png | Bin .../images/image47.png | Bin .../images/image48.png | Bin .../images/image49.png | Bin .../images/image5.png | Bin .../images/image50.png | Bin .../images/image51.png | Bin .../images/image52.png | Bin .../images/image53.png | Bin .../images/image54.png | Bin .../images/image55.png | Bin .../images/image56.png | Bin .../images/image57.png | Bin .../images/image6.png | Bin .../images/image7.png | Bin .../images/image8.png | Bin .../images/image9.png | Bin .../index.md | 0 docs/zh-tw/index.md | 4 +- docs/zh-tw/stage-0/index.md | 12 +- scripts/generate-sitemap.mjs | 2 +- 983 files changed, 1902 insertions(+), 2246 deletions(-) delete mode 100644 docs/en/stage-0/index.md rename docs/en/{stage-0/0.2-ai-capabilities-through-games => stage-1/ai-capabilities-through-games}/index.md (97%) rename docs/en/stage-1/{1.2-building-prototype => building-prototype}/index.md (94%) rename docs/en/stage-1/{1.4-complete-project-practice => complete-project-practice}/index.md (100%) rename docs/en/stage-1/{1.0-finding-great-idea => finding-great-idea}/index.md (100%) rename docs/en/stage-1/{1.3-integrating-ai-capabilities => integrating-ai-capabilities}/index.md (91%) rename docs/en/stage-1/{1.1-introduction-to-ai-ide => introduction-to-ai-ide}/index.md (96%) rename docs/en/{stage-0/0.1-learning-map => stage-1/learning-map}/index.md (100%) rename docs/en/stage-2/ai-capabilities/{2.1-dify-knowledge-base => dify-knowledge-base}/index.md (89%) rename docs/en/stage-2/assignments/{2.1-fullstack-app => fullstack-app}/index.md (94%) rename docs/en/stage-2/assignments/{2.2-modern-frontend-trae => modern-frontend-trae}/index.md (100%) rename docs/en/stage-2/backend/{2.3-ai-interface-code => ai-interface-code}/index.md (97%) rename docs/en/stage-2/backend/{2.2-database-supabase => database-supabase}/index.md (94%) rename docs/en/stage-2/backend/{2.4-git-workflow => git-workflow}/index.md (88%) rename docs/en/stage-2/backend/{2.6-modern-cli => modern-cli}/index.md (95%) rename docs/en/stage-2/backend/{2.7-stripe-payment => stripe-payment}/index.md (100%) rename docs/en/stage-2/backend/{2.5-zeabur-deployment => zeabur-deployment}/index.md (87%) rename docs/en/stage-2/frontend/{2.6-design-to-code => design-to-code}/index.md (94%) rename docs/en/stage-2/frontend/{2.1-figma-mastergo => figma-mastergo}/index.md (87%) rename docs/en/stage-2/frontend/{2.5-hogwarts-portraits => hogwarts-portraits}/index.md (95%) rename docs/en/stage-2/frontend/{2.4-llm-skills-beautiful => llm-skills-beautiful}/index.md (100%) rename docs/en/stage-2/frontend/{2.0-lovart-assets => lovart-assets}/index.md (92%) rename docs/en/stage-2/frontend/{2.7-modern-component-library => modern-component-library}/index.md (100%) rename docs/en/stage-2/frontend/{2.3-multi-product-ui => multi-product-ui}/index.md (100%) rename docs/en/stage-2/frontend/{2.2-ui-design => ui-design}/index.md (100%) rename docs/en/stage-3/ai-advanced/{3.a2-langgraph-advanced-rag => langgraph-advanced-rag}/index.md (100%) rename docs/en/stage-3/ai-advanced/{3.a1-rag-introduction => rag-introduction}/index.md (98%) rename docs/en/stage-3/cross-platform/{3.5-android-app => android-app}/index.md (88%) rename docs/en/stage-3/cross-platform/{3.9-browser-ai-extension => browser-ai-extension}/index.md (92%) rename docs/en/stage-3/cross-platform/{3.1-choose-platform => choose-platform}/index.md (98%) rename docs/en/stage-3/cross-platform/{3.10-electron-voice-to-text => electron-voice-to-text}/index.md (96%) rename docs/en/stage-3/cross-platform/{3.6-ios-app => ios-app}/index.md (88%) rename docs/en/stage-3/cross-platform/{3.11-nft-minting => nft-minting}/index.md (95%) rename docs/en/stage-3/cross-platform/{3.8-pwa-local-app => pwa-local-app}/index.md (99%) rename docs/en/stage-3/cross-platform/{3.13-qt-industrial-hmi => qt-industrial-hmi}/index.md (97%) rename docs/en/stage-3/cross-platform/{3.12-vscode-extension => vscode-extension}/index.md (95%) rename docs/en/stage-3/cross-platform/{3.4-wechat-miniprogram-backend => wechat-miniprogram-backend}/index.md (100%) rename docs/en/stage-3/cross-platform/{3.3-wechat-miniprogram => wechat-miniprogram}/index.md (88%) rename docs/en/stage-3/personal-brand/{3.7-personal-website-blog => personal-website-blog}/index.md (91%) delete mode 100644 docs/zh-cn/stage-0/index.md rename docs/zh-cn/{stage-0/0.2-ai-capabilities-through-games => stage-1/ai-capabilities-through-games}/images/1767350588191.png (100%) rename docs/zh-cn/{stage-0/0.2-ai-capabilities-through-games => stage-1/ai-capabilities-through-games}/images/image1.png (100%) rename docs/zh-cn/{stage-0/0.2-ai-capabilities-through-games => stage-1/ai-capabilities-through-games}/images/image10.png (100%) rename docs/zh-cn/{stage-0/0.2-ai-capabilities-through-games => stage-1/ai-capabilities-through-games}/images/image11.png (100%) rename docs/zh-cn/{stage-0/0.2-ai-capabilities-through-games => stage-1/ai-capabilities-through-games}/images/image12.png (100%) rename docs/zh-cn/{stage-0/0.2-ai-capabilities-through-games => stage-1/ai-capabilities-through-games}/images/image13.png (100%) rename docs/zh-cn/{stage-0/0.2-ai-capabilities-through-games => stage-1/ai-capabilities-through-games}/images/image14.png (100%) rename docs/zh-cn/{stage-0/0.2-ai-capabilities-through-games => stage-1/ai-capabilities-through-games}/images/image15.png (100%) rename docs/zh-cn/{stage-0/0.2-ai-capabilities-through-games => stage-1/ai-capabilities-through-games}/images/image16.png (100%) rename docs/zh-cn/{stage-0/0.2-ai-capabilities-through-games => stage-1/ai-capabilities-through-games}/images/image17.png (100%) rename docs/zh-cn/{stage-0/0.2-ai-capabilities-through-games => stage-1/ai-capabilities-through-games}/images/image18.png (100%) rename docs/zh-cn/{stage-0/0.2-ai-capabilities-through-games => stage-1/ai-capabilities-through-games}/images/image19.png (100%) rename docs/zh-cn/{stage-0/0.2-ai-capabilities-through-games => stage-1/ai-capabilities-through-games}/images/image2.png (100%) rename docs/zh-cn/{stage-0/0.2-ai-capabilities-through-games => stage-1/ai-capabilities-through-games}/images/image20.png (100%) rename docs/zh-cn/{stage-0/0.2-ai-capabilities-through-games => stage-1/ai-capabilities-through-games}/images/image21.png (100%) rename docs/zh-cn/{stage-0/0.2-ai-capabilities-through-games => stage-1/ai-capabilities-through-games}/images/image22.png (100%) rename docs/zh-cn/{stage-0/0.2-ai-capabilities-through-games => stage-1/ai-capabilities-through-games}/images/image23.png (100%) rename docs/zh-cn/{stage-0/0.2-ai-capabilities-through-games => stage-1/ai-capabilities-through-games}/images/image24.png (100%) rename docs/zh-cn/{stage-0/0.2-ai-capabilities-through-games => stage-1/ai-capabilities-through-games}/images/image25.png (100%) rename docs/zh-cn/{stage-0/0.2-ai-capabilities-through-games => stage-1/ai-capabilities-through-games}/images/image26.png (100%) rename docs/zh-cn/{stage-0/0.2-ai-capabilities-through-games => stage-1/ai-capabilities-through-games}/images/image27.png (100%) rename docs/zh-cn/{stage-0/0.2-ai-capabilities-through-games => stage-1/ai-capabilities-through-games}/images/image28.png (100%) rename docs/zh-cn/{stage-0/0.2-ai-capabilities-through-games => stage-1/ai-capabilities-through-games}/images/image29.png (100%) rename docs/zh-cn/{stage-0/0.2-ai-capabilities-through-games => stage-1/ai-capabilities-through-games}/images/image3.png (100%) rename docs/zh-cn/{stage-0/0.2-ai-capabilities-through-games => stage-1/ai-capabilities-through-games}/images/image30.png (100%) rename docs/zh-cn/{stage-0/0.2-ai-capabilities-through-games => stage-1/ai-capabilities-through-games}/images/image31.png (100%) rename docs/zh-cn/{stage-0/0.2-ai-capabilities-through-games => stage-1/ai-capabilities-through-games}/images/image32.png (100%) rename docs/zh-cn/{stage-0/0.2-ai-capabilities-through-games => stage-1/ai-capabilities-through-games}/images/image33.png (100%) rename docs/zh-cn/{stage-0/0.2-ai-capabilities-through-games => stage-1/ai-capabilities-through-games}/images/image34.png (100%) rename docs/zh-cn/{stage-0/0.2-ai-capabilities-through-games => stage-1/ai-capabilities-through-games}/images/image35.png (100%) rename docs/zh-cn/{stage-0/0.2-ai-capabilities-through-games => stage-1/ai-capabilities-through-games}/images/image36.png (100%) rename docs/zh-cn/{stage-0/0.2-ai-capabilities-through-games => stage-1/ai-capabilities-through-games}/images/image37.png (100%) rename docs/zh-cn/{stage-0/0.2-ai-capabilities-through-games => stage-1/ai-capabilities-through-games}/images/image38.png (100%) rename docs/zh-cn/{stage-0/0.2-ai-capabilities-through-games => stage-1/ai-capabilities-through-games}/images/image39.png (100%) rename docs/zh-cn/{stage-0/0.2-ai-capabilities-through-games => stage-1/ai-capabilities-through-games}/images/image4.png (100%) rename docs/zh-cn/{stage-0/0.2-ai-capabilities-through-games => stage-1/ai-capabilities-through-games}/images/image40.png (100%) rename docs/zh-cn/{stage-0/0.2-ai-capabilities-through-games => stage-1/ai-capabilities-through-games}/images/image41.png (100%) rename docs/zh-cn/{stage-0/0.2-ai-capabilities-through-games => stage-1/ai-capabilities-through-games}/images/image42.png (100%) rename docs/zh-cn/{stage-0/0.2-ai-capabilities-through-games => stage-1/ai-capabilities-through-games}/images/image43.png (100%) rename docs/zh-cn/{stage-0/0.2-ai-capabilities-through-games => stage-1/ai-capabilities-through-games}/images/image44.png (100%) rename docs/zh-cn/{stage-0/0.2-ai-capabilities-through-games => stage-1/ai-capabilities-through-games}/images/image45.png (100%) rename docs/zh-cn/{stage-0/0.2-ai-capabilities-through-games => stage-1/ai-capabilities-through-games}/images/image46.png (100%) rename docs/zh-cn/{stage-0/0.2-ai-capabilities-through-games => stage-1/ai-capabilities-through-games}/images/image47.png (100%) rename docs/zh-cn/{stage-0/0.2-ai-capabilities-through-games => stage-1/ai-capabilities-through-games}/images/image48.png (100%) rename docs/zh-cn/{stage-0/0.2-ai-capabilities-through-games => stage-1/ai-capabilities-through-games}/images/image49.png (100%) rename docs/zh-cn/{stage-0/0.2-ai-capabilities-through-games => stage-1/ai-capabilities-through-games}/images/image5.png (100%) rename docs/zh-cn/{stage-0/0.2-ai-capabilities-through-games => stage-1/ai-capabilities-through-games}/images/image50.png (100%) rename docs/zh-cn/{stage-0/0.2-ai-capabilities-through-games => stage-1/ai-capabilities-through-games}/images/image51.png (100%) rename docs/zh-cn/{stage-0/0.2-ai-capabilities-through-games => stage-1/ai-capabilities-through-games}/images/image52.png (100%) rename docs/zh-cn/{stage-0/0.2-ai-capabilities-through-games => stage-1/ai-capabilities-through-games}/images/image53.png (100%) rename docs/zh-cn/{stage-0/0.2-ai-capabilities-through-games => stage-1/ai-capabilities-through-games}/images/image54.png (100%) rename docs/zh-cn/{stage-0/0.2-ai-capabilities-through-games => stage-1/ai-capabilities-through-games}/images/image55.png (100%) rename docs/zh-cn/{stage-0/0.2-ai-capabilities-through-games => stage-1/ai-capabilities-through-games}/images/image56.png (100%) rename docs/zh-cn/{stage-0/0.2-ai-capabilities-through-games => stage-1/ai-capabilities-through-games}/images/image57.png (100%) rename docs/zh-cn/{stage-0/0.2-ai-capabilities-through-games => stage-1/ai-capabilities-through-games}/images/image58.png (100%) rename docs/zh-cn/{stage-0/0.2-ai-capabilities-through-games => stage-1/ai-capabilities-through-games}/images/image6.png (100%) rename docs/zh-cn/{stage-0/0.2-ai-capabilities-through-games => stage-1/ai-capabilities-through-games}/images/image7.png (100%) rename docs/zh-cn/{stage-0/0.2-ai-capabilities-through-games => stage-1/ai-capabilities-through-games}/images/image9.png (100%) rename docs/zh-cn/{stage-0/0.2-ai-capabilities-through-games => stage-1/ai-capabilities-through-games}/images/index-2026-01-07-18-25-03.png (100%) rename docs/zh-cn/{stage-0/0.2-ai-capabilities-through-games => stage-1/ai-capabilities-through-games}/images/index-2026-01-07-18-34-03.png (100%) rename docs/zh-cn/{stage-0/0.2-ai-capabilities-through-games => stage-1/ai-capabilities-through-games}/images/index-2026-01-07-18-35-11.png (100%) rename docs/zh-cn/{stage-0/0.2-ai-capabilities-through-games => stage-1/ai-capabilities-through-games}/index.md (99%) rename docs/zh-cn/stage-1/{1.2-building-prototype => building-prototype}/images/index-2026-01-14-14-25-56.png (100%) rename docs/zh-cn/stage-1/{1.2-building-prototype => building-prototype}/images/index-2026-01-14-14-28-44.png (100%) rename docs/zh-cn/stage-1/{1.2-building-prototype => building-prototype}/images/index-2026-01-14-14-30-00.png (100%) rename docs/zh-cn/stage-1/{1.2-building-prototype => building-prototype}/images/index-2026-01-14-14-31-41.png (100%) rename docs/zh-cn/stage-1/{1.2-building-prototype => building-prototype}/images/index-2026-01-14-14-33-03.png (100%) rename docs/zh-cn/stage-1/{1.2-building-prototype => building-prototype}/images/index-2026-01-14-14-35-53.png (100%) rename docs/zh-cn/stage-1/{1.2-building-prototype => building-prototype}/images/index-2026-01-14-14-38-11.png (100%) rename docs/zh-cn/stage-1/{1.2-building-prototype => building-prototype}/images/index-2026-01-14-14-50-34.png (100%) rename docs/zh-cn/stage-1/{1.2-building-prototype => building-prototype}/images/index-2026-01-14-15-01-16.png (100%) rename docs/zh-cn/stage-1/{1.2-building-prototype => building-prototype}/images/index-2026-01-14-15-05-16.png (100%) rename docs/zh-cn/stage-1/{1.2-building-prototype => building-prototype}/images/index-2026-01-14-15-13-12.png (100%) rename docs/zh-cn/stage-1/{1.2-building-prototype => building-prototype}/images/index-2026-01-14-15-15-18.png (100%) rename docs/zh-cn/stage-1/{1.2-building-prototype => building-prototype}/images/index-2026-01-14-15-17-55.png (100%) rename docs/zh-cn/stage-1/{1.2-building-prototype => building-prototype}/images/index-2026-01-14-15-23-40.png (100%) rename docs/zh-cn/stage-1/{1.2-building-prototype => building-prototype}/images/index-2026-01-14-15-23-53.png (100%) rename docs/zh-cn/stage-1/{1.2-building-prototype => building-prototype}/images/index-2026-01-14-15-30-30.png (100%) rename docs/zh-cn/stage-1/{1.2-building-prototype => building-prototype}/images/index-2026-01-14-15-31-23.png (100%) rename docs/zh-cn/stage-1/{1.2-building-prototype => building-prototype}/images/index-2026-01-14-15-50-05.png (100%) rename docs/zh-cn/stage-1/{1.2-building-prototype => building-prototype}/images/index-2026-01-14-15-57-14.png (100%) rename docs/zh-cn/stage-1/{1.2-building-prototype => building-prototype}/images/index-2026-01-14-16-12-56.png (100%) rename docs/zh-cn/stage-1/{1.2-building-prototype => building-prototype}/index.md (99%) rename docs/zh-cn/stage-1/{1.4-complete-project-practice => complete-project-practice}/index.md (99%) rename docs/zh-cn/stage-1/{1.0-finding-great-idea => finding-great-idea}/index.md (100%) rename docs/zh-cn/stage-1/{1.3-integrating-ai-capabilities => integrating-ai-capabilities}/images/image.png (100%) rename docs/zh-cn/stage-1/{1.3-integrating-ai-capabilities => integrating-ai-capabilities}/images/image40.png (100%) rename docs/zh-cn/stage-1/{1.3-integrating-ai-capabilities => integrating-ai-capabilities}/images/index-2026-01-20-13-57-41.png (100%) rename docs/zh-cn/stage-1/{1.3-integrating-ai-capabilities => integrating-ai-capabilities}/images/index-2026-01-20-13-58-13.png (100%) rename docs/zh-cn/stage-1/{1.3-integrating-ai-capabilities => integrating-ai-capabilities}/images/index-2026-01-20-13-58-32.png (100%) rename docs/zh-cn/stage-1/{1.3-integrating-ai-capabilities => integrating-ai-capabilities}/images/index-2026-01-20-13-58-56.png (100%) rename docs/zh-cn/stage-1/{1.3-integrating-ai-capabilities => integrating-ai-capabilities}/images/index-2026-01-20-13-59-31.png (100%) rename docs/zh-cn/stage-1/{1.3-integrating-ai-capabilities => integrating-ai-capabilities}/images/index-2026-01-20-14-16-48.png (100%) rename docs/zh-cn/stage-1/{1.3-integrating-ai-capabilities => integrating-ai-capabilities}/images/index-2026-01-20-14-23-23.png (100%) rename docs/zh-cn/stage-1/{1.3-integrating-ai-capabilities => integrating-ai-capabilities}/images/index-2026-01-20-14-26-35.png (100%) rename docs/zh-cn/stage-1/{1.3-integrating-ai-capabilities => integrating-ai-capabilities}/images/index-2026-01-20-14-43-10.png (100%) rename docs/zh-cn/stage-1/{1.3-integrating-ai-capabilities => integrating-ai-capabilities}/images/index-2026-01-20-14-43-30.png (100%) rename docs/zh-cn/stage-1/{1.3-integrating-ai-capabilities => integrating-ai-capabilities}/images/index-2026-01-20-14-46-17.png (100%) rename docs/zh-cn/stage-1/{1.3-integrating-ai-capabilities => integrating-ai-capabilities}/images/index-2026-01-20-14-46-29.png (100%) rename docs/zh-cn/stage-1/{1.3-integrating-ai-capabilities => integrating-ai-capabilities}/images/index-2026-01-20-14-46-33.png (100%) rename docs/zh-cn/stage-1/{1.3-integrating-ai-capabilities => integrating-ai-capabilities}/images/index-2026-01-20-14-48-27.png (100%) rename docs/zh-cn/stage-1/{1.3-integrating-ai-capabilities => integrating-ai-capabilities}/images/index-2026-01-20-14-48-41.png (100%) rename docs/zh-cn/stage-1/{1.3-integrating-ai-capabilities => integrating-ai-capabilities}/images/index-2026-01-20-15-05-04.png (100%) rename docs/zh-cn/stage-1/{1.3-integrating-ai-capabilities => integrating-ai-capabilities}/images/index-2026-01-20-15-07-44.png (100%) rename docs/zh-cn/stage-1/{1.3-integrating-ai-capabilities => integrating-ai-capabilities}/images/index-2026-01-20-15-34-36.png (100%) rename docs/zh-cn/stage-1/{1.3-integrating-ai-capabilities => integrating-ai-capabilities}/images/index-2026-01-20-15-35-41.png (100%) rename docs/zh-cn/stage-1/{1.3-integrating-ai-capabilities => integrating-ai-capabilities}/images/index-2026-01-20-15-52-56.png (100%) rename docs/zh-cn/stage-1/{1.3-integrating-ai-capabilities => integrating-ai-capabilities}/images/index-2026-01-20-23-12-07.png (100%) rename docs/zh-cn/stage-1/{1.3-integrating-ai-capabilities => integrating-ai-capabilities}/images/index-2026-01-20-23-12-22.png (100%) rename docs/zh-cn/stage-1/{1.3-integrating-ai-capabilities => integrating-ai-capabilities}/images/index-2026-01-20-23-12-30.png (100%) rename docs/zh-cn/stage-1/{1.3-integrating-ai-capabilities => integrating-ai-capabilities}/images/index-2026-01-20-23-12-43.png (100%) rename docs/zh-cn/stage-1/{1.3-integrating-ai-capabilities => integrating-ai-capabilities}/images/index-2026-01-20-23-13-01.png (100%) rename docs/zh-cn/stage-1/{1.3-integrating-ai-capabilities => integrating-ai-capabilities}/images/index-2026-01-20-23-13-11.png (100%) rename docs/zh-cn/stage-1/{1.3-integrating-ai-capabilities => integrating-ai-capabilities}/images/index-2026-01-20-23-14-10.png (100%) rename docs/zh-cn/stage-1/{1.3-integrating-ai-capabilities => integrating-ai-capabilities}/images/index-2026-01-20-23-15-17.png (100%) rename docs/zh-cn/stage-1/{1.3-integrating-ai-capabilities => integrating-ai-capabilities}/images/index-2026-01-20-23-15-38.png (100%) rename docs/zh-cn/stage-1/{1.3-integrating-ai-capabilities => integrating-ai-capabilities}/images/index-2026-01-20-23-15-50.png (100%) rename docs/zh-cn/stage-1/{1.3-integrating-ai-capabilities => integrating-ai-capabilities}/images/index-2026-01-20-23-21-13.png (100%) rename docs/zh-cn/stage-1/{1.3-integrating-ai-capabilities => integrating-ai-capabilities}/images/index-2026-01-20-23-23-34.png (100%) rename docs/zh-cn/stage-1/{1.3-integrating-ai-capabilities => integrating-ai-capabilities}/images/index-2026-01-20-23-23-42.png (100%) rename docs/zh-cn/stage-1/{1.3-integrating-ai-capabilities => integrating-ai-capabilities}/index.md (99%) rename docs/zh-cn/stage-1/{1.1-introduction-to-ai-ide => introduction-to-ai-ide}/images/image1.png (100%) rename docs/zh-cn/stage-1/{1.1-introduction-to-ai-ide => introduction-to-ai-ide}/images/image10.png (100%) rename docs/zh-cn/stage-1/{1.1-introduction-to-ai-ide => introduction-to-ai-ide}/images/image11.png (100%) rename docs/zh-cn/stage-1/{1.1-introduction-to-ai-ide => introduction-to-ai-ide}/images/image12.png (100%) rename docs/zh-cn/stage-1/{1.1-introduction-to-ai-ide => introduction-to-ai-ide}/images/image13.png (100%) rename docs/zh-cn/stage-1/{1.1-introduction-to-ai-ide => introduction-to-ai-ide}/images/image14.png (100%) rename docs/zh-cn/stage-1/{1.1-introduction-to-ai-ide => introduction-to-ai-ide}/images/image15.png (100%) rename docs/zh-cn/stage-1/{1.1-introduction-to-ai-ide => introduction-to-ai-ide}/images/image16.png (100%) rename docs/zh-cn/stage-1/{1.1-introduction-to-ai-ide => introduction-to-ai-ide}/images/image17.png (100%) rename docs/zh-cn/stage-1/{1.1-introduction-to-ai-ide => introduction-to-ai-ide}/images/image18.png (100%) rename docs/zh-cn/stage-1/{1.1-introduction-to-ai-ide => introduction-to-ai-ide}/images/image19.png (100%) rename docs/zh-cn/stage-1/{1.1-introduction-to-ai-ide => introduction-to-ai-ide}/images/image2.png (100%) rename docs/zh-cn/stage-1/{1.1-introduction-to-ai-ide => introduction-to-ai-ide}/images/image20.png (100%) rename docs/zh-cn/stage-1/{1.1-introduction-to-ai-ide => introduction-to-ai-ide}/images/image21.png (100%) rename docs/zh-cn/stage-1/{1.1-introduction-to-ai-ide => introduction-to-ai-ide}/images/image22.png (100%) rename docs/zh-cn/stage-1/{1.1-introduction-to-ai-ide => introduction-to-ai-ide}/images/image3.png (100%) rename docs/zh-cn/stage-1/{1.1-introduction-to-ai-ide => introduction-to-ai-ide}/images/image32.webp (100%) rename docs/zh-cn/stage-1/{1.1-introduction-to-ai-ide => introduction-to-ai-ide}/images/image4.png (100%) rename docs/zh-cn/stage-1/{1.1-introduction-to-ai-ide => introduction-to-ai-ide}/images/image5.png (100%) rename docs/zh-cn/stage-1/{1.1-introduction-to-ai-ide => introduction-to-ai-ide}/images/image6.png (100%) rename docs/zh-cn/stage-1/{1.1-introduction-to-ai-ide => introduction-to-ai-ide}/images/image7.png (100%) rename docs/zh-cn/stage-1/{1.1-introduction-to-ai-ide => introduction-to-ai-ide}/images/image8.png (100%) rename docs/zh-cn/stage-1/{1.1-introduction-to-ai-ide => introduction-to-ai-ide}/images/image9.png (100%) rename docs/zh-cn/stage-1/{1.1-introduction-to-ai-ide => introduction-to-ai-ide}/images/index-2026-01-09-10-26-33.png (100%) rename docs/zh-cn/stage-1/{1.1-introduction-to-ai-ide => introduction-to-ai-ide}/images/index-2026-01-09-10-27-13.png (100%) rename docs/zh-cn/stage-1/{1.1-introduction-to-ai-ide => introduction-to-ai-ide}/images/index-2026-01-09-10-29-12.png (100%) rename docs/zh-cn/stage-1/{1.1-introduction-to-ai-ide => introduction-to-ai-ide}/images/index-2026-01-09-10-30-51.png (100%) rename docs/zh-cn/stage-1/{1.1-introduction-to-ai-ide => introduction-to-ai-ide}/images/index-2026-01-09-10-33-37.png (100%) rename docs/zh-cn/stage-1/{1.1-introduction-to-ai-ide => introduction-to-ai-ide}/images/index-2026-01-09-10-37-39.png (100%) rename docs/zh-cn/stage-1/{1.1-introduction-to-ai-ide => introduction-to-ai-ide}/images/index-2026-01-09-10-42-53.png (100%) rename docs/zh-cn/stage-1/{1.1-introduction-to-ai-ide => introduction-to-ai-ide}/images/index-2026-01-09-10-44-36.png (100%) rename docs/zh-cn/stage-1/{1.1-introduction-to-ai-ide => introduction-to-ai-ide}/images/index-2026-01-09-10-49-33.png (100%) rename docs/zh-cn/stage-1/{1.1-introduction-to-ai-ide => introduction-to-ai-ide}/images/index-2026-01-09-10-50-31.png (100%) rename docs/zh-cn/stage-1/{1.1-introduction-to-ai-ide => introduction-to-ai-ide}/images/index-2026-01-09-10-52-55.png (100%) rename docs/zh-cn/stage-1/{1.1-introduction-to-ai-ide => introduction-to-ai-ide}/images/index-2026-01-09-10-53-24.png (100%) rename docs/zh-cn/stage-1/{1.1-introduction-to-ai-ide => introduction-to-ai-ide}/images/index-2026-01-09-11-00-57.png (100%) rename docs/zh-cn/stage-1/{1.1-introduction-to-ai-ide => introduction-to-ai-ide}/images/index-2026-01-09-11-35-51.png (100%) rename docs/zh-cn/stage-1/{1.1-introduction-to-ai-ide => introduction-to-ai-ide}/images/index-2026-02-12-14-14-51.png (100%) rename docs/zh-cn/stage-1/{1.1-introduction-to-ai-ide => introduction-to-ai-ide}/images/index-2026-02-12-14-15-29.png (100%) rename docs/zh-cn/stage-1/{1.1-introduction-to-ai-ide => introduction-to-ai-ide}/index.md (99%) rename docs/zh-cn/{stage-0/0.1-learning-map => stage-1/learning-map}/index.md (99%) rename docs/zh-cn/stage-2/ai-capabilities/{2.1-dify-knowledge-base => dify-knowledge-base}/Log in.yml (100%) rename docs/zh-cn/stage-2/ai-capabilities/{2.1-dify-knowledge-base => dify-knowledge-base}/Love Loop.yml (100%) rename docs/zh-cn/stage-2/ai-capabilities/{2.1-dify-knowledge-base => dify-knowledge-base}/images/image1.png (100%) rename docs/zh-cn/stage-2/ai-capabilities/{2.1-dify-knowledge-base => dify-knowledge-base}/images/image10.png (100%) rename docs/zh-cn/stage-2/ai-capabilities/{2.1-dify-knowledge-base => dify-knowledge-base}/images/image11.png (100%) rename docs/zh-cn/stage-2/ai-capabilities/{2.1-dify-knowledge-base => dify-knowledge-base}/images/image12.png (100%) rename docs/zh-cn/stage-2/ai-capabilities/{2.1-dify-knowledge-base => dify-knowledge-base}/images/image13.png (100%) rename docs/zh-cn/stage-2/ai-capabilities/{2.1-dify-knowledge-base => dify-knowledge-base}/images/image14.png (100%) rename docs/zh-cn/stage-2/ai-capabilities/{2.1-dify-knowledge-base => dify-knowledge-base}/images/image15.png (100%) rename docs/zh-cn/stage-2/ai-capabilities/{2.1-dify-knowledge-base => dify-knowledge-base}/images/image16.png (100%) rename docs/zh-cn/stage-2/ai-capabilities/{2.1-dify-knowledge-base => dify-knowledge-base}/images/image17.png (100%) rename docs/zh-cn/stage-2/ai-capabilities/{2.1-dify-knowledge-base => dify-knowledge-base}/images/image18.png (100%) rename docs/zh-cn/stage-2/ai-capabilities/{2.1-dify-knowledge-base => dify-knowledge-base}/images/image19.png (100%) rename docs/zh-cn/stage-2/ai-capabilities/{2.1-dify-knowledge-base => dify-knowledge-base}/images/image2.png (100%) rename docs/zh-cn/stage-2/ai-capabilities/{2.1-dify-knowledge-base => dify-knowledge-base}/images/image20.png (100%) rename docs/zh-cn/stage-2/ai-capabilities/{2.1-dify-knowledge-base => dify-knowledge-base}/images/image21.png (100%) rename docs/zh-cn/stage-2/ai-capabilities/{2.1-dify-knowledge-base => dify-knowledge-base}/images/image22.png (100%) rename docs/zh-cn/stage-2/ai-capabilities/{2.1-dify-knowledge-base => dify-knowledge-base}/images/image23.png (100%) rename docs/zh-cn/stage-2/ai-capabilities/{2.1-dify-knowledge-base => dify-knowledge-base}/images/image24.png (100%) rename docs/zh-cn/stage-2/ai-capabilities/{2.1-dify-knowledge-base => dify-knowledge-base}/images/image25.png (100%) rename docs/zh-cn/stage-2/ai-capabilities/{2.1-dify-knowledge-base => dify-knowledge-base}/images/image26.png (100%) rename docs/zh-cn/stage-2/ai-capabilities/{2.1-dify-knowledge-base => dify-knowledge-base}/images/image27.png (100%) rename docs/zh-cn/stage-2/ai-capabilities/{2.1-dify-knowledge-base => dify-knowledge-base}/images/image28.png (100%) rename docs/zh-cn/stage-2/ai-capabilities/{2.1-dify-knowledge-base => dify-knowledge-base}/images/image29.png (100%) rename docs/zh-cn/stage-2/ai-capabilities/{2.1-dify-knowledge-base => dify-knowledge-base}/images/image3.png (100%) rename docs/zh-cn/stage-2/ai-capabilities/{2.1-dify-knowledge-base => dify-knowledge-base}/images/image30.png (100%) rename docs/zh-cn/stage-2/ai-capabilities/{2.1-dify-knowledge-base => dify-knowledge-base}/images/image31.png (100%) rename docs/zh-cn/stage-2/ai-capabilities/{2.1-dify-knowledge-base => dify-knowledge-base}/images/image32.png (100%) rename docs/zh-cn/stage-2/ai-capabilities/{2.1-dify-knowledge-base => dify-knowledge-base}/images/image33.png (100%) rename docs/zh-cn/stage-2/ai-capabilities/{2.1-dify-knowledge-base => dify-knowledge-base}/images/image34.png (100%) rename docs/zh-cn/stage-2/ai-capabilities/{2.1-dify-knowledge-base => dify-knowledge-base}/images/image35.png (100%) rename docs/zh-cn/stage-2/ai-capabilities/{2.1-dify-knowledge-base => dify-knowledge-base}/images/image36.png (100%) rename docs/zh-cn/stage-2/ai-capabilities/{2.1-dify-knowledge-base => dify-knowledge-base}/images/image37.png (100%) rename docs/zh-cn/stage-2/ai-capabilities/{2.1-dify-knowledge-base => dify-knowledge-base}/images/image38.png (100%) rename docs/zh-cn/stage-2/ai-capabilities/{2.1-dify-knowledge-base => dify-knowledge-base}/images/image39.png (100%) rename docs/zh-cn/stage-2/ai-capabilities/{2.1-dify-knowledge-base => dify-knowledge-base}/images/image4.png (100%) rename docs/zh-cn/stage-2/ai-capabilities/{2.1-dify-knowledge-base => dify-knowledge-base}/images/image40.png (100%) rename docs/zh-cn/stage-2/ai-capabilities/{2.1-dify-knowledge-base => dify-knowledge-base}/images/image41.png (100%) rename docs/zh-cn/stage-2/ai-capabilities/{2.1-dify-knowledge-base => dify-knowledge-base}/images/image42.png (100%) rename docs/zh-cn/stage-2/ai-capabilities/{2.1-dify-knowledge-base => dify-knowledge-base}/images/image43.png (100%) rename docs/zh-cn/stage-2/ai-capabilities/{2.1-dify-knowledge-base => dify-knowledge-base}/images/image44.png (100%) rename docs/zh-cn/stage-2/ai-capabilities/{2.1-dify-knowledge-base => dify-knowledge-base}/images/image45.png (100%) rename docs/zh-cn/stage-2/ai-capabilities/{2.1-dify-knowledge-base => dify-knowledge-base}/images/image46.png (100%) rename docs/zh-cn/stage-2/ai-capabilities/{2.1-dify-knowledge-base => dify-knowledge-base}/images/image47.png (100%) rename docs/zh-cn/stage-2/ai-capabilities/{2.1-dify-knowledge-base => dify-knowledge-base}/images/image48.png (100%) rename docs/zh-cn/stage-2/ai-capabilities/{2.1-dify-knowledge-base => dify-knowledge-base}/images/image49.png (100%) rename docs/zh-cn/stage-2/ai-capabilities/{2.1-dify-knowledge-base => dify-knowledge-base}/images/image5.png (100%) rename docs/zh-cn/stage-2/ai-capabilities/{2.1-dify-knowledge-base => dify-knowledge-base}/images/image50.png (100%) rename docs/zh-cn/stage-2/ai-capabilities/{2.1-dify-knowledge-base => dify-knowledge-base}/images/image51.png (100%) rename docs/zh-cn/stage-2/ai-capabilities/{2.1-dify-knowledge-base => dify-knowledge-base}/images/image52.png (100%) rename docs/zh-cn/stage-2/ai-capabilities/{2.1-dify-knowledge-base => dify-knowledge-base}/images/image53.png (100%) rename docs/zh-cn/stage-2/ai-capabilities/{2.1-dify-knowledge-base => dify-knowledge-base}/images/image54.png (100%) rename docs/zh-cn/stage-2/ai-capabilities/{2.1-dify-knowledge-base => dify-knowledge-base}/images/image55.png (100%) rename docs/zh-cn/stage-2/ai-capabilities/{2.1-dify-knowledge-base => dify-knowledge-base}/images/image56.png (100%) rename docs/zh-cn/stage-2/ai-capabilities/{2.1-dify-knowledge-base => dify-knowledge-base}/images/image57.png (100%) rename docs/zh-cn/stage-2/ai-capabilities/{2.1-dify-knowledge-base => dify-knowledge-base}/images/image58.png (100%) rename docs/zh-cn/stage-2/ai-capabilities/{2.1-dify-knowledge-base => dify-knowledge-base}/images/image59.png (100%) rename docs/zh-cn/stage-2/ai-capabilities/{2.1-dify-knowledge-base => dify-knowledge-base}/images/image6.png (100%) rename docs/zh-cn/stage-2/ai-capabilities/{2.1-dify-knowledge-base => dify-knowledge-base}/images/image60.png (100%) rename docs/zh-cn/stage-2/ai-capabilities/{2.1-dify-knowledge-base => dify-knowledge-base}/images/image61.png (100%) rename docs/zh-cn/stage-2/ai-capabilities/{2.1-dify-knowledge-base => dify-knowledge-base}/images/image62.png (100%) rename docs/zh-cn/stage-2/ai-capabilities/{2.1-dify-knowledge-base => dify-knowledge-base}/images/image63.png (100%) rename docs/zh-cn/stage-2/ai-capabilities/{2.1-dify-knowledge-base => dify-knowledge-base}/images/image64.png (100%) rename docs/zh-cn/stage-2/ai-capabilities/{2.1-dify-knowledge-base => dify-knowledge-base}/images/image65.png (100%) rename docs/zh-cn/stage-2/ai-capabilities/{2.1-dify-knowledge-base => dify-knowledge-base}/images/image66.png (100%) rename docs/zh-cn/stage-2/ai-capabilities/{2.1-dify-knowledge-base => dify-knowledge-base}/images/image67.png (100%) rename docs/zh-cn/stage-2/ai-capabilities/{2.1-dify-knowledge-base => dify-knowledge-base}/images/image68.png (100%) rename docs/zh-cn/stage-2/ai-capabilities/{2.1-dify-knowledge-base => dify-knowledge-base}/images/image69.png (100%) rename docs/zh-cn/stage-2/ai-capabilities/{2.1-dify-knowledge-base => dify-knowledge-base}/images/image7.png (100%) rename docs/zh-cn/stage-2/ai-capabilities/{2.1-dify-knowledge-base => dify-knowledge-base}/images/image70.png (100%) rename docs/zh-cn/stage-2/ai-capabilities/{2.1-dify-knowledge-base => dify-knowledge-base}/images/image71.png (100%) rename docs/zh-cn/stage-2/ai-capabilities/{2.1-dify-knowledge-base => dify-knowledge-base}/images/image72.png (100%) rename docs/zh-cn/stage-2/ai-capabilities/{2.1-dify-knowledge-base => dify-knowledge-base}/images/image73.png (100%) rename docs/zh-cn/stage-2/ai-capabilities/{2.1-dify-knowledge-base => dify-knowledge-base}/images/image74.png (100%) rename docs/zh-cn/stage-2/ai-capabilities/{2.1-dify-knowledge-base => dify-knowledge-base}/images/image75.png (100%) rename docs/zh-cn/stage-2/ai-capabilities/{2.1-dify-knowledge-base => dify-knowledge-base}/images/image76.png (100%) rename docs/zh-cn/stage-2/ai-capabilities/{2.1-dify-knowledge-base => dify-knowledge-base}/images/image77.png (100%) rename docs/zh-cn/stage-2/ai-capabilities/{2.1-dify-knowledge-base => dify-knowledge-base}/images/image78.png (100%) rename docs/zh-cn/stage-2/ai-capabilities/{2.1-dify-knowledge-base => dify-knowledge-base}/images/image79.png (100%) rename docs/zh-cn/stage-2/ai-capabilities/{2.1-dify-knowledge-base => dify-knowledge-base}/images/image8.png (100%) rename docs/zh-cn/stage-2/ai-capabilities/{2.1-dify-knowledge-base => dify-knowledge-base}/images/image80.png (100%) rename docs/zh-cn/stage-2/ai-capabilities/{2.1-dify-knowledge-base => dify-knowledge-base}/images/image81.png (100%) rename docs/zh-cn/stage-2/ai-capabilities/{2.1-dify-knowledge-base => dify-knowledge-base}/images/image82.png (100%) rename docs/zh-cn/stage-2/ai-capabilities/{2.1-dify-knowledge-base => dify-knowledge-base}/images/image83.png (100%) rename docs/zh-cn/stage-2/ai-capabilities/{2.1-dify-knowledge-base => dify-knowledge-base}/images/image84.png (100%) rename docs/zh-cn/stage-2/ai-capabilities/{2.1-dify-knowledge-base => dify-knowledge-base}/images/image85.png (100%) rename docs/zh-cn/stage-2/ai-capabilities/{2.1-dify-knowledge-base => dify-knowledge-base}/images/image86.png (100%) rename docs/zh-cn/stage-2/ai-capabilities/{2.1-dify-knowledge-base => dify-knowledge-base}/images/image87.png (100%) rename docs/zh-cn/stage-2/ai-capabilities/{2.1-dify-knowledge-base => dify-knowledge-base}/images/image88.png (100%) rename docs/zh-cn/stage-2/ai-capabilities/{2.1-dify-knowledge-base => dify-knowledge-base}/images/image89.png (100%) rename docs/zh-cn/stage-2/ai-capabilities/{2.1-dify-knowledge-base => dify-knowledge-base}/images/image9.png (100%) rename docs/zh-cn/stage-2/ai-capabilities/{2.1-dify-knowledge-base => dify-knowledge-base}/images/image90.png (100%) rename docs/zh-cn/stage-2/ai-capabilities/{2.1-dify-knowledge-base => dify-knowledge-base}/images/image91.png (100%) rename docs/zh-cn/stage-2/ai-capabilities/{2.1-dify-knowledge-base => dify-knowledge-base}/images/image92.png (100%) rename docs/zh-cn/stage-2/ai-capabilities/{2.1-dify-knowledge-base => dify-knowledge-base}/images/image93.png (100%) rename docs/zh-cn/stage-2/ai-capabilities/{2.1-dify-knowledge-base => dify-knowledge-base}/images/image94.png (100%) rename docs/zh-cn/stage-2/ai-capabilities/{2.1-dify-knowledge-base => dify-knowledge-base}/images/image95.png (100%) rename docs/zh-cn/stage-2/ai-capabilities/{2.1-dify-knowledge-base => dify-knowledge-base}/images/image96.png (100%) rename docs/zh-cn/stage-2/ai-capabilities/{2.1-dify-knowledge-base => dify-knowledge-base}/images/image97.png (100%) rename docs/zh-cn/stage-2/ai-capabilities/{2.1-dify-knowledge-base => dify-knowledge-base}/images/image98.png (100%) rename docs/zh-cn/stage-2/ai-capabilities/{2.1-dify-knowledge-base => dify-knowledge-base}/index.md (99%) rename docs/zh-cn/stage-2/backend/{2.3-ai-interface-code => ai-interface-code}/index.md (96%) rename docs/zh-cn/stage-2/backend/{2.2-database-supabase => database-supabase}/images/image1.png (100%) rename docs/zh-cn/stage-2/backend/{2.2-database-supabase => database-supabase}/images/image10.png (100%) rename docs/zh-cn/stage-2/backend/{2.2-database-supabase => database-supabase}/images/image11.png (100%) rename docs/zh-cn/stage-2/backend/{2.2-database-supabase => database-supabase}/images/image12.png (100%) rename docs/zh-cn/stage-2/backend/{2.2-database-supabase => database-supabase}/images/image13.png (100%) rename docs/zh-cn/stage-2/backend/{2.2-database-supabase => database-supabase}/images/image14.png (100%) rename docs/zh-cn/stage-2/backend/{2.2-database-supabase => database-supabase}/images/image15.png (100%) rename docs/zh-cn/stage-2/backend/{2.2-database-supabase => database-supabase}/images/image16.png (100%) rename docs/zh-cn/stage-2/backend/{2.2-database-supabase => database-supabase}/images/image17.png (100%) rename docs/zh-cn/stage-2/backend/{2.2-database-supabase => database-supabase}/images/image18.png (100%) rename docs/zh-cn/stage-2/backend/{2.2-database-supabase => database-supabase}/images/image19.png (100%) rename docs/zh-cn/stage-2/backend/{2.2-database-supabase => database-supabase}/images/image2.png (100%) rename docs/zh-cn/stage-2/backend/{2.2-database-supabase => database-supabase}/images/image20.png (100%) rename docs/zh-cn/stage-2/backend/{2.2-database-supabase => database-supabase}/images/image21.png (100%) rename docs/zh-cn/stage-2/backend/{2.2-database-supabase => database-supabase}/images/image22.png (100%) rename docs/zh-cn/stage-2/backend/{2.2-database-supabase => database-supabase}/images/image23.png (100%) rename docs/zh-cn/stage-2/backend/{2.2-database-supabase => database-supabase}/images/image24.png (100%) rename docs/zh-cn/stage-2/backend/{2.2-database-supabase => database-supabase}/images/image25.png (100%) rename docs/zh-cn/stage-2/backend/{2.2-database-supabase => database-supabase}/images/image26.png (100%) rename docs/zh-cn/stage-2/backend/{2.2-database-supabase => database-supabase}/images/image27.png (100%) rename docs/zh-cn/stage-2/backend/{2.2-database-supabase => database-supabase}/images/image28.png (100%) rename docs/zh-cn/stage-2/backend/{2.2-database-supabase => database-supabase}/images/image29.png (100%) rename docs/zh-cn/stage-2/backend/{2.2-database-supabase => database-supabase}/images/image3.png (100%) rename docs/zh-cn/stage-2/backend/{2.2-database-supabase => database-supabase}/images/image30.png (100%) rename docs/zh-cn/stage-2/backend/{2.2-database-supabase => database-supabase}/images/image31.png (100%) rename docs/zh-cn/stage-2/backend/{2.2-database-supabase => database-supabase}/images/image32.png (100%) rename docs/zh-cn/stage-2/backend/{2.2-database-supabase => database-supabase}/images/image33.png (100%) rename docs/zh-cn/stage-2/backend/{2.2-database-supabase => database-supabase}/images/image34.png (100%) rename docs/zh-cn/stage-2/backend/{2.2-database-supabase => database-supabase}/images/image35.png (100%) rename docs/zh-cn/stage-2/backend/{2.2-database-supabase => database-supabase}/images/image36.png (100%) rename docs/zh-cn/stage-2/backend/{2.2-database-supabase => database-supabase}/images/image37.png (100%) rename docs/zh-cn/stage-2/backend/{2.2-database-supabase => database-supabase}/images/image38.png (100%) rename docs/zh-cn/stage-2/backend/{2.2-database-supabase => database-supabase}/images/image39.png (100%) rename docs/zh-cn/stage-2/backend/{2.2-database-supabase => database-supabase}/images/image4.png (100%) rename docs/zh-cn/stage-2/backend/{2.2-database-supabase => database-supabase}/images/image40.png (100%) rename docs/zh-cn/stage-2/backend/{2.2-database-supabase => database-supabase}/images/image41.png (100%) rename docs/zh-cn/stage-2/backend/{2.2-database-supabase => database-supabase}/images/image42.png (100%) rename docs/zh-cn/stage-2/backend/{2.2-database-supabase => database-supabase}/images/image43.png (100%) rename docs/zh-cn/stage-2/backend/{2.2-database-supabase => database-supabase}/images/image44.png (100%) rename docs/zh-cn/stage-2/backend/{2.2-database-supabase => database-supabase}/images/image45.png (100%) rename docs/zh-cn/stage-2/backend/{2.2-database-supabase => database-supabase}/images/image46.png (100%) rename docs/zh-cn/stage-2/backend/{2.2-database-supabase => database-supabase}/images/image47.png (100%) rename docs/zh-cn/stage-2/backend/{2.2-database-supabase => database-supabase}/images/image48.png (100%) rename docs/zh-cn/stage-2/backend/{2.2-database-supabase => database-supabase}/images/image49.png (100%) rename docs/zh-cn/stage-2/backend/{2.2-database-supabase => database-supabase}/images/image5.png (100%) rename docs/zh-cn/stage-2/backend/{2.2-database-supabase => database-supabase}/images/image50.png (100%) rename docs/zh-cn/stage-2/backend/{2.2-database-supabase => database-supabase}/images/image51.png (100%) rename docs/zh-cn/stage-2/backend/{2.2-database-supabase => database-supabase}/images/image52.png (100%) rename docs/zh-cn/stage-2/backend/{2.2-database-supabase => database-supabase}/images/image53.png (100%) rename docs/zh-cn/stage-2/backend/{2.2-database-supabase => database-supabase}/images/image54.png (100%) rename docs/zh-cn/stage-2/backend/{2.2-database-supabase => database-supabase}/images/image55.png (100%) rename docs/zh-cn/stage-2/backend/{2.2-database-supabase => database-supabase}/images/image56.png (100%) rename docs/zh-cn/stage-2/backend/{2.2-database-supabase => database-supabase}/images/image57.png (100%) rename docs/zh-cn/stage-2/backend/{2.2-database-supabase => database-supabase}/images/image58.png (100%) rename docs/zh-cn/stage-2/backend/{2.2-database-supabase => database-supabase}/images/image59.png (100%) rename docs/zh-cn/stage-2/backend/{2.2-database-supabase => database-supabase}/images/image6.png (100%) rename docs/zh-cn/stage-2/backend/{2.2-database-supabase => database-supabase}/images/image60.png (100%) rename docs/zh-cn/stage-2/backend/{2.2-database-supabase => database-supabase}/images/image61.png (100%) rename docs/zh-cn/stage-2/backend/{2.2-database-supabase => database-supabase}/images/image62.png (100%) rename docs/zh-cn/stage-2/backend/{2.2-database-supabase => database-supabase}/images/image63.png (100%) rename docs/zh-cn/stage-2/backend/{2.2-database-supabase => database-supabase}/images/image64.png (100%) rename docs/zh-cn/stage-2/backend/{2.2-database-supabase => database-supabase}/images/image65.png (100%) rename docs/zh-cn/stage-2/backend/{2.2-database-supabase => database-supabase}/images/image7.png (100%) rename docs/zh-cn/stage-2/backend/{2.2-database-supabase => database-supabase}/images/image8.png (100%) rename docs/zh-cn/stage-2/backend/{2.2-database-supabase => database-supabase}/images/image9.png (100%) rename docs/zh-cn/stage-2/backend/{2.2-database-supabase => database-supabase}/index.md (100%) rename docs/zh-cn/stage-2/backend/{2.4-git-workflow => git-workflow}/images/image1.png (100%) rename docs/zh-cn/stage-2/backend/{2.4-git-workflow => git-workflow}/images/image10.png (100%) rename docs/zh-cn/stage-2/backend/{2.4-git-workflow => git-workflow}/images/image11.png (100%) rename docs/zh-cn/stage-2/backend/{2.4-git-workflow => git-workflow}/images/image12.png (100%) rename docs/zh-cn/stage-2/backend/{2.4-git-workflow => git-workflow}/images/image13.png (100%) rename docs/zh-cn/stage-2/backend/{2.4-git-workflow => git-workflow}/images/image14.png (100%) rename docs/zh-cn/stage-2/backend/{2.4-git-workflow => git-workflow}/images/image15.png (100%) rename docs/zh-cn/stage-2/backend/{2.4-git-workflow => git-workflow}/images/image16.png (100%) rename docs/zh-cn/stage-2/backend/{2.4-git-workflow => git-workflow}/images/image17.png (100%) rename docs/zh-cn/stage-2/backend/{2.4-git-workflow => git-workflow}/images/image18.png (100%) rename docs/zh-cn/stage-2/backend/{2.4-git-workflow => git-workflow}/images/image19.png (100%) rename docs/zh-cn/stage-2/backend/{2.4-git-workflow => git-workflow}/images/image2.png (100%) rename docs/zh-cn/stage-2/backend/{2.4-git-workflow => git-workflow}/images/image20.png (100%) rename docs/zh-cn/stage-2/backend/{2.4-git-workflow => git-workflow}/images/image21.png (100%) rename docs/zh-cn/stage-2/backend/{2.4-git-workflow => git-workflow}/images/image22.png (100%) rename docs/zh-cn/stage-2/backend/{2.4-git-workflow => git-workflow}/images/image23.png (100%) rename docs/zh-cn/stage-2/backend/{2.4-git-workflow => git-workflow}/images/image24.png (100%) rename docs/zh-cn/stage-2/backend/{2.4-git-workflow => git-workflow}/images/image25.png (100%) rename docs/zh-cn/stage-2/backend/{2.4-git-workflow => git-workflow}/images/image3.png (100%) rename docs/zh-cn/stage-2/backend/{2.4-git-workflow => git-workflow}/images/image4.png (100%) rename docs/zh-cn/stage-2/backend/{2.4-git-workflow => git-workflow}/images/image5.png (100%) rename docs/zh-cn/stage-2/backend/{2.4-git-workflow => git-workflow}/images/image6.png (100%) rename docs/zh-cn/stage-2/backend/{2.4-git-workflow => git-workflow}/images/image7.png (100%) rename docs/zh-cn/stage-2/backend/{2.4-git-workflow => git-workflow}/images/image8.png (100%) rename docs/zh-cn/stage-2/backend/{2.4-git-workflow => git-workflow}/images/image9.png (100%) rename docs/zh-cn/stage-2/backend/{2.4-git-workflow => git-workflow}/index.md (100%) rename docs/zh-cn/stage-2/backend/{2.6-modern-cli => modern-cli}/images/image1.png (100%) rename docs/zh-cn/stage-2/backend/{2.6-modern-cli => modern-cli}/images/image10.png (100%) rename docs/zh-cn/stage-2/backend/{2.6-modern-cli => modern-cli}/images/image11.png (100%) rename docs/zh-cn/stage-2/backend/{2.6-modern-cli => modern-cli}/images/image12.png (100%) rename docs/zh-cn/stage-2/backend/{2.6-modern-cli => modern-cli}/images/image13.png (100%) rename docs/zh-cn/stage-2/backend/{2.6-modern-cli => modern-cli}/images/image14.png (100%) rename docs/zh-cn/stage-2/backend/{2.6-modern-cli => modern-cli}/images/image15.png (100%) rename docs/zh-cn/stage-2/backend/{2.6-modern-cli => modern-cli}/images/image16.png (100%) rename docs/zh-cn/stage-2/backend/{2.6-modern-cli => modern-cli}/images/image17.png (100%) rename docs/zh-cn/stage-2/backend/{2.6-modern-cli => modern-cli}/images/image18.png (100%) rename docs/zh-cn/stage-2/backend/{2.6-modern-cli => modern-cli}/images/image19.png (100%) rename docs/zh-cn/stage-2/backend/{2.6-modern-cli => modern-cli}/images/image2.png (100%) rename docs/zh-cn/stage-2/backend/{2.6-modern-cli => modern-cli}/images/image20.png (100%) rename docs/zh-cn/stage-2/backend/{2.6-modern-cli => modern-cli}/images/image21.png (100%) rename docs/zh-cn/stage-2/backend/{2.6-modern-cli => modern-cli}/images/image22.png (100%) rename docs/zh-cn/stage-2/backend/{2.6-modern-cli => modern-cli}/images/image23.png (100%) rename docs/zh-cn/stage-2/backend/{2.6-modern-cli => modern-cli}/images/image24.png (100%) rename docs/zh-cn/stage-2/backend/{2.6-modern-cli => modern-cli}/images/image25.png (100%) rename docs/zh-cn/stage-2/backend/{2.6-modern-cli => modern-cli}/images/image26.png (100%) rename docs/zh-cn/stage-2/backend/{2.6-modern-cli => modern-cli}/images/image27.png (100%) rename docs/zh-cn/stage-2/backend/{2.6-modern-cli => modern-cli}/images/image28.png (100%) rename docs/zh-cn/stage-2/backend/{2.6-modern-cli => modern-cli}/images/image29.png (100%) rename docs/zh-cn/stage-2/backend/{2.6-modern-cli => modern-cli}/images/image3.png (100%) rename docs/zh-cn/stage-2/backend/{2.6-modern-cli => modern-cli}/images/image30.png (100%) rename docs/zh-cn/stage-2/backend/{2.6-modern-cli => modern-cli}/images/image31.png (100%) rename docs/zh-cn/stage-2/backend/{2.6-modern-cli => modern-cli}/images/image4.png (100%) rename docs/zh-cn/stage-2/backend/{2.6-modern-cli => modern-cli}/images/image5.png (100%) rename docs/zh-cn/stage-2/backend/{2.6-modern-cli => modern-cli}/images/image6.png (100%) rename docs/zh-cn/stage-2/backend/{2.6-modern-cli => modern-cli}/images/image7.png (100%) rename docs/zh-cn/stage-2/backend/{2.6-modern-cli => modern-cli}/images/image8.png (100%) rename docs/zh-cn/stage-2/backend/{2.6-modern-cli => modern-cli}/images/image9.png (100%) rename docs/zh-cn/stage-2/backend/{2.6-modern-cli => modern-cli}/index.md (100%) rename docs/zh-cn/stage-2/backend/{2.7-stripe-payment => stripe-payment}/index.md (99%) rename docs/zh-cn/stage-2/backend/{2.5-zeabur-deployment => zeabur-deployment}/images/image1.png (100%) rename docs/zh-cn/stage-2/backend/{2.5-zeabur-deployment => zeabur-deployment}/images/image10.png (100%) rename docs/zh-cn/stage-2/backend/{2.5-zeabur-deployment => zeabur-deployment}/images/image11.png (100%) rename docs/zh-cn/stage-2/backend/{2.5-zeabur-deployment => zeabur-deployment}/images/image12.png (100%) rename docs/zh-cn/stage-2/backend/{2.5-zeabur-deployment => zeabur-deployment}/images/image13.png (100%) rename docs/zh-cn/stage-2/backend/{2.5-zeabur-deployment => zeabur-deployment}/images/image14.png (100%) rename docs/zh-cn/stage-2/backend/{2.5-zeabur-deployment => zeabur-deployment}/images/image15.png (100%) rename docs/zh-cn/stage-2/backend/{2.5-zeabur-deployment => zeabur-deployment}/images/image16.png (100%) rename docs/zh-cn/stage-2/backend/{2.5-zeabur-deployment => zeabur-deployment}/images/image17.png (100%) rename docs/zh-cn/stage-2/backend/{2.5-zeabur-deployment => zeabur-deployment}/images/image18.png (100%) rename docs/zh-cn/stage-2/backend/{2.5-zeabur-deployment => zeabur-deployment}/images/image19.png (100%) rename docs/zh-cn/stage-2/backend/{2.5-zeabur-deployment => zeabur-deployment}/images/image2.png (100%) rename docs/zh-cn/stage-2/backend/{2.5-zeabur-deployment => zeabur-deployment}/images/image20.png (100%) rename docs/zh-cn/stage-2/backend/{2.5-zeabur-deployment => zeabur-deployment}/images/image21.png (100%) rename docs/zh-cn/stage-2/backend/{2.5-zeabur-deployment => zeabur-deployment}/images/image22.png (100%) rename docs/zh-cn/stage-2/backend/{2.5-zeabur-deployment => zeabur-deployment}/images/image23.png (100%) rename docs/zh-cn/stage-2/backend/{2.5-zeabur-deployment => zeabur-deployment}/images/image24.png (100%) rename docs/zh-cn/stage-2/backend/{2.5-zeabur-deployment => zeabur-deployment}/images/image25.png (100%) rename docs/zh-cn/stage-2/backend/{2.5-zeabur-deployment => zeabur-deployment}/images/image26.png (100%) rename docs/zh-cn/stage-2/backend/{2.5-zeabur-deployment => zeabur-deployment}/images/image27.png (100%) rename docs/zh-cn/stage-2/backend/{2.5-zeabur-deployment => zeabur-deployment}/images/image28.png (100%) rename docs/zh-cn/stage-2/backend/{2.5-zeabur-deployment => zeabur-deployment}/images/image29.png (100%) rename docs/zh-cn/stage-2/backend/{2.5-zeabur-deployment => zeabur-deployment}/images/image3.png (100%) rename docs/zh-cn/stage-2/backend/{2.5-zeabur-deployment => zeabur-deployment}/images/image30.png (100%) rename docs/zh-cn/stage-2/backend/{2.5-zeabur-deployment => zeabur-deployment}/images/image31.png (100%) rename docs/zh-cn/stage-2/backend/{2.5-zeabur-deployment => zeabur-deployment}/images/image32.png (100%) rename docs/zh-cn/stage-2/backend/{2.5-zeabur-deployment => zeabur-deployment}/images/image33.png (100%) rename docs/zh-cn/stage-2/backend/{2.5-zeabur-deployment => zeabur-deployment}/images/image34.png (100%) rename docs/zh-cn/stage-2/backend/{2.5-zeabur-deployment => zeabur-deployment}/images/image35.png (100%) rename docs/zh-cn/stage-2/backend/{2.5-zeabur-deployment => zeabur-deployment}/images/image36.png (100%) rename docs/zh-cn/stage-2/backend/{2.5-zeabur-deployment => zeabur-deployment}/images/image4.png (100%) rename docs/zh-cn/stage-2/backend/{2.5-zeabur-deployment => zeabur-deployment}/images/image5.png (100%) rename docs/zh-cn/stage-2/backend/{2.5-zeabur-deployment => zeabur-deployment}/images/image6.png (100%) rename docs/zh-cn/stage-2/backend/{2.5-zeabur-deployment => zeabur-deployment}/images/image7.png (100%) rename docs/zh-cn/stage-2/backend/{2.5-zeabur-deployment => zeabur-deployment}/images/image8.png (100%) rename docs/zh-cn/stage-2/backend/{2.5-zeabur-deployment => zeabur-deployment}/images/image9.png (100%) rename docs/zh-cn/stage-2/backend/{2.5-zeabur-deployment => zeabur-deployment}/index.md (100%) rename docs/zh-cn/stage-2/frontend/{2.1-figma-mastergo => design-to-code}/images/image42.png (100%) rename docs/zh-cn/stage-2/frontend/{2.1-figma-mastergo => design-to-code}/images/image43.png (100%) rename docs/zh-cn/stage-2/frontend/{2.1-figma-mastergo => design-to-code}/images/image44.png (100%) rename docs/zh-cn/stage-2/frontend/{2.1-figma-mastergo => design-to-code}/images/image45.png (100%) rename docs/zh-cn/stage-2/frontend/{2.1-figma-mastergo => design-to-code}/images/image46.png (100%) rename docs/zh-cn/stage-2/frontend/{2.1-figma-mastergo => design-to-code}/images/image47.png (100%) rename docs/zh-cn/stage-2/frontend/{2.1-figma-mastergo => design-to-code}/images/image48.png (100%) rename docs/zh-cn/stage-2/frontend/{2.1-figma-mastergo => design-to-code}/images/image49.png (100%) rename docs/zh-cn/stage-2/frontend/{2.1-figma-mastergo => design-to-code}/images/image50.png (100%) rename docs/zh-cn/stage-2/frontend/{2.6-design-to-code => design-to-code}/index.md (98%) rename docs/zh-cn/stage-2/frontend/{2.1-figma-mastergo => figma-mastergo}/images/image10.png (100%) rename docs/zh-cn/stage-2/frontend/{2.1-figma-mastergo => figma-mastergo}/images/image11.png (100%) rename docs/zh-cn/stage-2/frontend/{2.1-figma-mastergo => figma-mastergo}/images/image12.png (100%) rename docs/zh-cn/stage-2/frontend/{2.1-figma-mastergo => figma-mastergo}/images/image13.png (100%) rename docs/zh-cn/stage-2/frontend/{2.1-figma-mastergo => figma-mastergo}/images/image14.png (100%) rename docs/zh-cn/stage-2/frontend/{2.1-figma-mastergo => figma-mastergo}/images/image15.png (100%) rename docs/zh-cn/stage-2/frontend/{2.1-figma-mastergo => figma-mastergo}/images/image16.png (100%) rename docs/zh-cn/stage-2/frontend/{2.1-figma-mastergo => figma-mastergo}/images/image17.png (100%) rename docs/zh-cn/stage-2/frontend/{2.1-figma-mastergo => figma-mastergo}/images/image18.png (100%) rename docs/zh-cn/stage-2/frontend/{2.1-figma-mastergo => figma-mastergo}/images/image19.png (100%) rename docs/zh-cn/stage-2/frontend/{2.1-figma-mastergo => figma-mastergo}/images/image20.png (100%) rename docs/zh-cn/stage-2/frontend/{2.1-figma-mastergo => figma-mastergo}/images/image21.png (100%) rename docs/zh-cn/stage-2/frontend/{2.1-figma-mastergo => figma-mastergo}/images/image22.png (100%) rename docs/zh-cn/stage-2/frontend/{2.1-figma-mastergo => figma-mastergo}/images/image23.png (100%) rename docs/zh-cn/stage-2/frontend/{2.1-figma-mastergo => figma-mastergo}/images/image24.png (100%) rename docs/zh-cn/stage-2/frontend/{2.1-figma-mastergo => figma-mastergo}/images/image25.png (100%) rename docs/zh-cn/stage-2/frontend/{2.1-figma-mastergo => figma-mastergo}/images/image26.png (100%) rename docs/zh-cn/stage-2/frontend/{2.1-figma-mastergo => figma-mastergo}/images/image27.png (100%) rename docs/zh-cn/stage-2/frontend/{2.1-figma-mastergo => figma-mastergo}/images/image28.png (100%) rename docs/zh-cn/stage-2/frontend/{2.1-figma-mastergo => figma-mastergo}/images/image29.png (100%) rename docs/zh-cn/stage-2/frontend/{2.1-figma-mastergo => figma-mastergo}/images/image30.png (100%) rename docs/zh-cn/stage-2/frontend/{2.1-figma-mastergo => figma-mastergo}/images/image31.png (100%) rename docs/zh-cn/stage-2/frontend/{2.1-figma-mastergo => figma-mastergo}/images/image32.png (100%) rename docs/zh-cn/stage-2/frontend/{2.1-figma-mastergo => figma-mastergo}/images/image33.png (100%) rename docs/zh-cn/stage-2/frontend/{2.1-figma-mastergo => figma-mastergo}/images/image34.png (100%) rename docs/zh-cn/stage-2/frontend/{2.1-figma-mastergo => figma-mastergo}/images/image35.png (100%) rename docs/zh-cn/stage-2/frontend/{2.1-figma-mastergo => figma-mastergo}/images/image36.png (100%) rename docs/zh-cn/stage-2/frontend/{2.1-figma-mastergo => figma-mastergo}/images/image37.png (100%) rename docs/zh-cn/stage-2/frontend/{2.1-figma-mastergo => figma-mastergo}/images/image38.png (100%) rename docs/zh-cn/stage-2/frontend/{2.1-figma-mastergo => figma-mastergo}/images/image39.png (100%) rename docs/zh-cn/stage-2/frontend/{2.1-figma-mastergo => figma-mastergo}/images/image40.png (100%) rename docs/zh-cn/stage-2/frontend/{2.1-figma-mastergo => figma-mastergo}/images/image41.png (100%) rename docs/zh-cn/stage-2/frontend/{2.5-hogwarts-portraits => figma-mastergo}/images/image42.png (100%) rename docs/zh-cn/stage-2/frontend/{2.5-hogwarts-portraits => figma-mastergo}/images/image43.png (100%) rename docs/zh-cn/stage-2/frontend/{2.5-hogwarts-portraits => figma-mastergo}/images/image44.png (100%) rename docs/zh-cn/stage-2/frontend/{2.5-hogwarts-portraits => figma-mastergo}/images/image45.png (100%) rename docs/zh-cn/stage-2/frontend/{2.5-hogwarts-portraits => figma-mastergo}/images/image46.png (100%) rename docs/zh-cn/stage-2/frontend/{2.5-hogwarts-portraits => figma-mastergo}/images/image47.png (100%) rename docs/zh-cn/stage-2/frontend/{2.5-hogwarts-portraits => figma-mastergo}/images/image48.png (100%) rename docs/zh-cn/stage-2/frontend/{2.5-hogwarts-portraits => figma-mastergo}/images/image49.png (100%) rename docs/zh-cn/stage-2/frontend/{2.5-hogwarts-portraits => figma-mastergo}/images/image50.png (100%) rename docs/zh-cn/stage-2/frontend/{2.1-figma-mastergo => figma-mastergo}/images/image8.png (100%) rename docs/zh-cn/stage-2/frontend/{2.1-figma-mastergo => figma-mastergo}/images/image9.png (100%) rename docs/zh-cn/stage-2/frontend/{2.1-figma-mastergo => figma-mastergo}/index.md (98%) rename docs/zh-cn/stage-2/frontend/{2.5-hogwarts-portraits => hogwarts-portraits}/images/image1.png (100%) rename docs/zh-cn/stage-2/frontend/{2.5-hogwarts-portraits => hogwarts-portraits}/images/image10.png (100%) rename docs/zh-cn/stage-2/frontend/{2.5-hogwarts-portraits => hogwarts-portraits}/images/image11.png (100%) rename docs/zh-cn/stage-2/frontend/{2.5-hogwarts-portraits => hogwarts-portraits}/images/image12.png (100%) rename docs/zh-cn/stage-2/frontend/{2.5-hogwarts-portraits => hogwarts-portraits}/images/image13.png (100%) rename docs/zh-cn/stage-2/frontend/{2.5-hogwarts-portraits => hogwarts-portraits}/images/image14.png (100%) rename docs/zh-cn/stage-2/frontend/{2.5-hogwarts-portraits => hogwarts-portraits}/images/image15.png (100%) rename docs/zh-cn/stage-2/frontend/{2.5-hogwarts-portraits => hogwarts-portraits}/images/image16.png (100%) rename docs/zh-cn/stage-2/frontend/{2.5-hogwarts-portraits => hogwarts-portraits}/images/image17.png (100%) rename docs/zh-cn/stage-2/frontend/{2.5-hogwarts-portraits => hogwarts-portraits}/images/image18.png (100%) rename docs/zh-cn/stage-2/frontend/{2.5-hogwarts-portraits => hogwarts-portraits}/images/image19.png (100%) rename docs/zh-cn/stage-2/frontend/{2.5-hogwarts-portraits => hogwarts-portraits}/images/image2.png (100%) rename docs/zh-cn/stage-2/frontend/{2.5-hogwarts-portraits => hogwarts-portraits}/images/image20.png (100%) rename docs/zh-cn/stage-2/frontend/{2.5-hogwarts-portraits => hogwarts-portraits}/images/image21.png (100%) rename docs/zh-cn/stage-2/frontend/{2.5-hogwarts-portraits => hogwarts-portraits}/images/image22.png (100%) rename docs/zh-cn/stage-2/frontend/{2.5-hogwarts-portraits => hogwarts-portraits}/images/image23.png (100%) rename docs/zh-cn/stage-2/frontend/{2.5-hogwarts-portraits => hogwarts-portraits}/images/image24.png (100%) rename docs/zh-cn/stage-2/frontend/{2.5-hogwarts-portraits => hogwarts-portraits}/images/image25.png (100%) rename docs/zh-cn/stage-2/frontend/{2.5-hogwarts-portraits => hogwarts-portraits}/images/image26.png (100%) rename docs/zh-cn/stage-2/frontend/{2.5-hogwarts-portraits => hogwarts-portraits}/images/image27.png (100%) rename docs/zh-cn/stage-2/frontend/{2.5-hogwarts-portraits => hogwarts-portraits}/images/image28.png (100%) rename docs/zh-cn/stage-2/frontend/{2.5-hogwarts-portraits => hogwarts-portraits}/images/image29.png (100%) rename docs/zh-cn/stage-2/frontend/{2.5-hogwarts-portraits => hogwarts-portraits}/images/image3.png (100%) rename docs/zh-cn/stage-2/frontend/{2.5-hogwarts-portraits => hogwarts-portraits}/images/image30.png (100%) rename docs/zh-cn/stage-2/frontend/{2.5-hogwarts-portraits => hogwarts-portraits}/images/image31.png (100%) rename docs/zh-cn/stage-2/frontend/{2.5-hogwarts-portraits => hogwarts-portraits}/images/image32.png (100%) rename docs/zh-cn/stage-2/frontend/{2.5-hogwarts-portraits => hogwarts-portraits}/images/image33.png (100%) rename docs/zh-cn/stage-2/frontend/{2.5-hogwarts-portraits => hogwarts-portraits}/images/image34.png (100%) rename docs/zh-cn/stage-2/frontend/{2.5-hogwarts-portraits => hogwarts-portraits}/images/image35.png (100%) rename docs/zh-cn/stage-2/frontend/{2.5-hogwarts-portraits => hogwarts-portraits}/images/image36.png (100%) rename docs/zh-cn/stage-2/frontend/{2.5-hogwarts-portraits => hogwarts-portraits}/images/image37.png (100%) rename docs/zh-cn/stage-2/frontend/{2.5-hogwarts-portraits => hogwarts-portraits}/images/image38.png (100%) rename docs/zh-cn/stage-2/frontend/{2.5-hogwarts-portraits => hogwarts-portraits}/images/image39.png (100%) rename docs/zh-cn/stage-2/frontend/{2.5-hogwarts-portraits => hogwarts-portraits}/images/image4.png (100%) rename docs/zh-cn/stage-2/frontend/{2.5-hogwarts-portraits => hogwarts-portraits}/images/image40.png (100%) rename docs/zh-cn/stage-2/frontend/{2.5-hogwarts-portraits => hogwarts-portraits}/images/image41.png (100%) rename docs/zh-cn/stage-2/frontend/{2.6-design-to-code => hogwarts-portraits}/images/image42.png (100%) rename docs/zh-cn/stage-2/frontend/{2.6-design-to-code => hogwarts-portraits}/images/image43.png (100%) rename docs/zh-cn/stage-2/frontend/{2.6-design-to-code => hogwarts-portraits}/images/image44.png (100%) rename docs/zh-cn/stage-2/frontend/{2.6-design-to-code => hogwarts-portraits}/images/image45.png (100%) rename docs/zh-cn/stage-2/frontend/{2.6-design-to-code => hogwarts-portraits}/images/image46.png (100%) rename docs/zh-cn/stage-2/frontend/{2.6-design-to-code => hogwarts-portraits}/images/image47.png (100%) rename docs/zh-cn/stage-2/frontend/{2.6-design-to-code => hogwarts-portraits}/images/image48.png (100%) rename docs/zh-cn/stage-2/frontend/{2.6-design-to-code => hogwarts-portraits}/images/image49.png (100%) rename docs/zh-cn/stage-2/frontend/{2.5-hogwarts-portraits => hogwarts-portraits}/images/image5.png (100%) rename docs/zh-cn/stage-2/frontend/{2.6-design-to-code => hogwarts-portraits}/images/image50.png (100%) rename docs/zh-cn/stage-2/frontend/{2.5-hogwarts-portraits => hogwarts-portraits}/images/image51.png (100%) rename docs/zh-cn/stage-2/frontend/{2.5-hogwarts-portraits => hogwarts-portraits}/images/image52.png (100%) rename docs/zh-cn/stage-2/frontend/{2.5-hogwarts-portraits => hogwarts-portraits}/images/image53.png (100%) rename docs/zh-cn/stage-2/frontend/{2.5-hogwarts-portraits => hogwarts-portraits}/images/image54.png (100%) rename docs/zh-cn/stage-2/frontend/{2.5-hogwarts-portraits => hogwarts-portraits}/images/image55.png (100%) rename docs/zh-cn/stage-2/frontend/{2.5-hogwarts-portraits => hogwarts-portraits}/images/image6.png (100%) rename docs/zh-cn/stage-2/frontend/{2.5-hogwarts-portraits => hogwarts-portraits}/images/image7.png (100%) rename docs/zh-cn/stage-2/frontend/{2.5-hogwarts-portraits => hogwarts-portraits}/images/image8.png (100%) rename docs/zh-cn/stage-2/frontend/{2.5-hogwarts-portraits => hogwarts-portraits}/images/image9.png (100%) rename docs/zh-cn/stage-2/frontend/{2.5-hogwarts-portraits => hogwarts-portraits}/index.md (99%) rename docs/zh-cn/stage-2/frontend/{2.4-llm-skills-beautiful => llm-skills-beautiful}/index.md (100%) rename docs/zh-cn/stage-2/frontend/{2.0-lovart-assets => lovart-assets}/images/image1.png (100%) rename docs/zh-cn/stage-2/frontend/{2.0-lovart-assets => lovart-assets}/images/image10.png (100%) rename docs/zh-cn/stage-2/frontend/{2.0-lovart-assets => lovart-assets}/images/image11.png (100%) rename docs/zh-cn/stage-2/frontend/{2.0-lovart-assets => lovart-assets}/images/image12.png (100%) rename docs/zh-cn/stage-2/frontend/{2.0-lovart-assets => lovart-assets}/images/image13.png (100%) rename docs/zh-cn/stage-2/frontend/{2.0-lovart-assets => lovart-assets}/images/image14.png (100%) rename docs/zh-cn/stage-2/frontend/{2.0-lovart-assets => lovart-assets}/images/image15.png (100%) rename docs/zh-cn/stage-2/frontend/{2.0-lovart-assets => lovart-assets}/images/image16.png (100%) rename docs/zh-cn/stage-2/frontend/{2.0-lovart-assets => lovart-assets}/images/image17.png (100%) rename docs/zh-cn/stage-2/frontend/{2.0-lovart-assets => lovart-assets}/images/image18.png (100%) rename docs/zh-cn/stage-2/frontend/{2.0-lovart-assets => lovart-assets}/images/image19.png (100%) rename docs/zh-cn/stage-2/frontend/{2.0-lovart-assets => lovart-assets}/images/image2.png (100%) rename docs/zh-cn/stage-2/frontend/{2.0-lovart-assets => lovart-assets}/images/image20.png (100%) rename docs/zh-cn/stage-2/frontend/{2.0-lovart-assets => lovart-assets}/images/image21.png (100%) rename docs/zh-cn/stage-2/frontend/{2.0-lovart-assets => lovart-assets}/images/image22.png (100%) rename docs/zh-cn/stage-2/frontend/{2.0-lovart-assets => lovart-assets}/images/image23.png (100%) rename docs/zh-cn/stage-2/frontend/{2.0-lovart-assets => lovart-assets}/images/image24.png (100%) rename docs/zh-cn/stage-2/frontend/{2.0-lovart-assets => lovart-assets}/images/image25.png (100%) rename docs/zh-cn/stage-2/frontend/{2.0-lovart-assets => lovart-assets}/images/image26.png (100%) rename docs/zh-cn/stage-2/frontend/{2.0-lovart-assets => lovart-assets}/images/image27.png (100%) rename docs/zh-cn/stage-2/frontend/{2.0-lovart-assets => lovart-assets}/images/image28.png (100%) rename docs/zh-cn/stage-2/frontend/{2.0-lovart-assets => lovart-assets}/images/image29.png (100%) rename docs/zh-cn/stage-2/frontend/{2.0-lovart-assets => lovart-assets}/images/image3.png (100%) rename docs/zh-cn/stage-2/frontend/{2.0-lovart-assets => lovart-assets}/images/image30.png (100%) rename docs/zh-cn/stage-2/frontend/{2.0-lovart-assets => lovart-assets}/images/image31.png (100%) rename docs/zh-cn/stage-2/frontend/{2.0-lovart-assets => lovart-assets}/images/image32.png (100%) rename docs/zh-cn/stage-2/frontend/{2.0-lovart-assets => lovart-assets}/images/image33.png (100%) rename docs/zh-cn/stage-2/frontend/{2.0-lovart-assets => lovart-assets}/images/image34.png (100%) rename docs/zh-cn/stage-2/frontend/{2.0-lovart-assets => lovart-assets}/images/image35.png (100%) rename docs/zh-cn/stage-2/frontend/{2.0-lovart-assets => lovart-assets}/images/image36.png (100%) rename docs/zh-cn/stage-2/frontend/{2.0-lovart-assets => lovart-assets}/images/image37.png (100%) rename docs/zh-cn/stage-2/frontend/{2.0-lovart-assets => lovart-assets}/images/image38.png (100%) rename docs/zh-cn/stage-2/frontend/{2.0-lovart-assets => lovart-assets}/images/image39.png (100%) rename docs/zh-cn/stage-2/frontend/{2.0-lovart-assets => lovart-assets}/images/image4.png (100%) rename docs/zh-cn/stage-2/frontend/{2.0-lovart-assets => lovart-assets}/images/image40.png (100%) rename docs/zh-cn/stage-2/frontend/{2.0-lovart-assets => lovart-assets}/images/image41.png (100%) rename docs/zh-cn/stage-2/frontend/{2.0-lovart-assets => lovart-assets}/images/image42.png (100%) rename docs/zh-cn/stage-2/frontend/{2.0-lovart-assets => lovart-assets}/images/image43.png (100%) rename docs/zh-cn/stage-2/frontend/{2.0-lovart-assets => lovart-assets}/images/image44.png (100%) rename docs/zh-cn/stage-2/frontend/{2.0-lovart-assets => lovart-assets}/images/image45.png (100%) rename docs/zh-cn/stage-2/frontend/{2.0-lovart-assets => lovart-assets}/images/image46.png (100%) rename docs/zh-cn/stage-2/frontend/{2.0-lovart-assets => lovart-assets}/images/image47.png (100%) rename docs/zh-cn/stage-2/frontend/{2.0-lovart-assets => lovart-assets}/images/image48.png (100%) rename docs/zh-cn/stage-2/frontend/{2.0-lovart-assets => lovart-assets}/images/image49.png (100%) rename docs/zh-cn/stage-2/frontend/{2.0-lovart-assets => lovart-assets}/images/image5.png (100%) rename docs/zh-cn/stage-2/frontend/{2.0-lovart-assets => lovart-assets}/images/image50.png (100%) rename docs/zh-cn/stage-2/frontend/{2.0-lovart-assets => lovart-assets}/images/image51.png (100%) rename docs/zh-cn/stage-2/frontend/{2.0-lovart-assets => lovart-assets}/images/image52.png (100%) rename docs/zh-cn/stage-2/frontend/{2.0-lovart-assets => lovart-assets}/images/image53.png (100%) rename docs/zh-cn/stage-2/frontend/{2.0-lovart-assets => lovart-assets}/images/image54.png (100%) rename docs/zh-cn/stage-2/frontend/{2.0-lovart-assets => lovart-assets}/images/image55.png (100%) rename docs/zh-cn/stage-2/frontend/{2.0-lovart-assets => lovart-assets}/images/image56.png (100%) rename docs/zh-cn/stage-2/frontend/{2.0-lovart-assets => lovart-assets}/images/image57.png (100%) rename docs/zh-cn/stage-2/frontend/{2.0-lovart-assets => lovart-assets}/images/image58.png (100%) rename docs/zh-cn/stage-2/frontend/{2.0-lovart-assets => lovart-assets}/images/image6.png (100%) rename docs/zh-cn/stage-2/frontend/{2.0-lovart-assets => lovart-assets}/images/image7.png (100%) rename docs/zh-cn/stage-2/frontend/{2.0-lovart-assets => lovart-assets}/images/image8.png (100%) rename docs/zh-cn/stage-2/frontend/{2.0-lovart-assets => lovart-assets}/images/image9.png (100%) rename docs/zh-cn/stage-2/frontend/{2.0-lovart-assets => lovart-assets}/index.md (99%) rename docs/zh-cn/stage-2/frontend/{2.7-modern-component-library => modern-component-library}/index.md (100%) rename docs/zh-cn/stage-2/frontend/{2.3-multi-product-ui => multi-product-ui}/index.md (100%) rename docs/zh-cn/stage-2/frontend/{2.2-ui-design => ui-design}/index.md (100%) rename docs/zh-cn/stage-3/ai-advanced/{3.a2-langgraph-advanced-rag => langgraph-advanced-rag}/index.md (100%) rename docs/zh-cn/stage-3/ai-advanced/{3.a3-llamaindex-enterprise-knowledge-base => llamaindex-enterprise-knowledge-base}/index.md (100%) rename docs/zh-cn/stage-3/ai-advanced/{3.a1-rag-introduction => rag-introduction}/images/image1.png (100%) rename docs/zh-cn/stage-3/ai-advanced/{3.a1-rag-introduction => rag-introduction}/images/image10.png (100%) rename docs/zh-cn/stage-3/ai-advanced/{3.a1-rag-introduction => rag-introduction}/images/image11.png (100%) rename docs/zh-cn/stage-3/ai-advanced/{3.a1-rag-introduction => rag-introduction}/images/image12.png (100%) rename docs/zh-cn/stage-3/ai-advanced/{3.a1-rag-introduction => rag-introduction}/images/image13.png (100%) rename docs/zh-cn/stage-3/ai-advanced/{3.a1-rag-introduction => rag-introduction}/images/image14.png (100%) rename docs/zh-cn/stage-3/ai-advanced/{3.a1-rag-introduction => rag-introduction}/images/image15.png (100%) rename docs/zh-cn/stage-3/ai-advanced/{3.a1-rag-introduction => rag-introduction}/images/image2.png (100%) rename docs/zh-cn/stage-3/ai-advanced/{3.a1-rag-introduction => rag-introduction}/images/image3.png (100%) rename docs/zh-cn/stage-3/ai-advanced/{3.a1-rag-introduction => rag-introduction}/images/image4.png (100%) rename docs/zh-cn/stage-3/ai-advanced/{3.a1-rag-introduction => rag-introduction}/images/image5.png (100%) rename docs/zh-cn/stage-3/ai-advanced/{3.a1-rag-introduction => rag-introduction}/images/image6.png (100%) rename docs/zh-cn/stage-3/ai-advanced/{3.a1-rag-introduction => rag-introduction}/images/image7.png (100%) rename docs/zh-cn/stage-3/ai-advanced/{3.a1-rag-introduction => rag-introduction}/images/image8.png (100%) rename docs/zh-cn/stage-3/ai-advanced/{3.a1-rag-introduction => rag-introduction}/images/image9.png (100%) rename docs/zh-cn/stage-3/ai-advanced/{3.a1-rag-introduction => rag-introduction}/index.md (100%) rename docs/zh-cn/stage-3/cross-platform/{3.5-android-app => android-app}/images/image1.png (100%) rename docs/zh-cn/stage-3/cross-platform/{3.5-android-app => android-app}/images/image10.png (100%) rename docs/zh-cn/stage-3/cross-platform/{3.5-android-app => android-app}/images/image11.png (100%) rename docs/zh-cn/stage-3/cross-platform/{3.5-android-app => android-app}/images/image12.png (100%) rename docs/zh-cn/stage-3/cross-platform/{3.5-android-app => android-app}/images/image13.png (100%) rename docs/zh-cn/stage-3/cross-platform/{3.5-android-app => android-app}/images/image14.png (100%) rename docs/zh-cn/stage-3/cross-platform/{3.5-android-app => android-app}/images/image15.png (100%) rename docs/zh-cn/stage-3/cross-platform/{3.5-android-app => android-app}/images/image16.png (100%) rename docs/zh-cn/stage-3/cross-platform/{3.5-android-app => android-app}/images/image17.png (100%) rename docs/zh-cn/stage-3/cross-platform/{3.5-android-app => android-app}/images/image18.png (100%) rename docs/zh-cn/stage-3/cross-platform/{3.5-android-app => android-app}/images/image19.png (100%) rename docs/zh-cn/stage-3/cross-platform/{3.5-android-app => android-app}/images/image2.png (100%) rename docs/zh-cn/stage-3/cross-platform/{3.5-android-app => android-app}/images/image20.png (100%) rename docs/zh-cn/stage-3/cross-platform/{3.5-android-app => android-app}/images/image21.png (100%) rename docs/zh-cn/stage-3/cross-platform/{3.5-android-app => android-app}/images/image22.png (100%) rename docs/zh-cn/stage-3/cross-platform/{3.5-android-app => android-app}/images/image23.png (100%) rename docs/zh-cn/stage-3/cross-platform/{3.5-android-app => android-app}/images/image24.png (100%) rename docs/zh-cn/stage-3/cross-platform/{3.5-android-app => android-app}/images/image25.png (100%) rename docs/zh-cn/stage-3/cross-platform/{3.5-android-app => android-app}/images/image26.png (100%) rename docs/zh-cn/stage-3/cross-platform/{3.5-android-app => android-app}/images/image27.png (100%) rename docs/zh-cn/stage-3/cross-platform/{3.5-android-app => android-app}/images/image28.png (100%) rename docs/zh-cn/stage-3/cross-platform/{3.5-android-app => android-app}/images/image29.png (100%) rename docs/zh-cn/stage-3/cross-platform/{3.5-android-app => android-app}/images/image3.png (100%) rename docs/zh-cn/stage-3/cross-platform/{3.5-android-app => android-app}/images/image30.png (100%) rename docs/zh-cn/stage-3/cross-platform/{3.5-android-app => android-app}/images/image31.png (100%) rename docs/zh-cn/stage-3/cross-platform/{3.5-android-app => android-app}/images/image32.png (100%) rename docs/zh-cn/stage-3/cross-platform/{3.5-android-app => android-app}/images/image33.png (100%) rename docs/zh-cn/stage-3/cross-platform/{3.5-android-app => android-app}/images/image34.png (100%) rename docs/zh-cn/stage-3/cross-platform/{3.5-android-app => android-app}/images/image35.png (100%) rename docs/zh-cn/stage-3/cross-platform/{3.5-android-app => android-app}/images/image36.png (100%) rename docs/zh-cn/stage-3/cross-platform/{3.5-android-app => android-app}/images/image37.png (100%) rename docs/zh-cn/stage-3/cross-platform/{3.5-android-app => android-app}/images/image38.png (100%) rename docs/zh-cn/stage-3/cross-platform/{3.5-android-app => android-app}/images/image39.png (100%) rename docs/zh-cn/stage-3/cross-platform/{3.5-android-app => android-app}/images/image4.png (100%) rename docs/zh-cn/stage-3/cross-platform/{3.5-android-app => android-app}/images/image40.png (100%) rename docs/zh-cn/stage-3/cross-platform/{3.5-android-app => android-app}/images/image41.png (100%) rename docs/zh-cn/stage-3/cross-platform/{3.5-android-app => android-app}/images/image42.png (100%) rename docs/zh-cn/stage-3/cross-platform/{3.5-android-app => android-app}/images/image43.png (100%) rename docs/zh-cn/stage-3/cross-platform/{3.5-android-app => android-app}/images/image44.png (100%) rename docs/zh-cn/stage-3/cross-platform/{3.5-android-app => android-app}/images/image45.png (100%) rename docs/zh-cn/stage-3/cross-platform/{3.5-android-app => android-app}/images/image46.png (100%) rename docs/zh-cn/stage-3/cross-platform/{3.5-android-app => android-app}/images/image47.png (100%) rename docs/zh-cn/stage-3/cross-platform/{3.5-android-app => android-app}/images/image48.png (100%) rename docs/zh-cn/stage-3/cross-platform/{3.5-android-app => android-app}/images/image49.png (100%) rename docs/zh-cn/stage-3/cross-platform/{3.5-android-app => android-app}/images/image5.png (100%) rename docs/zh-cn/stage-3/cross-platform/{3.5-android-app => android-app}/images/image50.png (100%) rename docs/zh-cn/stage-3/cross-platform/{3.5-android-app => android-app}/images/image51.png (100%) rename docs/zh-cn/stage-3/cross-platform/{3.5-android-app => android-app}/images/image52.png (100%) rename docs/zh-cn/stage-3/cross-platform/{3.5-android-app => android-app}/images/image53.png (100%) rename docs/zh-cn/stage-3/cross-platform/{3.5-android-app => android-app}/images/image54.png (100%) rename docs/zh-cn/stage-3/cross-platform/{3.5-android-app => android-app}/images/image55.png (100%) rename docs/zh-cn/stage-3/cross-platform/{3.5-android-app => android-app}/images/image56.png (100%) rename docs/zh-cn/stage-3/cross-platform/{3.5-android-app => android-app}/images/image57.png (100%) rename docs/zh-cn/stage-3/cross-platform/{3.5-android-app => android-app}/images/image58.png (100%) rename docs/zh-cn/stage-3/cross-platform/{3.5-android-app => android-app}/images/image59.png (100%) rename docs/zh-cn/stage-3/cross-platform/{3.5-android-app => android-app}/images/image6.png (100%) rename docs/zh-cn/stage-3/cross-platform/{3.5-android-app => android-app}/images/image60.png (100%) rename docs/zh-cn/stage-3/cross-platform/{3.5-android-app => android-app}/images/image61.png (100%) rename docs/zh-cn/stage-3/cross-platform/{3.5-android-app => android-app}/images/image62.png (100%) rename docs/zh-cn/stage-3/cross-platform/{3.5-android-app => android-app}/images/image63.png (100%) rename docs/zh-cn/stage-3/cross-platform/{3.5-android-app => android-app}/images/image64.png (100%) rename docs/zh-cn/stage-3/cross-platform/{3.5-android-app => android-app}/images/image65.png (100%) rename docs/zh-cn/stage-3/cross-platform/{3.5-android-app => android-app}/images/image7.png (100%) rename docs/zh-cn/stage-3/cross-platform/{3.5-android-app => android-app}/images/image8.png (100%) rename docs/zh-cn/stage-3/cross-platform/{3.5-android-app => android-app}/images/image9.png (100%) rename docs/zh-cn/stage-3/cross-platform/{3.5-android-app => android-app}/index.md (100%) rename docs/zh-cn/stage-3/cross-platform/{3.9-browser-ai-extension => browser-ai-extension}/images/image1.png (100%) rename docs/zh-cn/stage-3/cross-platform/{3.9-browser-ai-extension => browser-ai-extension}/images/image10-1.png (100%) rename docs/zh-cn/stage-3/cross-platform/{3.9-browser-ai-extension => browser-ai-extension}/images/image10.png (100%) rename docs/zh-cn/stage-3/cross-platform/{3.9-browser-ai-extension => browser-ai-extension}/images/image2.png (100%) rename docs/zh-cn/stage-3/cross-platform/{3.9-browser-ai-extension => browser-ai-extension}/images/image2b.png (100%) rename docs/zh-cn/stage-3/cross-platform/{3.9-browser-ai-extension => browser-ai-extension}/images/image3.png (100%) rename docs/zh-cn/stage-3/cross-platform/{3.9-browser-ai-extension => browser-ai-extension}/images/image4.png (100%) rename docs/zh-cn/stage-3/cross-platform/{3.9-browser-ai-extension => browser-ai-extension}/images/image5.png (100%) rename docs/zh-cn/stage-3/cross-platform/{3.9-browser-ai-extension => browser-ai-extension}/images/image6-1.png (100%) rename docs/zh-cn/stage-3/cross-platform/{3.9-browser-ai-extension => browser-ai-extension}/images/image6-2.png (100%) rename docs/zh-cn/stage-3/cross-platform/{3.9-browser-ai-extension => browser-ai-extension}/images/image6-3.png (100%) rename docs/zh-cn/stage-3/cross-platform/{3.9-browser-ai-extension => browser-ai-extension}/images/image7.png (100%) rename docs/zh-cn/stage-3/cross-platform/{3.9-browser-ai-extension => browser-ai-extension}/images/image8.png (100%) rename docs/zh-cn/stage-3/cross-platform/{3.9-browser-ai-extension => browser-ai-extension}/images/image9.png (100%) rename docs/zh-cn/stage-3/cross-platform/{3.9-browser-ai-extension => browser-ai-extension}/index.md (100%) rename docs/zh-cn/stage-3/cross-platform/{3.1-choose-platform => choose-platform}/index.md (98%) rename docs/zh-cn/stage-3/cross-platform/{3.10-electron-voice-to-text => electron-voice-to-text}/images/image1.png (100%) rename docs/zh-cn/stage-3/cross-platform/{3.10-electron-voice-to-text => electron-voice-to-text}/images/image10.png (100%) rename docs/zh-cn/stage-3/cross-platform/{3.10-electron-voice-to-text => electron-voice-to-text}/images/image2.png (100%) rename docs/zh-cn/stage-3/cross-platform/{3.10-electron-voice-to-text => electron-voice-to-text}/images/image3.png (100%) rename docs/zh-cn/stage-3/cross-platform/{3.10-electron-voice-to-text => electron-voice-to-text}/images/image4.png (100%) rename docs/zh-cn/stage-3/cross-platform/{3.10-electron-voice-to-text => electron-voice-to-text}/images/image5.png (100%) rename docs/zh-cn/stage-3/cross-platform/{3.10-electron-voice-to-text => electron-voice-to-text}/images/image6.png (100%) rename docs/zh-cn/stage-3/cross-platform/{3.10-electron-voice-to-text => electron-voice-to-text}/images/image7.png (100%) rename docs/zh-cn/stage-3/cross-platform/{3.10-electron-voice-to-text => electron-voice-to-text}/images/image8.png (100%) rename docs/zh-cn/stage-3/cross-platform/{3.10-electron-voice-to-text => electron-voice-to-text}/images/image9.png (100%) rename docs/zh-cn/stage-3/cross-platform/{3.10-electron-voice-to-text => electron-voice-to-text}/index.md (100%) rename docs/zh-cn/stage-3/cross-platform/{3.6-ios-app => ios-app}/images/image1.png (100%) rename docs/zh-cn/stage-3/cross-platform/{3.6-ios-app => ios-app}/images/image10.png (100%) rename docs/zh-cn/stage-3/cross-platform/{3.6-ios-app => ios-app}/images/image11.png (100%) rename docs/zh-cn/stage-3/cross-platform/{3.6-ios-app => ios-app}/images/image12.png (100%) rename docs/zh-cn/stage-3/cross-platform/{3.6-ios-app => ios-app}/images/image13.png (100%) rename docs/zh-cn/stage-3/cross-platform/{3.6-ios-app => ios-app}/images/image14.png (100%) rename docs/zh-cn/stage-3/cross-platform/{3.6-ios-app => ios-app}/images/image15.png (100%) rename docs/zh-cn/stage-3/cross-platform/{3.6-ios-app => ios-app}/images/image16.png (100%) rename docs/zh-cn/stage-3/cross-platform/{3.6-ios-app => ios-app}/images/image17.png (100%) rename docs/zh-cn/stage-3/cross-platform/{3.6-ios-app => ios-app}/images/image18.png (100%) rename docs/zh-cn/stage-3/cross-platform/{3.6-ios-app => ios-app}/images/image19.png (100%) rename docs/zh-cn/stage-3/cross-platform/{3.6-ios-app => ios-app}/images/image2.png (100%) rename docs/zh-cn/stage-3/cross-platform/{3.6-ios-app => ios-app}/images/image20.png (100%) rename docs/zh-cn/stage-3/cross-platform/{3.6-ios-app => ios-app}/images/image21.png (100%) rename docs/zh-cn/stage-3/cross-platform/{3.6-ios-app => ios-app}/images/image22.png (100%) rename docs/zh-cn/stage-3/cross-platform/{3.6-ios-app => ios-app}/images/image23.png (100%) rename docs/zh-cn/stage-3/cross-platform/{3.6-ios-app => ios-app}/images/image24.png (100%) rename docs/zh-cn/stage-3/cross-platform/{3.6-ios-app => ios-app}/images/image25.png (100%) rename docs/zh-cn/stage-3/cross-platform/{3.6-ios-app => ios-app}/images/image26.png (100%) rename docs/zh-cn/stage-3/cross-platform/{3.6-ios-app => ios-app}/images/image27.png (100%) rename docs/zh-cn/stage-3/cross-platform/{3.6-ios-app => ios-app}/images/image28.png (100%) rename docs/zh-cn/stage-3/cross-platform/{3.6-ios-app => ios-app}/images/image29.png (100%) rename docs/zh-cn/stage-3/cross-platform/{3.6-ios-app => ios-app}/images/image3.png (100%) rename docs/zh-cn/stage-3/cross-platform/{3.6-ios-app => ios-app}/images/image30.png (100%) rename docs/zh-cn/stage-3/cross-platform/{3.6-ios-app => ios-app}/images/image31.png (100%) rename docs/zh-cn/stage-3/cross-platform/{3.6-ios-app => ios-app}/images/image32.png (100%) rename docs/zh-cn/stage-3/cross-platform/{3.6-ios-app => ios-app}/images/image33.png (100%) rename docs/zh-cn/stage-3/cross-platform/{3.6-ios-app => ios-app}/images/image34.png (100%) rename docs/zh-cn/stage-3/cross-platform/{3.6-ios-app => ios-app}/images/image35.png (100%) rename docs/zh-cn/stage-3/cross-platform/{3.6-ios-app => ios-app}/images/image36.png (100%) rename docs/zh-cn/stage-3/cross-platform/{3.6-ios-app => ios-app}/images/image37.png (100%) rename docs/zh-cn/stage-3/cross-platform/{3.6-ios-app => ios-app}/images/image38.png (100%) rename docs/zh-cn/stage-3/cross-platform/{3.6-ios-app => ios-app}/images/image39.png (100%) rename docs/zh-cn/stage-3/cross-platform/{3.6-ios-app => ios-app}/images/image4.png (100%) rename docs/zh-cn/stage-3/cross-platform/{3.6-ios-app => ios-app}/images/image40.png (100%) rename docs/zh-cn/stage-3/cross-platform/{3.6-ios-app => ios-app}/images/image41.png (100%) rename docs/zh-cn/stage-3/cross-platform/{3.6-ios-app => ios-app}/images/image42.png (100%) rename docs/zh-cn/stage-3/cross-platform/{3.6-ios-app => ios-app}/images/image43.png (100%) rename docs/zh-cn/stage-3/cross-platform/{3.6-ios-app => ios-app}/images/image44.png (100%) rename docs/zh-cn/stage-3/cross-platform/{3.6-ios-app => ios-app}/images/image45.png (100%) rename docs/zh-cn/stage-3/cross-platform/{3.6-ios-app => ios-app}/images/image46.png (100%) rename docs/zh-cn/stage-3/cross-platform/{3.6-ios-app => ios-app}/images/image47.png (100%) rename docs/zh-cn/stage-3/cross-platform/{3.6-ios-app => ios-app}/images/image5.png (100%) rename docs/zh-cn/stage-3/cross-platform/{3.6-ios-app => ios-app}/images/image6.png (100%) rename docs/zh-cn/stage-3/cross-platform/{3.6-ios-app => ios-app}/images/image7.png (100%) rename docs/zh-cn/stage-3/cross-platform/{3.6-ios-app => ios-app}/images/image8.png (100%) rename docs/zh-cn/stage-3/cross-platform/{3.6-ios-app => ios-app}/images/image9.png (100%) rename docs/zh-cn/stage-3/cross-platform/{3.6-ios-app => ios-app}/index.md (100%) rename docs/zh-cn/stage-3/cross-platform/{3.11-nft-minting => nft-minting}/index.md (100%) rename docs/zh-cn/stage-3/cross-platform/{3.8-pwa-local-app => pwa-local-app}/images/icon-192.png (100%) rename docs/zh-cn/stage-3/cross-platform/{3.8-pwa-local-app => pwa-local-app}/images/icon-512.png (100%) rename docs/zh-cn/stage-3/cross-platform/{3.8-pwa-local-app => pwa-local-app}/images/image0.png (100%) rename docs/zh-cn/stage-3/cross-platform/{3.8-pwa-local-app => pwa-local-app}/images/image1.png (100%) rename docs/zh-cn/stage-3/cross-platform/{3.8-pwa-local-app => pwa-local-app}/images/image10.png (100%) rename docs/zh-cn/stage-3/cross-platform/{3.8-pwa-local-app => pwa-local-app}/images/image11.png (100%) rename docs/zh-cn/stage-3/cross-platform/{3.8-pwa-local-app => pwa-local-app}/images/image2.png (100%) rename docs/zh-cn/stage-3/cross-platform/{3.8-pwa-local-app => pwa-local-app}/images/image3.png (100%) rename docs/zh-cn/stage-3/cross-platform/{3.8-pwa-local-app => pwa-local-app}/images/image4.png (100%) rename docs/zh-cn/stage-3/cross-platform/{3.8-pwa-local-app => pwa-local-app}/images/image5.png (100%) rename docs/zh-cn/stage-3/cross-platform/{3.8-pwa-local-app => pwa-local-app}/images/image6.png (100%) rename docs/zh-cn/stage-3/cross-platform/{3.8-pwa-local-app => pwa-local-app}/images/image7.png (100%) rename docs/zh-cn/stage-3/cross-platform/{3.8-pwa-local-app => pwa-local-app}/images/image8.png (100%) rename docs/zh-cn/stage-3/cross-platform/{3.8-pwa-local-app => pwa-local-app}/images/image9.png (100%) rename docs/zh-cn/stage-3/cross-platform/{3.8-pwa-local-app => pwa-local-app}/index.md (100%) rename docs/zh-cn/stage-3/cross-platform/{3.13-qt-industrial-hmi => qt-industrial-hmi}/index.md (100%) rename docs/zh-cn/stage-3/cross-platform/{3.12-vscode-extension => vscode-extension}/images/image1.png (100%) rename docs/zh-cn/stage-3/cross-platform/{3.12-vscode-extension => vscode-extension}/images/image10.png (100%) rename docs/zh-cn/stage-3/cross-platform/{3.12-vscode-extension => vscode-extension}/images/image11.png (100%) rename docs/zh-cn/stage-3/cross-platform/{3.12-vscode-extension => vscode-extension}/images/image2.png (100%) rename docs/zh-cn/stage-3/cross-platform/{3.12-vscode-extension => vscode-extension}/images/image3.png (100%) rename docs/zh-cn/stage-3/cross-platform/{3.12-vscode-extension => vscode-extension}/images/image4.png (100%) rename docs/zh-cn/stage-3/cross-platform/{3.12-vscode-extension => vscode-extension}/images/image5.png (100%) rename docs/zh-cn/stage-3/cross-platform/{3.12-vscode-extension => vscode-extension}/images/image6.png (100%) rename docs/zh-cn/stage-3/cross-platform/{3.12-vscode-extension => vscode-extension}/images/image7.png (100%) rename docs/zh-cn/stage-3/cross-platform/{3.12-vscode-extension => vscode-extension}/images/image8.png (100%) rename docs/zh-cn/stage-3/cross-platform/{3.12-vscode-extension => vscode-extension}/images/image9.png (100%) rename docs/zh-cn/stage-3/cross-platform/{3.12-vscode-extension => vscode-extension}/index.md (100%) rename docs/zh-cn/stage-3/cross-platform/{3.4-wechat-miniprogram-backend => wechat-miniprogram-backend}/index.md (100%) rename docs/zh-cn/stage-3/cross-platform/{3.3-wechat-miniprogram => wechat-miniprogram}/images/image1.png (100%) rename docs/zh-cn/stage-3/cross-platform/{3.3-wechat-miniprogram => wechat-miniprogram}/images/image10.png (100%) rename docs/zh-cn/stage-3/cross-platform/{3.3-wechat-miniprogram => wechat-miniprogram}/images/image11.png (100%) rename docs/zh-cn/stage-3/cross-platform/{3.3-wechat-miniprogram => wechat-miniprogram}/images/image12.png (100%) rename docs/zh-cn/stage-3/cross-platform/{3.3-wechat-miniprogram => wechat-miniprogram}/images/image13.png (100%) rename docs/zh-cn/stage-3/cross-platform/{3.3-wechat-miniprogram => wechat-miniprogram}/images/image14.png (100%) rename docs/zh-cn/stage-3/cross-platform/{3.3-wechat-miniprogram => wechat-miniprogram}/images/image15.png (100%) rename docs/zh-cn/stage-3/cross-platform/{3.3-wechat-miniprogram => wechat-miniprogram}/images/image16.png (100%) rename docs/zh-cn/stage-3/cross-platform/{3.3-wechat-miniprogram => wechat-miniprogram}/images/image17.png (100%) rename docs/zh-cn/stage-3/cross-platform/{3.3-wechat-miniprogram => wechat-miniprogram}/images/image18.png (100%) rename docs/zh-cn/stage-3/cross-platform/{3.3-wechat-miniprogram => wechat-miniprogram}/images/image19.png (100%) rename docs/zh-cn/stage-3/cross-platform/{3.3-wechat-miniprogram => wechat-miniprogram}/images/image2.png (100%) rename docs/zh-cn/stage-3/cross-platform/{3.3-wechat-miniprogram => wechat-miniprogram}/images/image20.png (100%) rename docs/zh-cn/stage-3/cross-platform/{3.3-wechat-miniprogram => wechat-miniprogram}/images/image21.png (100%) rename docs/zh-cn/stage-3/cross-platform/{3.3-wechat-miniprogram => wechat-miniprogram}/images/image22.png (100%) rename docs/zh-cn/stage-3/cross-platform/{3.3-wechat-miniprogram => wechat-miniprogram}/images/image23.png (100%) rename docs/zh-cn/stage-3/cross-platform/{3.3-wechat-miniprogram => wechat-miniprogram}/images/image24.png (100%) rename docs/zh-cn/stage-3/cross-platform/{3.3-wechat-miniprogram => wechat-miniprogram}/images/image25.png (100%) rename docs/zh-cn/stage-3/cross-platform/{3.3-wechat-miniprogram => wechat-miniprogram}/images/image26.png (100%) rename docs/zh-cn/stage-3/cross-platform/{3.3-wechat-miniprogram => wechat-miniprogram}/images/image27.png (100%) rename docs/zh-cn/stage-3/cross-platform/{3.3-wechat-miniprogram => wechat-miniprogram}/images/image28.png (100%) rename docs/zh-cn/stage-3/cross-platform/{3.3-wechat-miniprogram => wechat-miniprogram}/images/image29.png (100%) rename docs/zh-cn/stage-3/cross-platform/{3.3-wechat-miniprogram => wechat-miniprogram}/images/image3.png (100%) rename docs/zh-cn/stage-3/cross-platform/{3.3-wechat-miniprogram => wechat-miniprogram}/images/image30.png (100%) rename docs/zh-cn/stage-3/cross-platform/{3.3-wechat-miniprogram => wechat-miniprogram}/images/image31.png (100%) rename docs/zh-cn/stage-3/cross-platform/{3.3-wechat-miniprogram => wechat-miniprogram}/images/image32.png (100%) rename docs/zh-cn/stage-3/cross-platform/{3.3-wechat-miniprogram => wechat-miniprogram}/images/image33.png (100%) rename docs/zh-cn/stage-3/cross-platform/{3.3-wechat-miniprogram => wechat-miniprogram}/images/image34.png (100%) rename docs/zh-cn/stage-3/cross-platform/{3.3-wechat-miniprogram => wechat-miniprogram}/images/image35.png (100%) rename docs/zh-cn/stage-3/cross-platform/{3.3-wechat-miniprogram => wechat-miniprogram}/images/image36.png (100%) rename docs/zh-cn/stage-3/cross-platform/{3.3-wechat-miniprogram => wechat-miniprogram}/images/image37.png (100%) rename docs/zh-cn/stage-3/cross-platform/{3.3-wechat-miniprogram => wechat-miniprogram}/images/image38.png (100%) rename docs/zh-cn/stage-3/cross-platform/{3.3-wechat-miniprogram => wechat-miniprogram}/images/image39.png (100%) rename docs/zh-cn/stage-3/cross-platform/{3.3-wechat-miniprogram => wechat-miniprogram}/images/image4.png (100%) rename docs/zh-cn/stage-3/cross-platform/{3.3-wechat-miniprogram => wechat-miniprogram}/images/image40.png (100%) rename docs/zh-cn/stage-3/cross-platform/{3.3-wechat-miniprogram => wechat-miniprogram}/images/image41.png (100%) rename docs/zh-cn/stage-3/cross-platform/{3.3-wechat-miniprogram => wechat-miniprogram}/images/image42.png (100%) rename docs/zh-cn/stage-3/cross-platform/{3.3-wechat-miniprogram => wechat-miniprogram}/images/image5.png (100%) rename docs/zh-cn/stage-3/cross-platform/{3.3-wechat-miniprogram => wechat-miniprogram}/images/image6.png (100%) rename docs/zh-cn/stage-3/cross-platform/{3.3-wechat-miniprogram => wechat-miniprogram}/images/image7.png (100%) rename docs/zh-cn/stage-3/cross-platform/{3.3-wechat-miniprogram => wechat-miniprogram}/images/image8.png (100%) rename docs/zh-cn/stage-3/cross-platform/{3.3-wechat-miniprogram => wechat-miniprogram}/images/image9.png (100%) rename docs/zh-cn/stage-3/cross-platform/{3.3-wechat-miniprogram => wechat-miniprogram}/index.md (100%) rename docs/zh-cn/stage-3/personal-brand/{3.7-personal-website-blog => personal-website-blog}/images/image1.png (100%) rename docs/zh-cn/stage-3/personal-brand/{3.7-personal-website-blog => personal-website-blog}/images/image10.png (100%) rename docs/zh-cn/stage-3/personal-brand/{3.7-personal-website-blog => personal-website-blog}/images/image11.png (100%) rename docs/zh-cn/stage-3/personal-brand/{3.7-personal-website-blog => personal-website-blog}/images/image12.png (100%) rename docs/zh-cn/stage-3/personal-brand/{3.7-personal-website-blog => personal-website-blog}/images/image13.png (100%) rename docs/zh-cn/stage-3/personal-brand/{3.7-personal-website-blog => personal-website-blog}/images/image14.png (100%) rename docs/zh-cn/stage-3/personal-brand/{3.7-personal-website-blog => personal-website-blog}/images/image15.png (100%) rename docs/zh-cn/stage-3/personal-brand/{3.7-personal-website-blog => personal-website-blog}/images/image16.png (100%) rename docs/zh-cn/stage-3/personal-brand/{3.7-personal-website-blog => personal-website-blog}/images/image17.png (100%) rename docs/zh-cn/stage-3/personal-brand/{3.7-personal-website-blog => personal-website-blog}/images/image18.png (100%) rename docs/zh-cn/stage-3/personal-brand/{3.7-personal-website-blog => personal-website-blog}/images/image19.png (100%) rename docs/zh-cn/stage-3/personal-brand/{3.7-personal-website-blog => personal-website-blog}/images/image2.png (100%) rename docs/zh-cn/stage-3/personal-brand/{3.7-personal-website-blog => personal-website-blog}/images/image20.png (100%) rename docs/zh-cn/stage-3/personal-brand/{3.7-personal-website-blog => personal-website-blog}/images/image21.png (100%) rename docs/zh-cn/stage-3/personal-brand/{3.7-personal-website-blog => personal-website-blog}/images/image22.png (100%) rename docs/zh-cn/stage-3/personal-brand/{3.7-personal-website-blog => personal-website-blog}/images/image23.png (100%) rename docs/zh-cn/stage-3/personal-brand/{3.7-personal-website-blog => personal-website-blog}/images/image24.png (100%) rename docs/zh-cn/stage-3/personal-brand/{3.7-personal-website-blog => personal-website-blog}/images/image25.png (100%) rename docs/zh-cn/stage-3/personal-brand/{3.7-personal-website-blog => personal-website-blog}/images/image26.png (100%) rename docs/zh-cn/stage-3/personal-brand/{3.7-personal-website-blog => personal-website-blog}/images/image27.png (100%) rename docs/zh-cn/stage-3/personal-brand/{3.7-personal-website-blog => personal-website-blog}/images/image28.png (100%) rename docs/zh-cn/stage-3/personal-brand/{3.7-personal-website-blog => personal-website-blog}/images/image29.png (100%) rename docs/zh-cn/stage-3/personal-brand/{3.7-personal-website-blog => personal-website-blog}/images/image3.png (100%) rename docs/zh-cn/stage-3/personal-brand/{3.7-personal-website-blog => personal-website-blog}/images/image30.png (100%) rename docs/zh-cn/stage-3/personal-brand/{3.7-personal-website-blog => personal-website-blog}/images/image31.png (100%) rename docs/zh-cn/stage-3/personal-brand/{3.7-personal-website-blog => personal-website-blog}/images/image32.png (100%) rename docs/zh-cn/stage-3/personal-brand/{3.7-personal-website-blog => personal-website-blog}/images/image33.png (100%) rename docs/zh-cn/stage-3/personal-brand/{3.7-personal-website-blog => personal-website-blog}/images/image34.png (100%) rename docs/zh-cn/stage-3/personal-brand/{3.7-personal-website-blog => personal-website-blog}/images/image35.png (100%) rename docs/zh-cn/stage-3/personal-brand/{3.7-personal-website-blog => personal-website-blog}/images/image36.png (100%) rename docs/zh-cn/stage-3/personal-brand/{3.7-personal-website-blog => personal-website-blog}/images/image37.png (100%) rename docs/zh-cn/stage-3/personal-brand/{3.7-personal-website-blog => personal-website-blog}/images/image38.png (100%) rename docs/zh-cn/stage-3/personal-brand/{3.7-personal-website-blog => personal-website-blog}/images/image39.png (100%) rename docs/zh-cn/stage-3/personal-brand/{3.7-personal-website-blog => personal-website-blog}/images/image4.png (100%) rename docs/zh-cn/stage-3/personal-brand/{3.7-personal-website-blog => personal-website-blog}/images/image40.png (100%) rename docs/zh-cn/stage-3/personal-brand/{3.7-personal-website-blog => personal-website-blog}/images/image41.png (100%) rename docs/zh-cn/stage-3/personal-brand/{3.7-personal-website-blog => personal-website-blog}/images/image42.png (100%) rename docs/zh-cn/stage-3/personal-brand/{3.7-personal-website-blog => personal-website-blog}/images/image43.png (100%) rename docs/zh-cn/stage-3/personal-brand/{3.7-personal-website-blog => personal-website-blog}/images/image44.png (100%) rename docs/zh-cn/stage-3/personal-brand/{3.7-personal-website-blog => personal-website-blog}/images/image45.png (100%) rename docs/zh-cn/stage-3/personal-brand/{3.7-personal-website-blog => personal-website-blog}/images/image46.png (100%) rename docs/zh-cn/stage-3/personal-brand/{3.7-personal-website-blog => personal-website-blog}/images/image47.png (100%) rename docs/zh-cn/stage-3/personal-brand/{3.7-personal-website-blog => personal-website-blog}/images/image48.png (100%) rename docs/zh-cn/stage-3/personal-brand/{3.7-personal-website-blog => personal-website-blog}/images/image49.png (100%) rename docs/zh-cn/stage-3/personal-brand/{3.7-personal-website-blog => personal-website-blog}/images/image5.png (100%) rename docs/zh-cn/stage-3/personal-brand/{3.7-personal-website-blog => personal-website-blog}/images/image50.png (100%) rename docs/zh-cn/stage-3/personal-brand/{3.7-personal-website-blog => personal-website-blog}/images/image51.png (100%) rename docs/zh-cn/stage-3/personal-brand/{3.7-personal-website-blog => personal-website-blog}/images/image52.png (100%) rename docs/zh-cn/stage-3/personal-brand/{3.7-personal-website-blog => personal-website-blog}/images/image53.png (100%) rename docs/zh-cn/stage-3/personal-brand/{3.7-personal-website-blog => personal-website-blog}/images/image54.png (100%) rename docs/zh-cn/stage-3/personal-brand/{3.7-personal-website-blog => personal-website-blog}/images/image55.png (100%) rename docs/zh-cn/stage-3/personal-brand/{3.7-personal-website-blog => personal-website-blog}/images/image56.png (100%) rename docs/zh-cn/stage-3/personal-brand/{3.7-personal-website-blog => personal-website-blog}/images/image57.png (100%) rename docs/zh-cn/stage-3/personal-brand/{3.7-personal-website-blog => personal-website-blog}/images/image6.png (100%) rename docs/zh-cn/stage-3/personal-brand/{3.7-personal-website-blog => personal-website-blog}/images/image7.png (100%) rename docs/zh-cn/stage-3/personal-brand/{3.7-personal-website-blog => personal-website-blog}/images/image8.png (100%) rename docs/zh-cn/stage-3/personal-brand/{3.7-personal-website-blog => personal-website-blog}/images/image9.png (100%) rename docs/zh-cn/stage-3/personal-brand/{3.7-personal-website-blog => personal-website-blog}/index.md (100%) diff --git a/CLAUDE.md b/CLAUDE.md index 4b9ed16..60274bd 100644 --- a/CLAUDE.md +++ b/CLAUDE.md @@ -62,7 +62,6 @@ easy-vibe/ │ ├── index.md # Homepage │ ├── public/ # Static assets (logo.png, etc.) │ ├── assets/ # Symlink to ../assets -│ ├── stage-0/ # Stage 0 content (幼儿园) │ ├── stage-1/ # Stage 1 content (AI 产品经理) │ ├── stage-2/ # Stage 2 content (初中级开发工程师) │ ├── stage-3/ # Stage 3 content (高级开发工程师) @@ -89,8 +88,8 @@ stage-{N}/ Examples: -- `stage-1/1.1-introduction-to-ai-ide/index.md` -- `stage-2/backend/2.1-what-is-api/extra2/extra2-what-is-api.md` +- `stage-1/introduction-to-ai-ide/index.md` +- `stage-2/backend/what-is-api/extra2/extra2-what-is-api.md` **Note**: Content files may use either `index.md` or direct `.md` files depending on the chapter structure. @@ -100,7 +99,7 @@ The project uses **VitePress 2.0.0-alpha.15** with these key features: **Configuration** (`docs/.vitepress/config.mjs`): -- **Single Sidebar**: Route-based sidebars configured per path prefix (`/stage-0/`, `/stage-1/`, etc.) +- **Single Sidebar**: Route-based sidebars configured per path prefix (`/stage-1/`, etc.) - **Navigation**: Top nav with links to each stage and appendix - **Search**: Local search via `minisearch` (no external API required) - **Dark Mode**: Built-in VitePress theme with toggle @@ -125,7 +124,7 @@ The project uses **VitePress 2.0.0-alpha.15** with these key features: The sidebar is defined in `docs/.vitepress/config.mjs`. When adding new chapters: -1. Locate the appropriate route prefix section (`/stage-0/`, `/stage-1/`, etc.) +1. Locate the appropriate route prefix section (`/stage-1/`, etc.) 2. Add a new object with `text` (display name) and `link` (relative path) 3. For nested items, use `items` array with `collapsed: true|false` 4. **Links should not include `.md` extension** - VitePress handles this diff --git a/README.md b/README.md index 3399e2c..36d84d6 100644 --- a/README.md +++ b/README.md @@ -129,7 +129,7 @@ Easy-Vibe teaches you how to turn that into a real product. ## 🔥 News - **[2026-03-29]** ✨ **Vibe Stories launched and upgraded with real user journeys**: Added a new homepage Vibe Stories section with an interactive carousel and dedicated story pages, then replaced placeholder content with four real user stories featuring a rural primary school teacher, a college student, a high school IT teacher, and a truck driver who built real products with AI. [👉 View the stories](https://datawhalechina.github.io/easy-vibe/zh-cn/vibe-stories/story-1.html) -- **[2026-03-26]** 🚀 **Major Stage 2 practice update**: Completed the SaaS capstone project "[Your First SaaS Full-Stack App: Copywriting Generator Website](https://datawhalechina.github.io/easy-vibe/en/stage-2/assignments/2.1-fullstack-app/)" and substantially expanded the "[How to integrate Stripe and payment systems](https://datawhalechina.github.io/easy-vibe/en/stage-2/backend/2.7-stripe-payment/)" section, plus key content around multi-product UI and WeChat Mini Program backend workflows. +- **[2026-03-26]** 🚀 **Major Stage 2 practice update**: Completed the SaaS capstone project "[Your First SaaS Full-Stack App: Copywriting Generator Website](https://datawhalechina.github.io/easy-vibe/en/stage-2/assignments/fullstack-app/)" and substantially expanded the "[How to integrate Stripe and payment systems](https://datawhalechina.github.io/easy-vibe/en/stage-2/backend/stripe-payment/)" section, plus key content around multi-product UI and WeChat Mini Program backend workflows. - **[2026-03-25]** 📚 **New appendix: User Research and Requirement Validation**: Added four new articles covering idea sourcing, the Double Diamond model, Jobs to Be Done, and The Mom Test to help beginners discover and validate product ideas. [👉 Read the appendix](https://datawhalechina.github.io/easy-vibe/en/appendix/) - **[2026-03-25]** 📚 **English documentation fully updated**: Stage 2 (Full-stack Development) and Stage 3 (Advanced Development) are now fully available in English. [👉 Start learning](https://datawhalechina.github.io/easy-vibe/en/stage-2/)
@@ -163,14 +163,14 @@ Easy-Vibe teaches you how to turn that into a real product. **What you will learn**: Your first AI coding experience with a Snake mini-game **What you will get**: Your first AI-built app in 5 minutes -[Start here](https://datawhalechina.github.io/easy-vibe/en/stage-0/) +[Start here](https://datawhalechina.github.io/easy-vibe/en/stage-1/) ### 💡 I have an idea I want to build **Best for**: Beginners / product managers / founders **What you will learn**: AI IDE tools, requirement breakdown, page design, feature planning, prompting, prototype iteration **What you will get**: A demoable product prototype -[Start learning](https://datawhalechina.github.io/easy-vibe/en/stage-0/) +[Start learning](https://datawhalechina.github.io/easy-vibe/en/stage-1/) ### 🚀 I want a structured learning path **Best for**: Developers / advanced learners @@ -195,7 +195,7 @@ Easy-Vibe teaches you how to turn that into a real product. ## Study Suggestions -- If you are a beginner, product manager, or founder, start with [Stage 0 / Stage 1](https://datawhalechina.github.io/easy-vibe/en/stage-0/) +- If you are a beginner, product manager, or founder, start with [Stage 0 / Stage 1](https://datawhalechina.github.io/easy-vibe/en/stage-1/) - If you already have development experience, start with [Stage 2](https://datawhalechina.github.io/easy-vibe/en/stage-2/) - If you want to jump directly into complex projects, go to [Stage 3](https://datawhalechina.github.io/easy-vibe/en/stage-3/) - If you want to learn AI agents, check out [Hello Claw](https://github.com/datawhalechina/hello-claw) @@ -210,13 +210,13 @@ Easy-Vibe teaches you how to turn that into a real product. | Section | Key Content | | :------ | :---------- | -| [Learning Map](https://datawhalechina.github.io/easy-vibe/en/stage-0/0.1-learning-map/) | A guided overview of the full learning journey | -| [In the AI era, if you can talk, you can code](https://datawhalechina.github.io/easy-vibe/en/stage-0/0.2-ai-capabilities-through-games/) | Get your first feel for AI coding through examples like Snake | -| [Finding great ideas](https://datawhalechina.github.io/easy-vibe/en/stage-1/1.0-finding-great-idea/) | Learn how to discover and validate product ideas worth building | -| [Introduction to AI IDE tools](https://datawhalechina.github.io/easy-vibe/en/stage-1/1.1-introduction-to-ai-ide/) | Learn to use an IDE and build simple local projects | -| [Build your prototype](https://datawhalechina.github.io/easy-vibe/en/stage-1/1.2-building-prototype/) | Move from requirements to single-page and multi-page product prototypes | -| [Add AI capabilities to your prototype](https://datawhalechina.github.io/easy-vibe/en/stage-1/1.3-integrating-ai-capabilities/) | Integrate text, image, and video AI features | -| [Complete project practice](https://datawhalechina.github.io/easy-vibe/en/stage-1/1.4-complete-project-practice/) | Simulate real scenarios, collect user feedback, and iterate on a full project | +| [Learning Map](https://datawhalechina.github.io/easy-vibe/en/stage-1/learning-map/) | A guided overview of the full learning journey | +| [In the AI era, if you can talk, you can code](https://datawhalechina.github.io/easy-vibe/en/stage-1/ai-capabilities-through-games/) | Get your first feel for AI coding through examples like Snake | +| [Finding great ideas](https://datawhalechina.github.io/easy-vibe/en/stage-1/finding-great-idea/) | Learn how to discover and validate product ideas worth building | +| [Introduction to AI IDE tools](https://datawhalechina.github.io/easy-vibe/en/stage-1/introduction-to-ai-ide/) | Learn to use an IDE and build simple local projects | +| [Build your prototype](https://datawhalechina.github.io/easy-vibe/en/stage-1/building-prototype/) | Move from requirements to single-page and multi-page product prototypes | +| [Add AI capabilities to your prototype](https://datawhalechina.github.io/easy-vibe/en/stage-1/integrating-ai-capabilities/) | Integrate text, image, and video AI features | +| [Complete project practice](https://datawhalechina.github.io/easy-vibe/en/stage-1/complete-project-practice/) | Simulate real scenarios, collect user feedback, and iterate on a full project | #### Appendix: Product and Business Thinking @@ -240,32 +240,32 @@ Easy-Vibe teaches you how to turn that into a real product. | Section | Key Content | | :------ | :---------- | -| [Build your own asset-generation agent starting from Lovart](https://datawhalechina.github.io/easy-vibe/en/stage-2/frontend/2.0-lovart-assets/) | Use Nanobanana and Lovart to generate high-quality visual assets and build a drawing agent that understands intent | -| [Getting started with Figma and MasterGo](https://datawhalechina.github.io/easy-vibe/en/stage-2/frontend/2.1-figma-mastergo/) | Organize information architecture and page structure with design tools | -| [Build your first modern application: UI design](https://datawhalechina.github.io/easy-vibe/en/stage-2/frontend/2.2-ui-design/) | Turn design drafts into component-based interfaces | -| [UI guidelines and multi-product UI design](https://datawhalechina.github.io/easy-vibe/en/stage-2/frontend/2.3-multi-product-ui/) | Extend a unified visual system across multiple products | -| [Make interfaces beautiful with LLMs and Skills](https://datawhalechina.github.io/easy-vibe/en/stage-2/frontend/2.4-llm-skills-beautiful/) | Use prompting and Skills plugins to generate distinctive, polished interfaces | -| [Build Hogwarts portraits together](https://datawhalechina.github.io/easy-vibe/en/stage-2/frontend/2.5-hogwarts-portraits/) | Create a frontend app from scratch that integrates AI capabilities | -| [From design prototype to project code](https://datawhalechina.github.io/easy-vibe/en/stage-2/frontend/2.6-design-to-code/) | Three practical paths to convert design prototypes into frontend code | -| [Refresh your UI with modern component libraries](https://datawhalechina.github.io/easy-vibe/en/stage-2/frontend/2.7-modern-component-library/) | Build more professional interfaces faster with modern component systems | +| [Build your own asset-generation agent starting from Lovart](https://datawhalechina.github.io/easy-vibe/en/stage-2/frontend/lovart-assets/) | Use Nanobanana and Lovart to generate high-quality visual assets and build a drawing agent that understands intent | +| [Getting started with Figma and MasterGo](https://datawhalechina.github.io/easy-vibe/en/stage-2/frontend/figma-mastergo/) | Organize information architecture and page structure with design tools | +| [Build your first modern application: UI design](https://datawhalechina.github.io/easy-vibe/en/stage-2/frontend/ui-design/) | Turn design drafts into component-based interfaces | +| [UI guidelines and multi-product UI design](https://datawhalechina.github.io/easy-vibe/en/stage-2/frontend/multi-product-ui/) | Extend a unified visual system across multiple products | +| [Make interfaces beautiful with LLMs and Skills](https://datawhalechina.github.io/easy-vibe/en/stage-2/frontend/llm-skills-beautiful/) | Use prompting and Skills plugins to generate distinctive, polished interfaces | +| [Build Hogwarts portraits together](https://datawhalechina.github.io/easy-vibe/en/stage-2/frontend/hogwarts-portraits/) | Create a frontend app from scratch that integrates AI capabilities | +| [From design prototype to project code](https://datawhalechina.github.io/easy-vibe/en/stage-2/frontend/design-to-code/) | Three practical paths to convert design prototypes into frontend code | +| [Refresh your UI with modern component libraries](https://datawhalechina.github.io/easy-vibe/en/stage-2/frontend/modern-component-library/) | Build more professional interfaces faster with modern component systems | #### Backend | Section | Key Content | | :------ | :---------- | -| [From databases to Supabase](https://datawhalechina.github.io/easy-vibe/en/stage-2/backend/2.2-database-supabase/) | Implement databases and APIs with Supabase and connect them to your frontend | -| [Use LLMs to write API code and API docs](https://datawhalechina.github.io/easy-vibe/en/stage-2/backend/2.3-ai-interface-code/) | Generate backend code and documentation that is easier to read and test | -| [Git and GitHub workflow](https://datawhalechina.github.io/easy-vibe/en/stage-2/backend/2.4-git-workflow/) | Manage versions and collaborate effectively with Git workflows | -| [How to deploy web applications](https://datawhalechina.github.io/easy-vibe/en/stage-2/backend/2.5-zeabur-deployment/) | Deploy apps with platforms like CloudBase, Vercel, and Zeabur | -| [CLI AI coding tools](https://datawhalechina.github.io/easy-vibe/en/stage-2/backend/2.6-modern-cli/) | Build a personal engineering workflow with terminal-based AI tools | -| [How to integrate Stripe and payment systems](https://datawhalechina.github.io/easy-vibe/en/stage-2/backend/2.7-stripe-payment/) | Add payment flows and basic billing capabilities | -| [Capstone: build your first modern full-stack application](https://datawhalechina.github.io/easy-vibe/en/stage-2/assignments/2.1-fullstack-app/) | Combine frontend, backend, and payments into a launch-ready web product | +| [From databases to Supabase](https://datawhalechina.github.io/easy-vibe/en/stage-2/backend/database-supabase/) | Implement databases and APIs with Supabase and connect them to your frontend | +| [Use LLMs to write API code and API docs](https://datawhalechina.github.io/easy-vibe/en/stage-2/backend/ai-interface-code/) | Generate backend code and documentation that is easier to read and test | +| [Git and GitHub workflow](https://datawhalechina.github.io/easy-vibe/en/stage-2/backend/git-workflow/) | Manage versions and collaborate effectively with Git workflows | +| [How to deploy web applications](https://datawhalechina.github.io/easy-vibe/en/stage-2/backend/zeabur-deployment/) | Deploy apps with platforms like CloudBase, Vercel, and Zeabur | +| [CLI AI coding tools](https://datawhalechina.github.io/easy-vibe/en/stage-2/backend/modern-cli/) | Build a personal engineering workflow with terminal-based AI tools | +| [How to integrate Stripe and payment systems](https://datawhalechina.github.io/easy-vibe/en/stage-2/backend/stripe-payment/) | Add payment flows and basic billing capabilities | +| [Capstone: build your first modern full-stack application](https://datawhalechina.github.io/easy-vibe/en/stage-2/assignments/fullstack-app/) | Combine frontend, backend, and payments into a launch-ready web product | #### AI Capabilities Appendix | Section | Key Content | | :------ | :---------- | -| [Getting started with Dify and knowledge base integration](https://datawhalechina.github.io/easy-vibe/en/stage-2/ai-capabilities/2.1-dify-knowledge-base/) | Build utility products with Dify workflows and basic RAG | +| [Getting started with Dify and knowledge base integration](https://datawhalechina.github.io/easy-vibe/en/stage-2/ai-capabilities/dify-knowledge-base/) | Build utility products with Dify workflows and basic RAG | ### III. Advanced Developers @@ -285,24 +285,24 @@ Easy-Vibe teaches you how to turn that into a real product. | Section | Key Content | | :------ | :---------- | -| [Build a WeChat Mini Program](https://datawhalechina.github.io/easy-vibe/en/stage-3/cross-platform/3.3-wechat-miniprogram/) | Understand the ecosystem and ship a frontend mini program from template to launch | -| [Build a WeChat Mini Program with backend](https://datawhalechina.github.io/easy-vibe/en/stage-3/cross-platform/3.4-wechat-miniprogram-backend/) | Add backend logic and databases to complete the full business loop | -| [Build an Android app](https://datawhalechina.github.io/easy-vibe/en/stage-3/cross-platform/3.5-android-app/) | Use Expo and related tools to build Android apps across web and native | -| [Build an iOS app](https://datawhalechina.github.io/easy-vibe/en/stage-3/cross-platform/3.6-ios-app/) | Use Expo and related tools to build iOS apps across web and native | -| [Build a personal website and academic blog](https://datawhalechina.github.io/easy-vibe/en/stage-3/personal-brand/3.7-personal-website-blog/) | Create an online home for projects, personal branding, and academic work | -| [Build a local PWA app](https://datawhalechina.github.io/easy-vibe/en/stage-3/cross-platform/3.8-pwa-local-app/) | Turn a website into a real app with offline support, push, and installation | -| [Build a browser AI assistant extension](https://datawhalechina.github.io/easy-vibe/en/stage-3/cross-platform/3.9-browser-ai-extension/) | Create a Chrome extension that summarizes any page with either cloud APIs or built-in AI | -| [Build an Electron desktop app](https://datawhalechina.github.io/easy-vibe/en/stage-3/cross-platform/3.10-electron-voice-to-text/) | Build a voice-to-text desktop app with Electron for three platforms | -| [Rapidly build and mint an NFT](https://datawhalechina.github.io/easy-vibe/en/stage-3/cross-platform/3.11-nft-minting/) | Write a smart contract from scratch, deploy it, and mint your own NFT | -| [Build a VS Code extension](https://datawhalechina.github.io/easy-vibe/en/stage-3/cross-platform/3.12-vscode-extension/) | Build an AI project assistant with templates, code chat, and multi-file Q&A | -| [Build an industrial-grade Qt desktop app](https://datawhalechina.github.io/easy-vibe/en/stage-3/cross-platform/3.13-qt-industrial-hmi/) | Create a real-time Qt HMI system with trends, alerts, and monitoring | +| [Build a WeChat Mini Program](https://datawhalechina.github.io/easy-vibe/en/stage-3/cross-platform/wechat-miniprogram/) | Understand the ecosystem and ship a frontend mini program from template to launch | +| [Build a WeChat Mini Program with backend](https://datawhalechina.github.io/easy-vibe/en/stage-3/cross-platform/wechat-miniprogram-backend/) | Add backend logic and databases to complete the full business loop | +| [Build an Android app](https://datawhalechina.github.io/easy-vibe/en/stage-3/cross-platform/android-app/) | Use Expo and related tools to build Android apps across web and native | +| [Build an iOS app](https://datawhalechina.github.io/easy-vibe/en/stage-3/cross-platform/ios-app/) | Use Expo and related tools to build iOS apps across web and native | +| [Build a personal website and academic blog](https://datawhalechina.github.io/easy-vibe/en/stage-3/personal-brand/personal-website-blog/) | Create an online home for projects, personal branding, and academic work | +| [Build a local PWA app](https://datawhalechina.github.io/easy-vibe/en/stage-3/cross-platform/pwa-local-app/) | Turn a website into a real app with offline support, push, and installation | +| [Build a browser AI assistant extension](https://datawhalechina.github.io/easy-vibe/en/stage-3/cross-platform/browser-ai-extension/) | Create a Chrome extension that summarizes any page with either cloud APIs or built-in AI | +| [Build an Electron desktop app](https://datawhalechina.github.io/easy-vibe/en/stage-3/cross-platform/electron-voice-to-text/) | Build a voice-to-text desktop app with Electron for three platforms | +| [Rapidly build and mint an NFT](https://datawhalechina.github.io/easy-vibe/en/stage-3/cross-platform/nft-minting/) | Write a smart contract from scratch, deploy it, and mint your own NFT | +| [Build a VS Code extension](https://datawhalechina.github.io/easy-vibe/en/stage-3/cross-platform/vscode-extension/) | Build an AI project assistant with templates, code chat, and multi-file Q&A | +| [Build an industrial-grade Qt desktop app](https://datawhalechina.github.io/easy-vibe/en/stage-3/cross-platform/qt-industrial-hmi/) | Create a real-time Qt HMI system with trends, alerts, and monitoring | #### AI Capabilities Appendix | Section | Key Content | | :------ | :---------- | -| [What is RAG and how does it work](https://datawhalechina.github.io/easy-vibe/en/stage-3/ai-advanced/3.a1-rag-introduction/) | Build a systematic understanding of RAG principles and common architectures | -| [Intermediate and advanced RAG workflows with LangGraph](https://datawhalechina.github.io/easy-vibe/en/stage-3/ai-advanced/3.a2-langgraph-advanced-rag/) | Design multi-step workflows and more advanced RAG systems | +| [What is RAG and how does it work](https://datawhalechina.github.io/easy-vibe/en/stage-3/ai-advanced/rag-introduction/) | Build a systematic understanding of RAG principles and common architectures | +| [Intermediate and advanced RAG workflows with LangGraph](https://datawhalechina.github.io/easy-vibe/en/stage-3/ai-advanced/langgraph-advanced-rag/) | Design multi-step workflows and more advanced RAG systems | ### 📚 Appendix Knowledge Base diff --git a/docs-readme/ar-SA/README.md b/docs-readme/ar-SA/README.md index 0e891f8..3542176 100644 --- a/docs-readme/ar-SA/README.md +++ b/docs-readme/ar-SA/README.md @@ -129,7 +129,7 @@ Easy-Vibe يعلمك كيف تحول ذلك إلى منتج حقيقي. ## 🔥 News - **[2026-03-29]** ✨ **إطلاق قسم قصص المستخدمين وتحديثه بأربع قصص حقيقية**: أضفنا في الصفحة الرئيسية شريط قصص تفاعليًا وصفحات مستقلة للقصص، ثم استبدلنا المحتوى المؤقت بأربع قصص حقيقية لمدرسة ريفية وطالبة جامعية ومعلم تقنية معلومات في الثانوية وسائق شاحنة بنوا منتجات حقيقية باستخدام الذكاء الاصطناعي. [👉 View the stories](https://datawhalechina.github.io/easy-vibe/zh-cn/vibe-stories/story-1.html) -- **[2026-03-26]** 🚀 **تحديث كبير لممارسة المرحلة 2**: اكتمل مشروع SaaS النهائي "[أول تطبيق SaaS full-stack: موقع مولد النصوص](https://datawhalechina.github.io/easy-vibe/en/stage-2/assignments/2.1-fullstack-app/)" وتم توسيع قسم "[كيفية دمج Stripe وأنظمة الدفع](https://datawhalechina.github.io/easy-vibe/en/stage-2/backend/2.7-stripe-payment/)" بشكل كبير. +- **[2026-03-26]** 🚀 **تحديث كبير لممارسة المرحلة 2**: اكتمل مشروع SaaS النهائي "[أول تطبيق SaaS full-stack: موقع مولد النصوص](https://datawhalechina.github.io/easy-vibe/en/stage-2/assignments/fullstack-app/)" وتم توسيع قسم "[كيفية دمج Stripe وأنظمة الدفع](https://datawhalechina.github.io/easy-vibe/en/stage-2/backend/stripe-payment/)" بشكل كبير. - **[2026-03-25]** 📚 **ملحق جديد: بحث المستخدم والتحقق من المتطلبات**: تمت إضافة أربع مقالات جديدة تغطي مصادر الأفكار، نموذج Double Diamond، Jobs to Be Done و The Mom Test لمساعدة المبتدئين على اكتشاف أفكار المنتجات والتحقق منها. [👉 قراءة الملحق](https://datawhalechina.github.io/easy-vibe/en/appendix/) - **[2026-03-25]** 📚 **الوثائق الإنجليزية محدثة بالكامل**: المرحلة 2 (تطوير full-stack) والمرحلة 3 (تطوير متقدم) متاحتان الآن بالكامل باللغة الإنجليزية. [👉 ابدأ التعلم](https://datawhalechina.github.io/easy-vibe/en/stage-2/) - **[2026-03-02]** 🦞 **دعم ودي لـ OpenClaw و AI Agent**: تمت إضافة `llms.txt` بحيث يمكن لـ OpenClaw و Claude و Cursor و Trae ووكلاء AI الآخرين فهم بنية المستودع بسرعة والعثور على محتوى البرنامج التعليمي المناسب. @@ -164,14 +164,14 @@ Easy-Vibe يعلمك كيف تحول ذلك إلى منتج حقيقي. **学什么**:AI 编程初体验、贪吃蛇小游戏 **你会得到**:5 分钟做出第一个 AI 应用 -[开始体验](https://datawhalechina.github.io/easy-vibe/zh-cn/stage-0/) +[开始体验](https://datawhalechina.github.io/easy-vibe/zh-cn/stage-1/) ### 💡 我有个想法要实现 **适合人群**:零基础/产品经理/创业者 **学什么**:AI IDE 工具、需求拆解、页面设计、功能规划、提示词写法、原型迭代 **你会得到**:一个可演示的产品原型 -[开始学习](https://datawhalechina.github.io/easy-vibe/zh-cn/stage-0/) +[开始学习](https://datawhalechina.github.io/easy-vibe/zh-cn/stage-1/) ### 🚀 我想系统学习 **适合人群**:开发者/进阶学习者 @@ -196,7 +196,7 @@ Easy-Vibe يعلمك كيف تحول ذلك إلى منتج حقيقي. ## 学习建议 -- 零基础、产品经理、创业者:从 [第一阶段](https://datawhalechina.github.io/easy-vibe/zh-cn/stage-0/) 开始 +- 零基础、产品经理、创业者:从 [第一阶段](https://datawhalechina.github.io/easy-vibe/zh-cn/stage-1/) 开始 - 有开发经验:从 [第二阶段](https://datawhalechina.github.io/easy-vibe/zh-cn/stage-2/) 开始 - 想直接做复杂项目:进入 [第三阶段](https://datawhalechina.github.io/easy-vibe/zh-cn/stage-3/) - 想学 AI Agent:看 [Hello Claw](https://github.com/datawhalechina/hello-claw) @@ -211,13 +211,13 @@ Easy-Vibe يعلمك كيف تحول ذلك إلى منتج حقيقي. | 章节 | 关键内容 | | :----------------------------------------------------------------------------------- | :------------------------------------------------ | -| [学习地图](https://datawhalechina.github.io/easy-vibe/zh-cn/stage-0/0.1-learning-map/) | 整体学习路径导览 | -| [AI 时代,会说话就会编程](https://datawhalechina.github.io/easy-vibe/zh-cn/stage-0/0.2-ai-capabilities-through-games/) | 通过贪吃蛇等案例初步感受 AI 编程的能力 | -| [寻找好想法](https://datawhalechina.github.io/easy-vibe/zh-cn/stage-1/1.0-finding-great-idea/) | 学会寻找和验证产品想法,找到值得做的项目 | -| [认识 AI IDE 工具](https://datawhalechina.github.io/easy-vibe/zh-cn/stage-1/1.1-introduction-to-ai-ide/) | 学会使用 IDE,在本地制作小游戏 | -| [动手做出原型](https://datawhalechina.github.io/easy-vibe/zh-cn/stage-1/1.2-building-prototype/) | 从需求分析、AI 生成单页面,再到生成多页面产品原型 | -| [给原型加上 AI 能力](https://datawhalechina.github.io/easy-vibe/zh-cn/stage-1/1.3-integrating-ai-capabilities/) | 学会接入常见 AI 能力(文本、图片、视频) | -| [完整项目实战](https://datawhalechina.github.io/easy-vibe/zh-cn/stage-1/1.4-complete-project-practice/) | 模拟真实场景、接受用户反馈迭代,完整化项目 | +| [学习地图](https://datawhalechina.github.io/easy-vibe/zh-cn/stage-1/learning-map/) | 整体学习路径导览 | +| [AI 时代,会说话就会编程](https://datawhalechina.github.io/easy-vibe/zh-cn/stage-1/ai-capabilities-through-games/) | 通过贪吃蛇等案例初步感受 AI 编程的能力 | +| [寻找好想法](https://datawhalechina.github.io/easy-vibe/zh-cn/stage-1/finding-great-idea/) | 学会寻找和验证产品想法,找到值得做的项目 | +| [认识 AI IDE 工具](https://datawhalechina.github.io/easy-vibe/zh-cn/stage-1/introduction-to-ai-ide/) | 学会使用 IDE,在本地制作小游戏 | +| [动手做出原型](https://datawhalechina.github.io/easy-vibe/zh-cn/stage-1/building-prototype/) | 从需求分析、AI 生成单页面,再到生成多页面产品原型 | +| [给原型加上 AI 能力](https://datawhalechina.github.io/easy-vibe/zh-cn/stage-1/integrating-ai-capabilities/) | 学会接入常见 AI 能力(文本、图片、视频) | +| [完整项目实战](https://datawhalechina.github.io/easy-vibe/zh-cn/stage-1/complete-project-practice/) | 模拟真实场景、接受用户反馈迭代,完整化项目 | #### 附录:业务思维 @@ -241,32 +241,32 @@ Easy-Vibe يعلمك كيف تحول ذلك إلى منتج حقيقي. | 章节 | 关键内容 | | :--------------------------------------------------------------------------------------------------------- | :--------------------------------------------------------------------------- | -| [从Lovart出发,搭建自己的素材生产Agent](https://datawhalechina.github.io/easy-vibe/zh-cn/stage-2/frontend/2.0-lovart-assets/) | 从零开始,利用Nanobanana和Lovart批量生成高质量的设计素材,并动手构建一个能意图识别的绘图Agent | -| [Figma 与 MasterGo 入门](https://datawhalechina.github.io/easy-vibe/zh-cn/stage-2/frontend/2.1-figma-mastergo/) | 用设计工具梳理信息架构和页面结构,为前端实现打基础 | -| [构建第一个现代应用程序-UI 设计](https://datawhalechina.github.io/easy-vibe/zh-cn/stage-2/frontend/2.2-ui-design/) | 基于设计稿完成组件化界面,实现从设计到代码的第一条链路 | -| [参考 UI 设计规范与多产品 UI 设计](https://datawhalechina.github.io/easy-vibe/zh-cn/stage-2/frontend/2.3-multi-product-ui/) | 围绕统一主视觉扩展多产品界面,练习系统化设计能力 | -| [用 LLM 和 Skills 让界面变好看](https://datawhalechina.github.io/easy-vibe/zh-cn/stage-2/frontend/2.4-llm-skills-beautiful/) | 用提示词和 Skills 插件让 AI 生成美观独特的界面 | -| [一起做霍格沃茨画像](https://datawhalechina.github.io/easy-vibe/zh-cn/stage-2/frontend/2.5-hogwarts-portraits/) | 从 0 到 1 做出接入 AI 能力的前端应用,串联设计与开发 | -| [从设计原型到项目代码](https://datawhalechina.github.io/easy-vibe/zh-cn/stage-2/frontend/2.6-design-to-code/) | 三种路径将设计工具中的原型转化为前端代码 | -| [使用现代组件库更新你的界面](https://datawhalechina.github.io/easy-vibe/zh-cn/stage-2/frontend/2.7-modern-component-library/) | 用组件库快速构建专业级界面,统一风格、提升开发效率 | +| [从Lovart出发,搭建自己的素材生产Agent](https://datawhalechina.github.io/easy-vibe/zh-cn/stage-2/frontend/lovart-assets/) | 从零开始,利用Nanobanana和Lovart批量生成高质量的设计素材,并动手构建一个能意图识别的绘图Agent | +| [Figma 与 MasterGo 入门](https://datawhalechina.github.io/easy-vibe/zh-cn/stage-2/frontend/figma-mastergo/) | 用设计工具梳理信息架构和页面结构,为前端实现打基础 | +| [构建第一个现代应用程序-UI 设计](https://datawhalechina.github.io/easy-vibe/zh-cn/stage-2/frontend/ui-design/) | 基于设计稿完成组件化界面,实现从设计到代码的第一条链路 | +| [参考 UI 设计规范与多产品 UI 设计](https://datawhalechina.github.io/easy-vibe/zh-cn/stage-2/frontend/multi-product-ui/) | 围绕统一主视觉扩展多产品界面,练习系统化设计能力 | +| [用 LLM 和 Skills 让界面变好看](https://datawhalechina.github.io/easy-vibe/zh-cn/stage-2/frontend/llm-skills-beautiful/) | 用提示词和 Skills 插件让 AI 生成美观独特的界面 | +| [一起做霍格沃茨画像](https://datawhalechina.github.io/easy-vibe/zh-cn/stage-2/frontend/hogwarts-portraits/) | 从 0 到 1 做出接入 AI 能力的前端应用,串联设计与开发 | +| [从设计原型到项目代码](https://datawhalechina.github.io/easy-vibe/zh-cn/stage-2/frontend/design-to-code/) | 三种路径将设计工具中的原型转化为前端代码 | +| [使用现代组件库更新你的界面](https://datawhalechina.github.io/easy-vibe/zh-cn/stage-2/frontend/modern-component-library/) | 用组件库快速构建专业级界面,统一风格、提升开发效率 | #### 后端开发部分 | 章节 | 关键内容 | | :------------------------------------------------------------------------------------------------- | :---------------------------------------------------------- | -| [从数据库到 Supabase](https://datawhalechina.github.io/easy-vibe/zh-cn/stage-2/backend/2.2-database-supabase/) | 在 Supabase 上落地数据库和 API,打通数据模型与前端页面 | -| [大模型辅助编写接口代码与接口文档](https://datawhalechina.github.io/easy-vibe/zh-cn/stage-2/backend/2.3-ai-interface-code/) | 用大模型协助生成接口与数据库文档及代码,实现可读可测的后端 | -| [Git 和 GitHub 工作流](https://datawhalechina.github.io/easy-vibe/zh-cn/stage-2/backend/2.4-git-workflow/) | 在 Git 工作流中管理代码,进行版本控制和协作 | -| [如何部署 Web 应用](https://datawhalechina.github.io/easy-vibe/zh-cn/stage-2/backend/2.5-zeabur-deployment/) | 使用 CloudBase、Vercel、Zeabur 等平台部署应用上线 | -| [CLI AI 编程工具](https://datawhalechina.github.io/easy-vibe/zh-cn/stage-2/backend/2.6-modern-cli/) | 使用 CLI 类 AI 编程工具加速开发与调试,形成个人工程化工作流 | -| [如何集成 Stripe 等收费系统](https://datawhalechina.github.io/easy-vibe/zh-cn/stage-2/backend/2.7-stripe-payment/) | 接入支付系统,完成收费链路与基础结算流程 | -| [大作业:构建第一个现代应用程序-全栈应用](https://datawhalechina.github.io/easy-vibe/zh-cn/stage-2/assignments/2.1-fullstack-app/) | 综合前端、后端与支付模块,完成可上线的全栈 Web 应用 | +| [从数据库到 Supabase](https://datawhalechina.github.io/easy-vibe/zh-cn/stage-2/backend/database-supabase/) | 在 Supabase 上落地数据库和 API,打通数据模型与前端页面 | +| [大模型辅助编写接口代码与接口文档](https://datawhalechina.github.io/easy-vibe/zh-cn/stage-2/backend/ai-interface-code/) | 用大模型协助生成接口与数据库文档及代码,实现可读可测的后端 | +| [Git 和 GitHub 工作流](https://datawhalechina.github.io/easy-vibe/zh-cn/stage-2/backend/git-workflow/) | 在 Git 工作流中管理代码,进行版本控制和协作 | +| [如何部署 Web 应用](https://datawhalechina.github.io/easy-vibe/zh-cn/stage-2/backend/zeabur-deployment/) | 使用 CloudBase、Vercel、Zeabur 等平台部署应用上线 | +| [CLI AI 编程工具](https://datawhalechina.github.io/easy-vibe/zh-cn/stage-2/backend/modern-cli/) | 使用 CLI 类 AI 编程工具加速开发与调试,形成个人工程化工作流 | +| [如何集成 Stripe 等收费系统](https://datawhalechina.github.io/easy-vibe/zh-cn/stage-2/backend/stripe-payment/) | 接入支付系统,完成收费链路与基础结算流程 | +| [大作业:构建第一个现代应用程序-全栈应用](https://datawhalechina.github.io/easy-vibe/zh-cn/stage-2/assignments/fullstack-app/) | 综合前端、后端与支付模块,完成可上线的全栈 Web 应用 | #### AI 能力附录 | 章节 | 关键内容 | | :------------------------------------------------------------------------------------------------------- | :------------------------------------------------------------- | -| [Dify 入门与知识库集成](https://datawhalechina.github.io/easy-vibe/zh-cn/stage-2/ai-capabilities/2.1-dify-knowledge-base/) | 用 Dify Workflow 与基础 RAG 搭建工具类产品,为后续应用升级打样 | +| [Dify 入门与知识库集成](https://datawhalechina.github.io/easy-vibe/zh-cn/stage-2/ai-capabilities/dify-knowledge-base/) | 用 Dify Workflow 与基础 RAG 搭建工具类产品,为后续应用升级打样 | ### 三、高级开发工程师 @@ -286,24 +286,24 @@ Easy-Vibe يعلمك كيف تحول ذلك إلى منتج حقيقي. | 章节 | 关键内容 | | :------------------------------------------------------------------------------------------------------------- | :----------------------------------------------------------- | -| [如何构建微信小程序](https://datawhalechina.github.io/easy-vibe/zh-cn/stage-3/cross-platform/3.3-wechat-miniprogram/) | 了解微信小程序生态,从官方模板到上线完成一个前端小程序 | -| [如何构建微信小程序-包含后端](https://datawhalechina.github.io/easy-vibe/zh-cn/stage-3/cross-platform/3.4-wechat-miniprogram-backend/) | 在小程序中接入数据库与后端逻辑,打通完整业务闭环 | -| [如何构建安卓程序](https://datawhalechina.github.io/easy-vibe/zh-cn/stage-3/cross-platform/3.5-android-app/) | 使用 Expo 等工具,完成 Web/原生一体化的安卓应用开发 | -| [如何构建 iOS 程序](https://datawhalechina.github.io/easy-vibe/zh-cn/stage-3/cross-platform/3.6-ios-app/) | 使用 Expo 等工具,完成 Web/原生一体化的 iOS 应用开发 | -| [如何构建个人网页与学术博客](https://datawhalechina.github.io/easy-vibe/zh-cn/stage-3/personal-brand/3.7-personal-website-blog/) | 从选型、搭建到部署,构建展示个人项目与学术成果的在线主页 | -| [如何开发 PWA 本地应用](https://datawhalechina.github.io/easy-vibe/zh-cn/stage-3/cross-platform/3.8-pwa-local-app/) | 让网页变成"真正的 App",支持离线、推送、桌面安装 | -| [如何开发浏览器 AI 助手插件](https://datawhalechina.github.io/easy-vibe/zh-cn/stage-3/cross-platform/3.9-browser-ai-extension/) | 开发 Chrome 插件,一键总结任意网页,支持云端 API 和内置 AI | -| [如何开发 Electron 桌面程序](https://datawhalechina.github.io/easy-vibe/zh-cn/stage-3/cross-platform/3.10-electron-voice-to-text/) | 用 Electron 构建语音转文字桌面应用,支持三平台安装运行 | -| [如何快速开发并铸造 NFT](https://datawhalechina.github.io/easy-vibe/zh-cn/stage-3/cross-platform/3.11-nft-minting/) | 从零编写智能合约,部署到以太坊测试网,铸造自己的 NFT | -| [如何开发 VS Code 插件](https://datawhalechina.github.io/easy-vibe/zh-cn/stage-3/cross-platform/3.12-vscode-extension/) | 开发 AI 项目助手插件,支持模板生成、代码对话、多文件问答 | -| [如何开发工业级 Qt 桌面应用](https://datawhalechina.github.io/easy-vibe/zh-cn/stage-3/cross-platform/3.13-qt-industrial-hmi/) | 用 Qt 构建工业级水泵监控 HMI 系统,实时数据、趋势图、报警 | +| [如何构建微信小程序](https://datawhalechina.github.io/easy-vibe/zh-cn/stage-3/cross-platform/wechat-miniprogram/) | 了解微信小程序生态,从官方模板到上线完成一个前端小程序 | +| [如何构建微信小程序-包含后端](https://datawhalechina.github.io/easy-vibe/zh-cn/stage-3/cross-platform/wechat-miniprogram-backend/) | 在小程序中接入数据库与后端逻辑,打通完整业务闭环 | +| [如何构建安卓程序](https://datawhalechina.github.io/easy-vibe/zh-cn/stage-3/cross-platform/android-app/) | 使用 Expo 等工具,完成 Web/原生一体化的安卓应用开发 | +| [如何构建 iOS 程序](https://datawhalechina.github.io/easy-vibe/zh-cn/stage-3/cross-platform/ios-app/) | 使用 Expo 等工具,完成 Web/原生一体化的 iOS 应用开发 | +| [如何构建个人网页与学术博客](https://datawhalechina.github.io/easy-vibe/zh-cn/stage-3/personal-brand/personal-website-blog/) | 从选型、搭建到部署,构建展示个人项目与学术成果的在线主页 | +| [如何开发 PWA 本地应用](https://datawhalechina.github.io/easy-vibe/zh-cn/stage-3/cross-platform/pwa-local-app/) | 让网页变成"真正的 App",支持离线、推送、桌面安装 | +| [如何开发浏览器 AI 助手插件](https://datawhalechina.github.io/easy-vibe/zh-cn/stage-3/cross-platform/browser-ai-extension/) | 开发 Chrome 插件,一键总结任意网页,支持云端 API 和内置 AI | +| [如何开发 Electron 桌面程序](https://datawhalechina.github.io/easy-vibe/zh-cn/stage-3/cross-platform/electron-voice-to-text/) | 用 Electron 构建语音转文字桌面应用,支持三平台安装运行 | +| [如何快速开发并铸造 NFT](https://datawhalechina.github.io/easy-vibe/zh-cn/stage-3/cross-platform/nft-minting/) | 从零编写智能合约,部署到以太坊测试网,铸造自己的 NFT | +| [如何开发 VS Code 插件](https://datawhalechina.github.io/easy-vibe/zh-cn/stage-3/cross-platform/vscode-extension/) | 开发 AI 项目助手插件,支持模板生成、代码对话、多文件问答 | +| [如何开发工业级 Qt 桌面应用](https://datawhalechina.github.io/easy-vibe/zh-cn/stage-3/cross-platform/qt-industrial-hmi/) | 用 Qt 构建工业级水泵监控 HMI 系统,实时数据、趋势图、报警 | #### AI 能力附录 | 章节 | 关键内容 | | :---------------------------------------------------------------------------------------------------------------------------------------- | :------------------------------------------------------ | -| [什么是 RAG 以及它如何工作](https://datawhalechina.github.io/easy-vibe/zh-cn/stage-3/ai-advanced/3.a1-rag-introduction/) | 系统理解 RAG 原理与常见架构,为复杂应用提供知识检索基础 | -| [中高级 RAG 与工作流编排:以 LangGraph 为例](https://datawhalechina.github.io/easy-vibe/zh-cn/stage-3/ai-advanced/3.a2-langgraph-advanced-rag/) | 使用 LangGraph 等工具设计多步工作流与中高级 RAG 系统 | +| [什么是 RAG 以及它如何工作](https://datawhalechina.github.io/easy-vibe/zh-cn/stage-3/ai-advanced/rag-introduction/) | 系统理解 RAG 原理与常见架构,为复杂应用提供知识检索基础 | +| [中高级 RAG 与工作流编排:以 LangGraph 为例](https://datawhalechina.github.io/easy-vibe/zh-cn/stage-3/ai-advanced/langgraph-advanced-rag/) | 使用 LangGraph 等工具设计多步工作流与中高级 RAG 系统 | ### 📚 附录知识库 diff --git a/docs-readme/de-DE/README.md b/docs-readme/de-DE/README.md index f47223b..048b6a6 100644 --- a/docs-readme/de-DE/README.md +++ b/docs-readme/de-DE/README.md @@ -129,7 +129,7 @@ Easy-Vibe zeigt dir, wie daraus ein echtes Produkt wird. ## 🔥 News - **[2026-03-29]** ✨ **Neue Nutzergeschichten-Sektion mit 4 echten Fallbeispielen**: Auf der Startseite gibt es jetzt ein interaktives Story-Karussell und eigene Story-Seiten. Außerdem haben wir Platzhalter durch vier echte Geschichten ersetzt, von einem Grundschullehrer auf dem Land, einer Studentin, einem Informatiklehrer und einem Lkw-Fahrer. [👉 View the stories](https://datawhalechina.github.io/easy-vibe/zh-cn/vibe-stories/story-1.html) -- **[2026-03-26]** 🚀 **Großes Update für Phase 2 Praxis**: SaaS-Kappenprojekt "[Ihre erste SaaS Full-Stack-App: Copywriting-Generator-Website](https://datawhalechina.github.io/easy-vibe/en/stage-2/assignments/2.1-fullstack-app/)" abgeschlossen und Abschnitt "[Wie man Stripe und Zahlungssysteme integriert](https://datawhalechina.github.io/easy-vibe/en/stage-2/backend/2.7-stripe-payment/)" erheblich erweitert. +- **[2026-03-26]** 🚀 **Großes Update für Phase 2 Praxis**: SaaS-Kappenprojekt "[Ihre erste SaaS Full-Stack-App: Copywriting-Generator-Website](https://datawhalechina.github.io/easy-vibe/en/stage-2/assignments/fullstack-app/)" abgeschlossen und Abschnitt "[Wie man Stripe und Zahlungssysteme integriert](https://datawhalechina.github.io/easy-vibe/en/stage-2/backend/stripe-payment/)" erheblich erweitert. - **[2026-03-25]** 📚 **Neuer Anhang: Nutzerforschung und Anforderungsvalidierung**: Vier neue Artikel hinzugefügt, die Ideenfindung, das Double-Diamond-Modell, Jobs to Be Done und The Mom Test abdecken, um Anfängern zu helfen, Produktideen zu entdecken und zu validieren. [👉 Anhang lesen](https://datawhalechina.github.io/easy-vibe/en/appendix/) - **[2026-03-25]** 📚 **Englische Dokumentation vollständig aktualisiert**: Phase 2 (Full-Stack-Entwicklung) und Phase 3 (Fortgeschrittene Entwicklung) sind jetzt vollständig auf Englisch verfügbar. [👉 Lernen beginnen](https://datawhalechina.github.io/easy-vibe/en/stage-2/) - **[2026-03-02]** 🦞 **OpenClaw & AI Agent freundliche Unterstützung**: `llms.txt` hinzugefügt, damit OpenClaw, Claude, Cursor, Trae und andere AI Agents die Repository-Struktur schnell verstehen und die richtigen Tutorial-Inhalte finden können. @@ -164,14 +164,14 @@ Easy-Vibe zeigt dir, wie daraus ein echtes Produkt wird. **学什么**:AI 编程初体验、贪吃蛇小游戏 **你会得到**:5 分钟做出第一个 AI 应用 -[开始体验](https://datawhalechina.github.io/easy-vibe/zh-cn/stage-0/) +[开始体验](https://datawhalechina.github.io/easy-vibe/zh-cn/stage-1/) ### 💡 我有个想法要实现 **适合人群**:零基础/产品经理/创业者 **学什么**:AI IDE 工具、需求拆解、页面设计、功能规划、提示词写法、原型迭代 **你会得到**:一个可演示的产品原型 -[开始学习](https://datawhalechina.github.io/easy-vibe/zh-cn/stage-0/) +[开始学习](https://datawhalechina.github.io/easy-vibe/zh-cn/stage-1/) ### 🚀 我想系统学习 **适合人群**:开发者/进阶学习者 @@ -196,7 +196,7 @@ Easy-Vibe zeigt dir, wie daraus ein echtes Produkt wird. ## 学习建议 -- 零基础、产品经理、创业者:从 [第一阶段](https://datawhalechina.github.io/easy-vibe/zh-cn/stage-0/) 开始 +- 零基础、产品经理、创业者:从 [第一阶段](https://datawhalechina.github.io/easy-vibe/zh-cn/stage-1/) 开始 - 有开发经验:从 [第二阶段](https://datawhalechina.github.io/easy-vibe/zh-cn/stage-2/) 开始 - 想直接做复杂项目:进入 [第三阶段](https://datawhalechina.github.io/easy-vibe/zh-cn/stage-3/) - 想学 AI Agent:看 [Hello Claw](https://github.com/datawhalechina/hello-claw) @@ -211,13 +211,13 @@ Easy-Vibe zeigt dir, wie daraus ein echtes Produkt wird. | 章节 | 关键内容 | | :----------------------------------------------------------------------------------- | :------------------------------------------------ | -| [学习地图](https://datawhalechina.github.io/easy-vibe/zh-cn/stage-0/0.1-learning-map/) | 整体学习路径导览 | -| [AI 时代,会说话就会编程](https://datawhalechina.github.io/easy-vibe/zh-cn/stage-0/0.2-ai-capabilities-through-games/) | 通过贪吃蛇等案例初步感受 AI 编程的能力 | -| [寻找好想法](https://datawhalechina.github.io/easy-vibe/zh-cn/stage-1/1.0-finding-great-idea/) | 学会寻找和验证产品想法,找到值得做的项目 | -| [认识 AI IDE 工具](https://datawhalechina.github.io/easy-vibe/zh-cn/stage-1/1.1-introduction-to-ai-ide/) | 学会使用 IDE,在本地制作小游戏 | -| [动手做出原型](https://datawhalechina.github.io/easy-vibe/zh-cn/stage-1/1.2-building-prototype/) | 从需求分析、AI 生成单页面,再到生成多页面产品原型 | -| [给原型加上 AI 能力](https://datawhalechina.github.io/easy-vibe/zh-cn/stage-1/1.3-integrating-ai-capabilities/) | 学会接入常见 AI 能力(文本、图片、视频) | -| [完整项目实战](https://datawhalechina.github.io/easy-vibe/zh-cn/stage-1/1.4-complete-project-practice/) | 模拟真实场景、接受用户反馈迭代,完整化项目 | +| [学习地图](https://datawhalechina.github.io/easy-vibe/zh-cn/stage-1/learning-map/) | 整体学习路径导览 | +| [AI 时代,会说话就会编程](https://datawhalechina.github.io/easy-vibe/zh-cn/stage-1/ai-capabilities-through-games/) | 通过贪吃蛇等案例初步感受 AI 编程的能力 | +| [寻找好想法](https://datawhalechina.github.io/easy-vibe/zh-cn/stage-1/finding-great-idea/) | 学会寻找和验证产品想法,找到值得做的项目 | +| [认识 AI IDE 工具](https://datawhalechina.github.io/easy-vibe/zh-cn/stage-1/introduction-to-ai-ide/) | 学会使用 IDE,在本地制作小游戏 | +| [动手做出原型](https://datawhalechina.github.io/easy-vibe/zh-cn/stage-1/building-prototype/) | 从需求分析、AI 生成单页面,再到生成多页面产品原型 | +| [给原型加上 AI 能力](https://datawhalechina.github.io/easy-vibe/zh-cn/stage-1/integrating-ai-capabilities/) | 学会接入常见 AI 能力(文本、图片、视频) | +| [完整项目实战](https://datawhalechina.github.io/easy-vibe/zh-cn/stage-1/complete-project-practice/) | 模拟真实场景、接受用户反馈迭代,完整化项目 | #### 附录:业务思维 @@ -241,32 +241,32 @@ Easy-Vibe zeigt dir, wie daraus ein echtes Produkt wird. | 章节 | 关键内容 | | :--------------------------------------------------------------------------------------------------------- | :--------------------------------------------------------------------------- | -| [从Lovart出发,搭建自己的素材生产Agent](https://datawhalechina.github.io/easy-vibe/zh-cn/stage-2/frontend/2.0-lovart-assets/) | 从零开始,利用Nanobanana和Lovart批量生成高质量的设计素材,并动手构建一个能意图识别的绘图Agent | -| [Figma 与 MasterGo 入门](https://datawhalechina.github.io/easy-vibe/zh-cn/stage-2/frontend/2.1-figma-mastergo/) | 用设计工具梳理信息架构和页面结构,为前端实现打基础 | -| [构建第一个现代应用程序-UI 设计](https://datawhalechina.github.io/easy-vibe/zh-cn/stage-2/frontend/2.2-ui-design/) | 基于设计稿完成组件化界面,实现从设计到代码的第一条链路 | -| [参考 UI 设计规范与多产品 UI 设计](https://datawhalechina.github.io/easy-vibe/zh-cn/stage-2/frontend/2.3-multi-product-ui/) | 围绕统一主视觉扩展多产品界面,练习系统化设计能力 | -| [用 LLM 和 Skills 让界面变好看](https://datawhalechina.github.io/easy-vibe/zh-cn/stage-2/frontend/2.4-llm-skills-beautiful/) | 用提示词和 Skills 插件让 AI 生成美观独特的界面 | -| [一起做霍格沃茨画像](https://datawhalechina.github.io/easy-vibe/zh-cn/stage-2/frontend/2.5-hogwarts-portraits/) | 从 0 到 1 做出接入 AI 能力的前端应用,串联设计与开发 | -| [从设计原型到项目代码](https://datawhalechina.github.io/easy-vibe/zh-cn/stage-2/frontend/2.6-design-to-code/) | 三种路径将设计工具中的原型转化为前端代码 | -| [使用现代组件库更新你的界面](https://datawhalechina.github.io/easy-vibe/zh-cn/stage-2/frontend/2.7-modern-component-library/) | 用组件库快速构建专业级界面,统一风格、提升开发效率 | +| [从Lovart出发,搭建自己的素材生产Agent](https://datawhalechina.github.io/easy-vibe/zh-cn/stage-2/frontend/lovart-assets/) | 从零开始,利用Nanobanana和Lovart批量生成高质量的设计素材,并动手构建一个能意图识别的绘图Agent | +| [Figma 与 MasterGo 入门](https://datawhalechina.github.io/easy-vibe/zh-cn/stage-2/frontend/figma-mastergo/) | 用设计工具梳理信息架构和页面结构,为前端实现打基础 | +| [构建第一个现代应用程序-UI 设计](https://datawhalechina.github.io/easy-vibe/zh-cn/stage-2/frontend/ui-design/) | 基于设计稿完成组件化界面,实现从设计到代码的第一条链路 | +| [参考 UI 设计规范与多产品 UI 设计](https://datawhalechina.github.io/easy-vibe/zh-cn/stage-2/frontend/multi-product-ui/) | 围绕统一主视觉扩展多产品界面,练习系统化设计能力 | +| [用 LLM 和 Skills 让界面变好看](https://datawhalechina.github.io/easy-vibe/zh-cn/stage-2/frontend/llm-skills-beautiful/) | 用提示词和 Skills 插件让 AI 生成美观独特的界面 | +| [一起做霍格沃茨画像](https://datawhalechina.github.io/easy-vibe/zh-cn/stage-2/frontend/hogwarts-portraits/) | 从 0 到 1 做出接入 AI 能力的前端应用,串联设计与开发 | +| [从设计原型到项目代码](https://datawhalechina.github.io/easy-vibe/zh-cn/stage-2/frontend/design-to-code/) | 三种路径将设计工具中的原型转化为前端代码 | +| [使用现代组件库更新你的界面](https://datawhalechina.github.io/easy-vibe/zh-cn/stage-2/frontend/modern-component-library/) | 用组件库快速构建专业级界面,统一风格、提升开发效率 | #### 后端开发部分 | 章节 | 关键内容 | | :------------------------------------------------------------------------------------------------- | :---------------------------------------------------------- | -| [从数据库到 Supabase](https://datawhalechina.github.io/easy-vibe/zh-cn/stage-2/backend/2.2-database-supabase/) | 在 Supabase 上落地数据库和 API,打通数据模型与前端页面 | -| [大模型辅助编写接口代码与接口文档](https://datawhalechina.github.io/easy-vibe/zh-cn/stage-2/backend/2.3-ai-interface-code/) | 用大模型协助生成接口与数据库文档及代码,实现可读可测的后端 | -| [Git 和 GitHub 工作流](https://datawhalechina.github.io/easy-vibe/zh-cn/stage-2/backend/2.4-git-workflow/) | 在 Git 工作流中管理代码,进行版本控制和协作 | -| [如何部署 Web 应用](https://datawhalechina.github.io/easy-vibe/zh-cn/stage-2/backend/2.5-zeabur-deployment/) | 使用 CloudBase、Vercel、Zeabur 等平台部署应用上线 | -| [CLI AI 编程工具](https://datawhalechina.github.io/easy-vibe/zh-cn/stage-2/backend/2.6-modern-cli/) | 使用 CLI 类 AI 编程工具加速开发与调试,形成个人工程化工作流 | -| [如何集成 Stripe 等收费系统](https://datawhalechina.github.io/easy-vibe/zh-cn/stage-2/backend/2.7-stripe-payment/) | 接入支付系统,完成收费链路与基础结算流程 | -| [大作业:构建第一个现代应用程序-全栈应用](https://datawhalechina.github.io/easy-vibe/zh-cn/stage-2/assignments/2.1-fullstack-app/) | 综合前端、后端与支付模块,完成可上线的全栈 Web 应用 | +| [从数据库到 Supabase](https://datawhalechina.github.io/easy-vibe/zh-cn/stage-2/backend/database-supabase/) | 在 Supabase 上落地数据库和 API,打通数据模型与前端页面 | +| [大模型辅助编写接口代码与接口文档](https://datawhalechina.github.io/easy-vibe/zh-cn/stage-2/backend/ai-interface-code/) | 用大模型协助生成接口与数据库文档及代码,实现可读可测的后端 | +| [Git 和 GitHub 工作流](https://datawhalechina.github.io/easy-vibe/zh-cn/stage-2/backend/git-workflow/) | 在 Git 工作流中管理代码,进行版本控制和协作 | +| [如何部署 Web 应用](https://datawhalechina.github.io/easy-vibe/zh-cn/stage-2/backend/zeabur-deployment/) | 使用 CloudBase、Vercel、Zeabur 等平台部署应用上线 | +| [CLI AI 编程工具](https://datawhalechina.github.io/easy-vibe/zh-cn/stage-2/backend/modern-cli/) | 使用 CLI 类 AI 编程工具加速开发与调试,形成个人工程化工作流 | +| [如何集成 Stripe 等收费系统](https://datawhalechina.github.io/easy-vibe/zh-cn/stage-2/backend/stripe-payment/) | 接入支付系统,完成收费链路与基础结算流程 | +| [大作业:构建第一个现代应用程序-全栈应用](https://datawhalechina.github.io/easy-vibe/zh-cn/stage-2/assignments/fullstack-app/) | 综合前端、后端与支付模块,完成可上线的全栈 Web 应用 | #### AI 能力附录 | 章节 | 关键内容 | | :------------------------------------------------------------------------------------------------------- | :------------------------------------------------------------- | -| [Dify 入门与知识库集成](https://datawhalechina.github.io/easy-vibe/zh-cn/stage-2/ai-capabilities/2.1-dify-knowledge-base/) | 用 Dify Workflow 与基础 RAG 搭建工具类产品,为后续应用升级打样 | +| [Dify 入门与知识库集成](https://datawhalechina.github.io/easy-vibe/zh-cn/stage-2/ai-capabilities/dify-knowledge-base/) | 用 Dify Workflow 与基础 RAG 搭建工具类产品,为后续应用升级打样 | ### 三、高级开发工程师 @@ -286,24 +286,24 @@ Easy-Vibe zeigt dir, wie daraus ein echtes Produkt wird. | 章节 | 关键内容 | | :------------------------------------------------------------------------------------------------------------- | :----------------------------------------------------------- | -| [如何构建微信小程序](https://datawhalechina.github.io/easy-vibe/zh-cn/stage-3/cross-platform/3.3-wechat-miniprogram/) | 了解微信小程序生态,从官方模板到上线完成一个前端小程序 | -| [如何构建微信小程序-包含后端](https://datawhalechina.github.io/easy-vibe/zh-cn/stage-3/cross-platform/3.4-wechat-miniprogram-backend/) | 在小程序中接入数据库与后端逻辑,打通完整业务闭环 | -| [如何构建安卓程序](https://datawhalechina.github.io/easy-vibe/zh-cn/stage-3/cross-platform/3.5-android-app/) | 使用 Expo 等工具,完成 Web/原生一体化的安卓应用开发 | -| [如何构建 iOS 程序](https://datawhalechina.github.io/easy-vibe/zh-cn/stage-3/cross-platform/3.6-ios-app/) | 使用 Expo 等工具,完成 Web/原生一体化的 iOS 应用开发 | -| [如何构建个人网页与学术博客](https://datawhalechina.github.io/easy-vibe/zh-cn/stage-3/personal-brand/3.7-personal-website-blog/) | 从选型、搭建到部署,构建展示个人项目与学术成果的在线主页 | -| [如何开发 PWA 本地应用](https://datawhalechina.github.io/easy-vibe/zh-cn/stage-3/cross-platform/3.8-pwa-local-app/) | 让网页变成"真正的 App",支持离线、推送、桌面安装 | -| [如何开发浏览器 AI 助手插件](https://datawhalechina.github.io/easy-vibe/zh-cn/stage-3/cross-platform/3.9-browser-ai-extension/) | 开发 Chrome 插件,一键总结任意网页,支持云端 API 和内置 AI | -| [如何开发 Electron 桌面程序](https://datawhalechina.github.io/easy-vibe/zh-cn/stage-3/cross-platform/3.10-electron-voice-to-text/) | 用 Electron 构建语音转文字桌面应用,支持三平台安装运行 | -| [如何快速开发并铸造 NFT](https://datawhalechina.github.io/easy-vibe/zh-cn/stage-3/cross-platform/3.11-nft-minting/) | 从零编写智能合约,部署到以太坊测试网,铸造自己的 NFT | -| [如何开发 VS Code 插件](https://datawhalechina.github.io/easy-vibe/zh-cn/stage-3/cross-platform/3.12-vscode-extension/) | 开发 AI 项目助手插件,支持模板生成、代码对话、多文件问答 | -| [如何开发工业级 Qt 桌面应用](https://datawhalechina.github.io/easy-vibe/zh-cn/stage-3/cross-platform/3.13-qt-industrial-hmi/) | 用 Qt 构建工业级水泵监控 HMI 系统,实时数据、趋势图、报警 | +| [如何构建微信小程序](https://datawhalechina.github.io/easy-vibe/zh-cn/stage-3/cross-platform/wechat-miniprogram/) | 了解微信小程序生态,从官方模板到上线完成一个前端小程序 | +| [如何构建微信小程序-包含后端](https://datawhalechina.github.io/easy-vibe/zh-cn/stage-3/cross-platform/wechat-miniprogram-backend/) | 在小程序中接入数据库与后端逻辑,打通完整业务闭环 | +| [如何构建安卓程序](https://datawhalechina.github.io/easy-vibe/zh-cn/stage-3/cross-platform/android-app/) | 使用 Expo 等工具,完成 Web/原生一体化的安卓应用开发 | +| [如何构建 iOS 程序](https://datawhalechina.github.io/easy-vibe/zh-cn/stage-3/cross-platform/ios-app/) | 使用 Expo 等工具,完成 Web/原生一体化的 iOS 应用开发 | +| [如何构建个人网页与学术博客](https://datawhalechina.github.io/easy-vibe/zh-cn/stage-3/personal-brand/personal-website-blog/) | 从选型、搭建到部署,构建展示个人项目与学术成果的在线主页 | +| [如何开发 PWA 本地应用](https://datawhalechina.github.io/easy-vibe/zh-cn/stage-3/cross-platform/pwa-local-app/) | 让网页变成"真正的 App",支持离线、推送、桌面安装 | +| [如何开发浏览器 AI 助手插件](https://datawhalechina.github.io/easy-vibe/zh-cn/stage-3/cross-platform/browser-ai-extension/) | 开发 Chrome 插件,一键总结任意网页,支持云端 API 和内置 AI | +| [如何开发 Electron 桌面程序](https://datawhalechina.github.io/easy-vibe/zh-cn/stage-3/cross-platform/electron-voice-to-text/) | 用 Electron 构建语音转文字桌面应用,支持三平台安装运行 | +| [如何快速开发并铸造 NFT](https://datawhalechina.github.io/easy-vibe/zh-cn/stage-3/cross-platform/nft-minting/) | 从零编写智能合约,部署到以太坊测试网,铸造自己的 NFT | +| [如何开发 VS Code 插件](https://datawhalechina.github.io/easy-vibe/zh-cn/stage-3/cross-platform/vscode-extension/) | 开发 AI 项目助手插件,支持模板生成、代码对话、多文件问答 | +| [如何开发工业级 Qt 桌面应用](https://datawhalechina.github.io/easy-vibe/zh-cn/stage-3/cross-platform/qt-industrial-hmi/) | 用 Qt 构建工业级水泵监控 HMI 系统,实时数据、趋势图、报警 | #### AI 能力附录 | 章节 | 关键内容 | | :---------------------------------------------------------------------------------------------------------------------------------------- | :------------------------------------------------------ | -| [什么是 RAG 以及它如何工作](https://datawhalechina.github.io/easy-vibe/zh-cn/stage-3/ai-advanced/3.a1-rag-introduction/) | 系统理解 RAG 原理与常见架构,为复杂应用提供知识检索基础 | -| [中高级 RAG 与工作流编排:以 LangGraph 为例](https://datawhalechina.github.io/easy-vibe/zh-cn/stage-3/ai-advanced/3.a2-langgraph-advanced-rag/) | 使用 LangGraph 等工具设计多步工作流与中高级 RAG 系统 | +| [什么是 RAG 以及它如何工作](https://datawhalechina.github.io/easy-vibe/zh-cn/stage-3/ai-advanced/rag-introduction/) | 系统理解 RAG 原理与常见架构,为复杂应用提供知识检索基础 | +| [中高级 RAG 与工作流编排:以 LangGraph 为例](https://datawhalechina.github.io/easy-vibe/zh-cn/stage-3/ai-advanced/langgraph-advanced-rag/) | 使用 LangGraph 等工具设计多步工作流与中高级 RAG 系统 | ### 📚 附录知识库 diff --git a/docs-readme/en-US/README.md b/docs-readme/en-US/README.md index 5665000..8ee8614 100644 --- a/docs-readme/en-US/README.md +++ b/docs-readme/en-US/README.md @@ -128,7 +128,7 @@ Easy-Vibe teaches you how to turn that into a real product. ## 🔥 News - **[2026-03-29]** ✨ **Vibe Stories launched and upgraded with real user journeys**: Added a new homepage Vibe Stories section with an interactive carousel and dedicated story pages, then replaced placeholder content with four real user stories featuring a rural primary school teacher, a college student, a high school IT teacher, and a truck driver who built real products with AI. [👉 View the stories](https://datawhalechina.github.io/easy-vibe/zh-cn/vibe-stories/story-1.html) -- **[2026-03-26]** 🚀 **Major Stage 2 practice update**: Completed the SaaS capstone project "[Your First SaaS Full-Stack App: Copywriting Generator Website](https://datawhalechina.github.io/easy-vibe/en/stage-2/assignments/2.1-fullstack-app/)" and substantially expanded the "[How to integrate Stripe and payment systems](https://datawhalechina.github.io/easy-vibe/en/stage-2/backend/2.7-stripe-payment/)" section, plus key content around multi-product UI and WeChat Mini Program backend workflows. +- **[2026-03-26]** 🚀 **Major Stage 2 practice update**: Completed the SaaS capstone project "[Your First SaaS Full-Stack App: Copywriting Generator Website](https://datawhalechina.github.io/easy-vibe/en/stage-2/assignments/fullstack-app/)" and substantially expanded the "[How to integrate Stripe and payment systems](https://datawhalechina.github.io/easy-vibe/en/stage-2/backend/stripe-payment/)" section, plus key content around multi-product UI and WeChat Mini Program backend workflows. - **[2026-03-25]** 📚 **New appendix: User Research and Requirement Validation**: Added four new articles covering idea sourcing, the Double Diamond model, Jobs to Be Done, and The Mom Test to help beginners discover and validate product ideas. [👉 Read the appendix](https://datawhalechina.github.io/easy-vibe/en/appendix/) - **[2026-03-25]** 📚 **English documentation fully updated**: Stage 2 (Full-stack Development) and Stage 3 (Advanced Development) are now fully available in English. [👉 Start learning](https://datawhalechina.github.io/easy-vibe/en/stage-2/) - **[2026-03-02]** 🦞 **OpenClaw and AI Agent friendly support**: Added `llms.txt` so OpenClaw, Claude, Cursor, Trae, and other AI agents can quickly understand the repository structure and find the right tutorial content. @@ -163,14 +163,14 @@ Easy-Vibe teaches you how to turn that into a real product. **What you will learn**: Your first AI coding experience with a Snake mini-game **What you will get**: Your first AI-built app in 5 minutes -[Start here](https://datawhalechina.github.io/easy-vibe/en/stage-0/) +[Start here](https://datawhalechina.github.io/easy-vibe/en/stage-1/) ### 💡 I have an idea I want to build **Best for**: Beginners / product managers / founders **What you will learn**: AI IDE tools, requirement breakdown, page design, feature planning, prompting, prototype iteration **What you will get**: A demoable product prototype -[Start learning](https://datawhalechina.github.io/easy-vibe/en/stage-0/) +[Start learning](https://datawhalechina.github.io/easy-vibe/en/stage-1/) ### 🚀 I want a structured learning path **Best for**: Developers / advanced learners @@ -195,7 +195,7 @@ Easy-Vibe teaches you how to turn that into a real product. ## Study Suggestions -- If you are a beginner, product manager, or founder, start with [Stage 0 / Stage 1](https://datawhalechina.github.io/easy-vibe/en/stage-0/) +- If you are a beginner, product manager, or founder, start with [Stage 0 / Stage 1](https://datawhalechina.github.io/easy-vibe/en/stage-1/) - If you already have development experience, start with [Stage 2](https://datawhalechina.github.io/easy-vibe/en/stage-2/) - If you want to jump directly into complex projects, go to [Stage 3](https://datawhalechina.github.io/easy-vibe/en/stage-3/) - If you want to learn AI agents, check out [Hello Claw](https://github.com/datawhalechina/hello-claw) @@ -212,13 +212,13 @@ Easy-Vibe teaches you how to turn that into a real product. | Section | Key Content | | :------ | :---------- | -| [Learning Map](https://datawhalechina.github.io/easy-vibe/en/stage-0/0.1-learning-map/) | A guided overview of the full learning journey | -| [In the AI era, if you can talk, you can code](https://datawhalechina.github.io/easy-vibe/en/stage-0/0.2-ai-capabilities-through-games/) | Get your first feel for AI coding through examples like Snake | -| [Finding great ideas](https://datawhalechina.github.io/easy-vibe/en/stage-1/1.0-finding-great-idea/) | Learn how to discover and validate product ideas worth building | -| [Introduction to AI IDE tools](https://datawhalechina.github.io/easy-vibe/en/stage-1/1.1-introduction-to-ai-ide/) | Learn to use an IDE and build simple local projects | -| [Build your prototype](https://datawhalechina.github.io/easy-vibe/en/stage-1/1.2-building-prototype/) | Move from requirements to single-page and multi-page product prototypes | -| [Add AI capabilities to your prototype](https://datawhalechina.github.io/easy-vibe/en/stage-1/1.3-integrating-ai-capabilities/) | Integrate text, image, and video AI features | -| [Complete project practice](https://datawhalechina.github.io/easy-vibe/en/stage-1/1.4-complete-project-practice/) | Simulate real scenarios, collect user feedback, and iterate on a full project | +| [Learning Map](https://datawhalechina.github.io/easy-vibe/en/stage-1/learning-map/) | A guided overview of the full learning journey | +| [In the AI era, if you can talk, you can code](https://datawhalechina.github.io/easy-vibe/en/stage-1/ai-capabilities-through-games/) | Get your first feel for AI coding through examples like Snake | +| [Finding great ideas](https://datawhalechina.github.io/easy-vibe/en/stage-1/finding-great-idea/) | Learn how to discover and validate product ideas worth building | +| [Introduction to AI IDE tools](https://datawhalechina.github.io/easy-vibe/en/stage-1/introduction-to-ai-ide/) | Learn to use an IDE and build simple local projects | +| [Build your prototype](https://datawhalechina.github.io/easy-vibe/en/stage-1/building-prototype/) | Move from requirements to single-page and multi-page product prototypes | +| [Add AI capabilities to your prototype](https://datawhalechina.github.io/easy-vibe/en/stage-1/integrating-ai-capabilities/) | Integrate text, image, and video AI features | +| [Complete project practice](https://datawhalechina.github.io/easy-vibe/en/stage-1/complete-project-practice/) | Simulate real scenarios, collect user feedback, and iterate on a full project | #### Appendix: Product and Business Thinking @@ -242,32 +242,32 @@ Easy-Vibe teaches you how to turn that into a real product. | Section | Key Content | | :------ | :---------- | -| [Build your own asset-generation agent starting from Lovart](https://datawhalechina.github.io/easy-vibe/en/stage-2/frontend/2.0-lovart-assets/) | Use Nanobanana and Lovart to generate high-quality visual assets and build a drawing agent that understands intent | -| [Getting started with Figma and MasterGo](https://datawhalechina.github.io/easy-vibe/en/stage-2/frontend/2.1-figma-mastergo/) | Organize information architecture and page structure with design tools | -| [Build your first modern application: UI design](https://datawhalechina.github.io/easy-vibe/en/stage-2/frontend/2.2-ui-design/) | Turn design drafts into component-based interfaces | -| [UI guidelines and multi-product UI design](https://datawhalechina.github.io/easy-vibe/en/stage-2/frontend/2.3-multi-product-ui/) | Extend a unified visual system across multiple products | -| [Make interfaces beautiful with LLMs and Skills](https://datawhalechina.github.io/easy-vibe/en/stage-2/frontend/2.4-llm-skills-beautiful/) | Use prompting and Skills plugins to generate distinctive, polished interfaces | -| [Build Hogwarts portraits together](https://datawhalechina.github.io/easy-vibe/en/stage-2/frontend/2.5-hogwarts-portraits/) | Create a frontend app from scratch that integrates AI capabilities | -| [From design prototype to project code](https://datawhalechina.github.io/easy-vibe/en/stage-2/frontend/2.6-design-to-code/) | Three practical paths to convert design prototypes into frontend code | -| [Refresh your UI with modern component libraries](https://datawhalechina.github.io/easy-vibe/en/stage-2/frontend/2.7-modern-component-library/) | Build more professional interfaces faster with modern component systems | +| [Build your own asset-generation agent starting from Lovart](https://datawhalechina.github.io/easy-vibe/en/stage-2/frontend/lovart-assets/) | Use Nanobanana and Lovart to generate high-quality visual assets and build a drawing agent that understands intent | +| [Getting started with Figma and MasterGo](https://datawhalechina.github.io/easy-vibe/en/stage-2/frontend/figma-mastergo/) | Organize information architecture and page structure with design tools | +| [Build your first modern application: UI design](https://datawhalechina.github.io/easy-vibe/en/stage-2/frontend/ui-design/) | Turn design drafts into component-based interfaces | +| [UI guidelines and multi-product UI design](https://datawhalechina.github.io/easy-vibe/en/stage-2/frontend/multi-product-ui/) | Extend a unified visual system across multiple products | +| [Make interfaces beautiful with LLMs and Skills](https://datawhalechina.github.io/easy-vibe/en/stage-2/frontend/llm-skills-beautiful/) | Use prompting and Skills plugins to generate distinctive, polished interfaces | +| [Build Hogwarts portraits together](https://datawhalechina.github.io/easy-vibe/en/stage-2/frontend/hogwarts-portraits/) | Create a frontend app from scratch that integrates AI capabilities | +| [From design prototype to project code](https://datawhalechina.github.io/easy-vibe/en/stage-2/frontend/design-to-code/) | Three practical paths to convert design prototypes into frontend code | +| [Refresh your UI with modern component libraries](https://datawhalechina.github.io/easy-vibe/en/stage-2/frontend/modern-component-library/) | Build more professional interfaces faster with modern component systems | #### Backend | Section | Key Content | | :------ | :---------- | -| [From databases to Supabase](https://datawhalechina.github.io/easy-vibe/en/stage-2/backend/2.2-database-supabase/) | Implement databases and APIs with Supabase and connect them to your frontend | -| [Use LLMs to write API code and API docs](https://datawhalechina.github.io/easy-vibe/en/stage-2/backend/2.3-ai-interface-code/) | Generate backend code and documentation that is easier to read and test | -| [Git and GitHub workflow](https://datawhalechina.github.io/easy-vibe/en/stage-2/backend/2.4-git-workflow/) | Manage versions and collaborate effectively with Git workflows | -| [How to deploy web applications](https://datawhalechina.github.io/easy-vibe/en/stage-2/backend/2.5-zeabur-deployment/) | Deploy apps with platforms like CloudBase, Vercel, and Zeabur | -| [CLI AI coding tools](https://datawhalechina.github.io/easy-vibe/en/stage-2/backend/2.6-modern-cli/) | Build a personal engineering workflow with terminal-based AI tools | -| [How to integrate Stripe and payment systems](https://datawhalechina.github.io/easy-vibe/en/stage-2/backend/2.7-stripe-payment/) | Add payment flows and basic billing capabilities | -| [Capstone: build your first modern full-stack application](https://datawhalechina.github.io/easy-vibe/en/stage-2/assignments/2.1-fullstack-app/) | Combine frontend, backend, and payments into a launch-ready web product | +| [From databases to Supabase](https://datawhalechina.github.io/easy-vibe/en/stage-2/backend/database-supabase/) | Implement databases and APIs with Supabase and connect them to your frontend | +| [Use LLMs to write API code and API docs](https://datawhalechina.github.io/easy-vibe/en/stage-2/backend/ai-interface-code/) | Generate backend code and documentation that is easier to read and test | +| [Git and GitHub workflow](https://datawhalechina.github.io/easy-vibe/en/stage-2/backend/git-workflow/) | Manage versions and collaborate effectively with Git workflows | +| [How to deploy web applications](https://datawhalechina.github.io/easy-vibe/en/stage-2/backend/zeabur-deployment/) | Deploy apps with platforms like CloudBase, Vercel, and Zeabur | +| [CLI AI coding tools](https://datawhalechina.github.io/easy-vibe/en/stage-2/backend/modern-cli/) | Build a personal engineering workflow with terminal-based AI tools | +| [How to integrate Stripe and payment systems](https://datawhalechina.github.io/easy-vibe/en/stage-2/backend/stripe-payment/) | Add payment flows and basic billing capabilities | +| [Capstone: build your first modern full-stack application](https://datawhalechina.github.io/easy-vibe/en/stage-2/assignments/fullstack-app/) | Combine frontend, backend, and payments into a launch-ready web product | #### AI Capabilities Appendix | Section | Key Content | | :------ | :---------- | -| [Getting started with Dify and knowledge base integration](https://datawhalechina.github.io/easy-vibe/en/stage-2/ai-capabilities/2.1-dify-knowledge-base/) | Build utility products with Dify workflows and basic RAG | +| [Getting started with Dify and knowledge base integration](https://datawhalechina.github.io/easy-vibe/en/stage-2/ai-capabilities/dify-knowledge-base/) | Build utility products with Dify workflows and basic RAG | ### III. Advanced Developers @@ -287,24 +287,24 @@ Easy-Vibe teaches you how to turn that into a real product. | Section | Key Content | | :------ | :---------- | -| [Build a WeChat Mini Program](https://datawhalechina.github.io/easy-vibe/en/stage-3/cross-platform/3.3-wechat-miniprogram/) | Understand the ecosystem and ship a frontend mini program from template to launch | -| [Build a WeChat Mini Program with backend](https://datawhalechina.github.io/easy-vibe/en/stage-3/cross-platform/3.4-wechat-miniprogram-backend/) | Add backend logic and databases to complete the full business loop | -| [Build an Android app](https://datawhalechina.github.io/easy-vibe/en/stage-3/cross-platform/3.5-android-app/) | Use Expo and related tools to build Android apps across web and native | -| [Build an iOS app](https://datawhalechina.github.io/easy-vibe/en/stage-3/cross-platform/3.6-ios-app/) | Use Expo and related tools to build iOS apps across web and native | -| [Build a personal website and academic blog](https://datawhalechina.github.io/easy-vibe/en/stage-3/personal-brand/3.7-personal-website-blog/) | Create an online home for projects, personal branding, and academic work | -| [Build a local PWA app](https://datawhalechina.github.io/easy-vibe/en/stage-3/cross-platform/3.8-pwa-local-app/) | Turn a website into a real app with offline support, push, and installation | -| [Build a browser AI assistant extension](https://datawhalechina.github.io/easy-vibe/en/stage-3/cross-platform/3.9-browser-ai-extension/) | Create a Chrome extension that summarizes any page with either cloud APIs or built-in AI | -| [Build an Electron desktop app](https://datawhalechina.github.io/easy-vibe/en/stage-3/cross-platform/3.10-electron-voice-to-text/) | Build a voice-to-text desktop app with Electron for three platforms | -| [Rapidly build and mint an NFT](https://datawhalechina.github.io/easy-vibe/en/stage-3/cross-platform/3.11-nft-minting/) | Write a smart contract from scratch, deploy it, and mint your own NFT | -| [Build a VS Code extension](https://datawhalechina.github.io/easy-vibe/en/stage-3/cross-platform/3.12-vscode-extension/) | Build an AI project assistant with templates, code chat, and multi-file Q&A | -| [Build an industrial-grade Qt desktop app](https://datawhalechina.github.io/easy-vibe/en/stage-3/cross-platform/3.13-qt-industrial-hmi/) | Create a real-time Qt HMI system with trends, alerts, and monitoring | +| [Build a WeChat Mini Program](https://datawhalechina.github.io/easy-vibe/en/stage-3/cross-platform/wechat-miniprogram/) | Understand the ecosystem and ship a frontend mini program from template to launch | +| [Build a WeChat Mini Program with backend](https://datawhalechina.github.io/easy-vibe/en/stage-3/cross-platform/wechat-miniprogram-backend/) | Add backend logic and databases to complete the full business loop | +| [Build an Android app](https://datawhalechina.github.io/easy-vibe/en/stage-3/cross-platform/android-app/) | Use Expo and related tools to build Android apps across web and native | +| [Build an iOS app](https://datawhalechina.github.io/easy-vibe/en/stage-3/cross-platform/ios-app/) | Use Expo and related tools to build iOS apps across web and native | +| [Build a personal website and academic blog](https://datawhalechina.github.io/easy-vibe/en/stage-3/personal-brand/personal-website-blog/) | Create an online home for projects, personal branding, and academic work | +| [Build a local PWA app](https://datawhalechina.github.io/easy-vibe/en/stage-3/cross-platform/pwa-local-app/) | Turn a website into a real app with offline support, push, and installation | +| [Build a browser AI assistant extension](https://datawhalechina.github.io/easy-vibe/en/stage-3/cross-platform/browser-ai-extension/) | Create a Chrome extension that summarizes any page with either cloud APIs or built-in AI | +| [Build an Electron desktop app](https://datawhalechina.github.io/easy-vibe/en/stage-3/cross-platform/electron-voice-to-text/) | Build a voice-to-text desktop app with Electron for three platforms | +| [Rapidly build and mint an NFT](https://datawhalechina.github.io/easy-vibe/en/stage-3/cross-platform/nft-minting/) | Write a smart contract from scratch, deploy it, and mint your own NFT | +| [Build a VS Code extension](https://datawhalechina.github.io/easy-vibe/en/stage-3/cross-platform/vscode-extension/) | Build an AI project assistant with templates, code chat, and multi-file Q&A | +| [Build an industrial-grade Qt desktop app](https://datawhalechina.github.io/easy-vibe/en/stage-3/cross-platform/qt-industrial-hmi/) | Create a real-time Qt HMI system with trends, alerts, and monitoring | #### AI Capabilities Appendix | Section | Key Content | | :------ | :---------- | -| [What is RAG and how does it work](https://datawhalechina.github.io/easy-vibe/en/stage-3/ai-advanced/3.a1-rag-introduction/) | Build a systematic understanding of RAG principles and common architectures | -| [Intermediate and advanced RAG workflows with LangGraph](https://datawhalechina.github.io/easy-vibe/en/stage-3/ai-advanced/3.a2-langgraph-advanced-rag/) | Design multi-step workflows and more advanced RAG systems | +| [What is RAG and how does it work](https://datawhalechina.github.io/easy-vibe/en/stage-3/ai-advanced/rag-introduction/) | Build a systematic understanding of RAG principles and common architectures | +| [Intermediate and advanced RAG workflows with LangGraph](https://datawhalechina.github.io/easy-vibe/en/stage-3/ai-advanced/langgraph-advanced-rag/) | Design multi-step workflows and more advanced RAG systems | ### 📚 Appendix Knowledge Base diff --git a/docs-readme/es-ES/README.md b/docs-readme/es-ES/README.md index cd01dcc..d2a2750 100644 --- a/docs-readme/es-ES/README.md +++ b/docs-readme/es-ES/README.md @@ -129,7 +129,7 @@ Easy-Vibe te enseña a convertir eso en un producto real. ## 🔥 News - **[2026-03-29]** ✨ **Lanzamos la sección de historias de usuarios y la actualizamos con casos reales**: Añadimos un carrusel interactivo y páginas dedicadas en la portada, y sustituimos el contenido provisional por cuatro historias reales de una maestra rural, una estudiante universitaria, un profesor de informática de secundaria y un camionero que construyeron productos reales con IA. [👉 View the stories](https://datawhalechina.github.io/easy-vibe/zh-cn/vibe-stories/story-1.html) -- **[2026-03-26]** 🚀 **Actualización masiva de contenido práctico de la Etapa 2**: Se completó el proyecto final SaaS "[Tu primera aplicación full-stack SaaS: Generador de copywriting](https://datawhalechina.github.io/easy-vibe/en/stage-2/assignments/2.1-fullstack-app/)" y se amplió sustancialmente la sección "[Cómo integrar Stripe y sistemas de pago](https://datawhalechina.github.io/easy-vibe/en/stage-2/backend/2.7-stripe-payment/)". +- **[2026-03-26]** 🚀 **Actualización masiva de contenido práctico de la Etapa 2**: Se completó el proyecto final SaaS "[Tu primera aplicación full-stack SaaS: Generador de copywriting](https://datawhalechina.github.io/easy-vibe/en/stage-2/assignments/fullstack-app/)" y se amplió sustancialmente la sección "[Cómo integrar Stripe y sistemas de pago](https://datawhalechina.github.io/easy-vibe/en/stage-2/backend/stripe-payment/)". - **[2026-03-25]** 📚 **Nuevo apéndice: Investigación de usuarios y validación de requisitos**: Se agregaron cuatro nuevos artículos que cubren la búsqueda de ideas, el modelo Double Diamond, Jobs to Be Done y The Mom Test para ayudar a los principiantes a descubrir y validar ideas de productos. [👉 Leer el apéndice](https://datawhalechina.github.io/easy-vibe/en/appendix/) - **[2026-03-25]** 📚 **Documentación en inglés completamente actualizada**: La Etapa 2 (Desarrollo full-stack) y la Etapa 3 (Desarrollo avanzado) ya están disponibles completamente en inglés. [👉 Empezar a aprender](https://datawhalechina.github.io/easy-vibe/en/stage-2/) - **[2026-03-02]** 🦞 **Soporte amigable para OpenClaw y AI Agent**: Se agregó `llms.txt` para que OpenClaw, Claude, Cursor, Trae y otros agentes de IA puedan comprender rápidamente la estructura del repositorio y encontrar el contenido tutorial adecuado. @@ -164,14 +164,14 @@ Easy-Vibe te enseña a convertir eso en un producto real. **学什么**:AI 编程初体验、贪吃蛇小游戏 **你会得到**:5 分钟做出第一个 AI 应用 -[开始体验](https://datawhalechina.github.io/easy-vibe/zh-cn/stage-0/) +[开始体验](https://datawhalechina.github.io/easy-vibe/zh-cn/stage-1/) ### 💡 我有个想法要实现 **适合人群**:零基础/产品经理/创业者 **学什么**:AI IDE 工具、需求拆解、页面设计、功能规划、提示词写法、原型迭代 **你会得到**:一个可演示的产品原型 -[开始学习](https://datawhalechina.github.io/easy-vibe/zh-cn/stage-0/) +[开始学习](https://datawhalechina.github.io/easy-vibe/zh-cn/stage-1/) ### 🚀 我想系统学习 **适合人群**:开发者/进阶学习者 @@ -196,7 +196,7 @@ Easy-Vibe te enseña a convertir eso en un producto real. ## 学习建议 -- 零基础、产品经理、创业者:从 [第一阶段](https://datawhalechina.github.io/easy-vibe/zh-cn/stage-0/) 开始 +- 零基础、产品经理、创业者:从 [第一阶段](https://datawhalechina.github.io/easy-vibe/zh-cn/stage-1/) 开始 - 有开发经验:从 [第二阶段](https://datawhalechina.github.io/easy-vibe/zh-cn/stage-2/) 开始 - 想直接做复杂项目:进入 [第三阶段](https://datawhalechina.github.io/easy-vibe/zh-cn/stage-3/) - 想学 AI Agent:看 [Hello Claw](https://github.com/datawhalechina/hello-claw) @@ -211,13 +211,13 @@ Easy-Vibe te enseña a convertir eso en un producto real. | 章节 | 关键内容 | | :----------------------------------------------------------------------------------- | :------------------------------------------------ | -| [学习地图](https://datawhalechina.github.io/easy-vibe/zh-cn/stage-0/0.1-learning-map/) | 整体学习路径导览 | -| [AI 时代,会说话就会编程](https://datawhalechina.github.io/easy-vibe/zh-cn/stage-0/0.2-ai-capabilities-through-games/) | 通过贪吃蛇等案例初步感受 AI 编程的能力 | -| [寻找好想法](https://datawhalechina.github.io/easy-vibe/zh-cn/stage-1/1.0-finding-great-idea/) | 学会寻找和验证产品想法,找到值得做的项目 | -| [认识 AI IDE 工具](https://datawhalechina.github.io/easy-vibe/zh-cn/stage-1/1.1-introduction-to-ai-ide/) | 学会使用 IDE,在本地制作小游戏 | -| [动手做出原型](https://datawhalechina.github.io/easy-vibe/zh-cn/stage-1/1.2-building-prototype/) | 从需求分析、AI 生成单页面,再到生成多页面产品原型 | -| [给原型加上 AI 能力](https://datawhalechina.github.io/easy-vibe/zh-cn/stage-1/1.3-integrating-ai-capabilities/) | 学会接入常见 AI 能力(文本、图片、视频) | -| [完整项目实战](https://datawhalechina.github.io/easy-vibe/zh-cn/stage-1/1.4-complete-project-practice/) | 模拟真实场景、接受用户反馈迭代,完整化项目 | +| [学习地图](https://datawhalechina.github.io/easy-vibe/zh-cn/stage-1/learning-map/) | 整体学习路径导览 | +| [AI 时代,会说话就会编程](https://datawhalechina.github.io/easy-vibe/zh-cn/stage-1/ai-capabilities-through-games/) | 通过贪吃蛇等案例初步感受 AI 编程的能力 | +| [寻找好想法](https://datawhalechina.github.io/easy-vibe/zh-cn/stage-1/finding-great-idea/) | 学会寻找和验证产品想法,找到值得做的项目 | +| [认识 AI IDE 工具](https://datawhalechina.github.io/easy-vibe/zh-cn/stage-1/introduction-to-ai-ide/) | 学会使用 IDE,在本地制作小游戏 | +| [动手做出原型](https://datawhalechina.github.io/easy-vibe/zh-cn/stage-1/building-prototype/) | 从需求分析、AI 生成单页面,再到生成多页面产品原型 | +| [给原型加上 AI 能力](https://datawhalechina.github.io/easy-vibe/zh-cn/stage-1/integrating-ai-capabilities/) | 学会接入常见 AI 能力(文本、图片、视频) | +| [完整项目实战](https://datawhalechina.github.io/easy-vibe/zh-cn/stage-1/complete-project-practice/) | 模拟真实场景、接受用户反馈迭代,完整化项目 | #### 附录:业务思维 @@ -241,32 +241,32 @@ Easy-Vibe te enseña a convertir eso en un producto real. | 章节 | 关键内容 | | :--------------------------------------------------------------------------------------------------------- | :--------------------------------------------------------------------------- | -| [从Lovart出发,搭建自己的素材生产Agent](https://datawhalechina.github.io/easy-vibe/zh-cn/stage-2/frontend/2.0-lovart-assets/) | 从零开始,利用Nanobanana和Lovart批量生成高质量的设计素材,并动手构建一个能意图识别的绘图Agent | -| [Figma 与 MasterGo 入门](https://datawhalechina.github.io/easy-vibe/zh-cn/stage-2/frontend/2.1-figma-mastergo/) | 用设计工具梳理信息架构和页面结构,为前端实现打基础 | -| [构建第一个现代应用程序-UI 设计](https://datawhalechina.github.io/easy-vibe/zh-cn/stage-2/frontend/2.2-ui-design/) | 基于设计稿完成组件化界面,实现从设计到代码的第一条链路 | -| [参考 UI 设计规范与多产品 UI 设计](https://datawhalechina.github.io/easy-vibe/zh-cn/stage-2/frontend/2.3-multi-product-ui/) | 围绕统一主视觉扩展多产品界面,练习系统化设计能力 | -| [用 LLM 和 Skills 让界面变好看](https://datawhalechina.github.io/easy-vibe/zh-cn/stage-2/frontend/2.4-llm-skills-beautiful/) | 用提示词和 Skills 插件让 AI 生成美观独特的界面 | -| [一起做霍格沃茨画像](https://datawhalechina.github.io/easy-vibe/zh-cn/stage-2/frontend/2.5-hogwarts-portraits/) | 从 0 到 1 做出接入 AI 能力的前端应用,串联设计与开发 | -| [从设计原型到项目代码](https://datawhalechina.github.io/easy-vibe/zh-cn/stage-2/frontend/2.6-design-to-code/) | 三种路径将设计工具中的原型转化为前端代码 | -| [使用现代组件库更新你的界面](https://datawhalechina.github.io/easy-vibe/zh-cn/stage-2/frontend/2.7-modern-component-library/) | 用组件库快速构建专业级界面,统一风格、提升开发效率 | +| [从Lovart出发,搭建自己的素材生产Agent](https://datawhalechina.github.io/easy-vibe/zh-cn/stage-2/frontend/lovart-assets/) | 从零开始,利用Nanobanana和Lovart批量生成高质量的设计素材,并动手构建一个能意图识别的绘图Agent | +| [Figma 与 MasterGo 入门](https://datawhalechina.github.io/easy-vibe/zh-cn/stage-2/frontend/figma-mastergo/) | 用设计工具梳理信息架构和页面结构,为前端实现打基础 | +| [构建第一个现代应用程序-UI 设计](https://datawhalechina.github.io/easy-vibe/zh-cn/stage-2/frontend/ui-design/) | 基于设计稿完成组件化界面,实现从设计到代码的第一条链路 | +| [参考 UI 设计规范与多产品 UI 设计](https://datawhalechina.github.io/easy-vibe/zh-cn/stage-2/frontend/multi-product-ui/) | 围绕统一主视觉扩展多产品界面,练习系统化设计能力 | +| [用 LLM 和 Skills 让界面变好看](https://datawhalechina.github.io/easy-vibe/zh-cn/stage-2/frontend/llm-skills-beautiful/) | 用提示词和 Skills 插件让 AI 生成美观独特的界面 | +| [一起做霍格沃茨画像](https://datawhalechina.github.io/easy-vibe/zh-cn/stage-2/frontend/hogwarts-portraits/) | 从 0 到 1 做出接入 AI 能力的前端应用,串联设计与开发 | +| [从设计原型到项目代码](https://datawhalechina.github.io/easy-vibe/zh-cn/stage-2/frontend/design-to-code/) | 三种路径将设计工具中的原型转化为前端代码 | +| [使用现代组件库更新你的界面](https://datawhalechina.github.io/easy-vibe/zh-cn/stage-2/frontend/modern-component-library/) | 用组件库快速构建专业级界面,统一风格、提升开发效率 | #### 后端开发部分 | 章节 | 关键内容 | | :------------------------------------------------------------------------------------------------- | :---------------------------------------------------------- | -| [从数据库到 Supabase](https://datawhalechina.github.io/easy-vibe/zh-cn/stage-2/backend/2.2-database-supabase/) | 在 Supabase 上落地数据库和 API,打通数据模型与前端页面 | -| [大模型辅助编写接口代码与接口文档](https://datawhalechina.github.io/easy-vibe/zh-cn/stage-2/backend/2.3-ai-interface-code/) | 用大模型协助生成接口与数据库文档及代码,实现可读可测的后端 | -| [Git 和 GitHub 工作流](https://datawhalechina.github.io/easy-vibe/zh-cn/stage-2/backend/2.4-git-workflow/) | 在 Git 工作流中管理代码,进行版本控制和协作 | -| [如何部署 Web 应用](https://datawhalechina.github.io/easy-vibe/zh-cn/stage-2/backend/2.5-zeabur-deployment/) | 使用 CloudBase、Vercel、Zeabur 等平台部署应用上线 | -| [CLI AI 编程工具](https://datawhalechina.github.io/easy-vibe/zh-cn/stage-2/backend/2.6-modern-cli/) | 使用 CLI 类 AI 编程工具加速开发与调试,形成个人工程化工作流 | -| [如何集成 Stripe 等收费系统](https://datawhalechina.github.io/easy-vibe/zh-cn/stage-2/backend/2.7-stripe-payment/) | 接入支付系统,完成收费链路与基础结算流程 | -| [大作业:构建第一个现代应用程序-全栈应用](https://datawhalechina.github.io/easy-vibe/zh-cn/stage-2/assignments/2.1-fullstack-app/) | 综合前端、后端与支付模块,完成可上线的全栈 Web 应用 | +| [从数据库到 Supabase](https://datawhalechina.github.io/easy-vibe/zh-cn/stage-2/backend/database-supabase/) | 在 Supabase 上落地数据库和 API,打通数据模型与前端页面 | +| [大模型辅助编写接口代码与接口文档](https://datawhalechina.github.io/easy-vibe/zh-cn/stage-2/backend/ai-interface-code/) | 用大模型协助生成接口与数据库文档及代码,实现可读可测的后端 | +| [Git 和 GitHub 工作流](https://datawhalechina.github.io/easy-vibe/zh-cn/stage-2/backend/git-workflow/) | 在 Git 工作流中管理代码,进行版本控制和协作 | +| [如何部署 Web 应用](https://datawhalechina.github.io/easy-vibe/zh-cn/stage-2/backend/zeabur-deployment/) | 使用 CloudBase、Vercel、Zeabur 等平台部署应用上线 | +| [CLI AI 编程工具](https://datawhalechina.github.io/easy-vibe/zh-cn/stage-2/backend/modern-cli/) | 使用 CLI 类 AI 编程工具加速开发与调试,形成个人工程化工作流 | +| [如何集成 Stripe 等收费系统](https://datawhalechina.github.io/easy-vibe/zh-cn/stage-2/backend/stripe-payment/) | 接入支付系统,完成收费链路与基础结算流程 | +| [大作业:构建第一个现代应用程序-全栈应用](https://datawhalechina.github.io/easy-vibe/zh-cn/stage-2/assignments/fullstack-app/) | 综合前端、后端与支付模块,完成可上线的全栈 Web 应用 | #### AI 能力附录 | 章节 | 关键内容 | | :------------------------------------------------------------------------------------------------------- | :------------------------------------------------------------- | -| [Dify 入门与知识库集成](https://datawhalechina.github.io/easy-vibe/zh-cn/stage-2/ai-capabilities/2.1-dify-knowledge-base/) | 用 Dify Workflow 与基础 RAG 搭建工具类产品,为后续应用升级打样 | +| [Dify 入门与知识库集成](https://datawhalechina.github.io/easy-vibe/zh-cn/stage-2/ai-capabilities/dify-knowledge-base/) | 用 Dify Workflow 与基础 RAG 搭建工具类产品,为后续应用升级打样 | ### 三、高级开发工程师 @@ -286,24 +286,24 @@ Easy-Vibe te enseña a convertir eso en un producto real. | 章节 | 关键内容 | | :------------------------------------------------------------------------------------------------------------- | :----------------------------------------------------------- | -| [如何构建微信小程序](https://datawhalechina.github.io/easy-vibe/zh-cn/stage-3/cross-platform/3.3-wechat-miniprogram/) | 了解微信小程序生态,从官方模板到上线完成一个前端小程序 | -| [如何构建微信小程序-包含后端](https://datawhalechina.github.io/easy-vibe/zh-cn/stage-3/cross-platform/3.4-wechat-miniprogram-backend/) | 在小程序中接入数据库与后端逻辑,打通完整业务闭环 | -| [如何构建安卓程序](https://datawhalechina.github.io/easy-vibe/zh-cn/stage-3/cross-platform/3.5-android-app/) | 使用 Expo 等工具,完成 Web/原生一体化的安卓应用开发 | -| [如何构建 iOS 程序](https://datawhalechina.github.io/easy-vibe/zh-cn/stage-3/cross-platform/3.6-ios-app/) | 使用 Expo 等工具,完成 Web/原生一体化的 iOS 应用开发 | -| [如何构建个人网页与学术博客](https://datawhalechina.github.io/easy-vibe/zh-cn/stage-3/personal-brand/3.7-personal-website-blog/) | 从选型、搭建到部署,构建展示个人项目与学术成果的在线主页 | -| [如何开发 PWA 本地应用](https://datawhalechina.github.io/easy-vibe/zh-cn/stage-3/cross-platform/3.8-pwa-local-app/) | 让网页变成"真正的 App",支持离线、推送、桌面安装 | -| [如何开发浏览器 AI 助手插件](https://datawhalechina.github.io/easy-vibe/zh-cn/stage-3/cross-platform/3.9-browser-ai-extension/) | 开发 Chrome 插件,一键总结任意网页,支持云端 API 和内置 AI | -| [如何开发 Electron 桌面程序](https://datawhalechina.github.io/easy-vibe/zh-cn/stage-3/cross-platform/3.10-electron-voice-to-text/) | 用 Electron 构建语音转文字桌面应用,支持三平台安装运行 | -| [如何快速开发并铸造 NFT](https://datawhalechina.github.io/easy-vibe/zh-cn/stage-3/cross-platform/3.11-nft-minting/) | 从零编写智能合约,部署到以太坊测试网,铸造自己的 NFT | -| [如何开发 VS Code 插件](https://datawhalechina.github.io/easy-vibe/zh-cn/stage-3/cross-platform/3.12-vscode-extension/) | 开发 AI 项目助手插件,支持模板生成、代码对话、多文件问答 | -| [如何开发工业级 Qt 桌面应用](https://datawhalechina.github.io/easy-vibe/zh-cn/stage-3/cross-platform/3.13-qt-industrial-hmi/) | 用 Qt 构建工业级水泵监控 HMI 系统,实时数据、趋势图、报警 | +| [如何构建微信小程序](https://datawhalechina.github.io/easy-vibe/zh-cn/stage-3/cross-platform/wechat-miniprogram/) | 了解微信小程序生态,从官方模板到上线完成一个前端小程序 | +| [如何构建微信小程序-包含后端](https://datawhalechina.github.io/easy-vibe/zh-cn/stage-3/cross-platform/wechat-miniprogram-backend/) | 在小程序中接入数据库与后端逻辑,打通完整业务闭环 | +| [如何构建安卓程序](https://datawhalechina.github.io/easy-vibe/zh-cn/stage-3/cross-platform/android-app/) | 使用 Expo 等工具,完成 Web/原生一体化的安卓应用开发 | +| [如何构建 iOS 程序](https://datawhalechina.github.io/easy-vibe/zh-cn/stage-3/cross-platform/ios-app/) | 使用 Expo 等工具,完成 Web/原生一体化的 iOS 应用开发 | +| [如何构建个人网页与学术博客](https://datawhalechina.github.io/easy-vibe/zh-cn/stage-3/personal-brand/personal-website-blog/) | 从选型、搭建到部署,构建展示个人项目与学术成果的在线主页 | +| [如何开发 PWA 本地应用](https://datawhalechina.github.io/easy-vibe/zh-cn/stage-3/cross-platform/pwa-local-app/) | 让网页变成"真正的 App",支持离线、推送、桌面安装 | +| [如何开发浏览器 AI 助手插件](https://datawhalechina.github.io/easy-vibe/zh-cn/stage-3/cross-platform/browser-ai-extension/) | 开发 Chrome 插件,一键总结任意网页,支持云端 API 和内置 AI | +| [如何开发 Electron 桌面程序](https://datawhalechina.github.io/easy-vibe/zh-cn/stage-3/cross-platform/electron-voice-to-text/) | 用 Electron 构建语音转文字桌面应用,支持三平台安装运行 | +| [如何快速开发并铸造 NFT](https://datawhalechina.github.io/easy-vibe/zh-cn/stage-3/cross-platform/nft-minting/) | 从零编写智能合约,部署到以太坊测试网,铸造自己的 NFT | +| [如何开发 VS Code 插件](https://datawhalechina.github.io/easy-vibe/zh-cn/stage-3/cross-platform/vscode-extension/) | 开发 AI 项目助手插件,支持模板生成、代码对话、多文件问答 | +| [如何开发工业级 Qt 桌面应用](https://datawhalechina.github.io/easy-vibe/zh-cn/stage-3/cross-platform/qt-industrial-hmi/) | 用 Qt 构建工业级水泵监控 HMI 系统,实时数据、趋势图、报警 | #### AI 能力附录 | 章节 | 关键内容 | | :---------------------------------------------------------------------------------------------------------------------------------------- | :------------------------------------------------------ | -| [什么是 RAG 以及它如何工作](https://datawhalechina.github.io/easy-vibe/zh-cn/stage-3/ai-advanced/3.a1-rag-introduction/) | 系统理解 RAG 原理与常见架构,为复杂应用提供知识检索基础 | -| [中高级 RAG 与工作流编排:以 LangGraph 为例](https://datawhalechina.github.io/easy-vibe/zh-cn/stage-3/ai-advanced/3.a2-langgraph-advanced-rag/) | 使用 LangGraph 等工具设计多步工作流与中高级 RAG 系统 | +| [什么是 RAG 以及它如何工作](https://datawhalechina.github.io/easy-vibe/zh-cn/stage-3/ai-advanced/rag-introduction/) | 系统理解 RAG 原理与常见架构,为复杂应用提供知识检索基础 | +| [中高级 RAG 与工作流编排:以 LangGraph 为例](https://datawhalechina.github.io/easy-vibe/zh-cn/stage-3/ai-advanced/langgraph-advanced-rag/) | 使用 LangGraph 等工具设计多步工作流与中高级 RAG 系统 | ### 📚 附录知识库 diff --git a/docs-readme/fr-FR/README.md b/docs-readme/fr-FR/README.md index 337b5c5..f978960 100644 --- a/docs-readme/fr-FR/README.md +++ b/docs-readme/fr-FR/README.md @@ -129,7 +129,7 @@ Easy-Vibe vous apprend a transformer cela en un vrai produit. ## 🔥 News - **[2026-03-29]** ✨ **La section Histoires d’utilisateurs est en ligne avec 4 cas réels** : Nous avons ajouté un carrousel interactif et des pages dédiées sur la page d’accueil, puis remplacé le contenu provisoire par quatre récits réels mettant en scène un instituteur rural, une étudiante, un professeur d’informatique au lycée et un chauffeur routier ayant créé de vrais produits avec l’IA. [👉 View the stories](https://datawhalechina.github.io/easy-vibe/zh-cn/vibe-stories/story-1.html) -- **[2026-03-26]** 🚀 **Mise à jour majeure de la pratique de l'Étape 2**: Projet final SaaS "[Votre première application full-stack SaaS : Générateur de copywriting](https://datawhalechina.github.io/easy-vibe/en/stage-2/assignments/2.1-fullstack-app/)" complété et section "[Comment intégrer Stripe et les systèmes de paiement](https://datawhalechina.github.io/easy-vibe/en/stage-2/backend/2.7-stripe-payment/)" substantiellement élargie. +- **[2026-03-26]** 🚀 **Mise à jour majeure de la pratique de l'Étape 2**: Projet final SaaS "[Votre première application full-stack SaaS : Générateur de copywriting](https://datawhalechina.github.io/easy-vibe/en/stage-2/assignments/fullstack-app/)" complété et section "[Comment intégrer Stripe et les systèmes de paiement](https://datawhalechina.github.io/easy-vibe/en/stage-2/backend/stripe-payment/)" substantiellement élargie. - **[2026-03-25]** 📚 **Nouvel appendice : Recherche utilisateur et validation des besoins**: Ajout de quatre nouveaux articles couvrant la recherche d'idées, le modèle Double Diamond, Jobs to Be Done et The Mom Test pour aider les débutants à découvrir et valider des idées de produits. [👉 Lire l'appendice](https://datawhalechina.github.io/easy-vibe/en/appendix/) - **[2026-03-25]** 📚 **Documentation anglaise entièrement mise à jour**: L'Étape 2 (Développement full-stack) et l'Étape 3 (Développement avancé) sont maintenant entièrement disponibles en anglais. [👉 Commencer à apprendre](https://datawhalechina.github.io/easy-vibe/en/stage-2/) - **[2026-03-02]** 🦞 **Support amical pour OpenClaw et AI Agent**: Ajout de `llms.txt` pour qu'OpenClaw, Claude, Cursor, Trae et autres agents IA puissent rapidement comprendre la structure du dépôt et trouver le bon contenu tutoriel. @@ -164,14 +164,14 @@ Easy-Vibe vous apprend a transformer cela en un vrai produit. **学什么**:AI 编程初体验、贪吃蛇小游戏 **你会得到**:5 分钟做出第一个 AI 应用 -[开始体验](https://datawhalechina.github.io/easy-vibe/zh-cn/stage-0/) +[开始体验](https://datawhalechina.github.io/easy-vibe/zh-cn/stage-1/) ### 💡 我有个想法要实现 **适合人群**:零基础/产品经理/创业者 **学什么**:AI IDE 工具、需求拆解、页面设计、功能规划、提示词写法、原型迭代 **你会得到**:一个可演示的产品原型 -[开始学习](https://datawhalechina.github.io/easy-vibe/zh-cn/stage-0/) +[开始学习](https://datawhalechina.github.io/easy-vibe/zh-cn/stage-1/) ### 🚀 我想系统学习 **适合人群**:开发者/进阶学习者 @@ -196,7 +196,7 @@ Easy-Vibe vous apprend a transformer cela en un vrai produit. ## 学习建议 -- 零基础、产品经理、创业者:从 [第一阶段](https://datawhalechina.github.io/easy-vibe/zh-cn/stage-0/) 开始 +- 零基础、产品经理、创业者:从 [第一阶段](https://datawhalechina.github.io/easy-vibe/zh-cn/stage-1/) 开始 - 有开发经验:从 [第二阶段](https://datawhalechina.github.io/easy-vibe/zh-cn/stage-2/) 开始 - 想直接做复杂项目:进入 [第三阶段](https://datawhalechina.github.io/easy-vibe/zh-cn/stage-3/) - 想学 AI Agent:看 [Hello Claw](https://github.com/datawhalechina/hello-claw) @@ -211,13 +211,13 @@ Easy-Vibe vous apprend a transformer cela en un vrai produit. | 章节 | 关键内容 | | :----------------------------------------------------------------------------------- | :------------------------------------------------ | -| [学习地图](https://datawhalechina.github.io/easy-vibe/zh-cn/stage-0/0.1-learning-map/) | 整体学习路径导览 | -| [AI 时代,会说话就会编程](https://datawhalechina.github.io/easy-vibe/zh-cn/stage-0/0.2-ai-capabilities-through-games/) | 通过贪吃蛇等案例初步感受 AI 编程的能力 | -| [寻找好想法](https://datawhalechina.github.io/easy-vibe/zh-cn/stage-1/1.0-finding-great-idea/) | 学会寻找和验证产品想法,找到值得做的项目 | -| [认识 AI IDE 工具](https://datawhalechina.github.io/easy-vibe/zh-cn/stage-1/1.1-introduction-to-ai-ide/) | 学会使用 IDE,在本地制作小游戏 | -| [动手做出原型](https://datawhalechina.github.io/easy-vibe/zh-cn/stage-1/1.2-building-prototype/) | 从需求分析、AI 生成单页面,再到生成多页面产品原型 | -| [给原型加上 AI 能力](https://datawhalechina.github.io/easy-vibe/zh-cn/stage-1/1.3-integrating-ai-capabilities/) | 学会接入常见 AI 能力(文本、图片、视频) | -| [完整项目实战](https://datawhalechina.github.io/easy-vibe/zh-cn/stage-1/1.4-complete-project-practice/) | 模拟真实场景、接受用户反馈迭代,完整化项目 | +| [学习地图](https://datawhalechina.github.io/easy-vibe/zh-cn/stage-1/learning-map/) | 整体学习路径导览 | +| [AI 时代,会说话就会编程](https://datawhalechina.github.io/easy-vibe/zh-cn/stage-1/ai-capabilities-through-games/) | 通过贪吃蛇等案例初步感受 AI 编程的能力 | +| [寻找好想法](https://datawhalechina.github.io/easy-vibe/zh-cn/stage-1/finding-great-idea/) | 学会寻找和验证产品想法,找到值得做的项目 | +| [认识 AI IDE 工具](https://datawhalechina.github.io/easy-vibe/zh-cn/stage-1/introduction-to-ai-ide/) | 学会使用 IDE,在本地制作小游戏 | +| [动手做出原型](https://datawhalechina.github.io/easy-vibe/zh-cn/stage-1/building-prototype/) | 从需求分析、AI 生成单页面,再到生成多页面产品原型 | +| [给原型加上 AI 能力](https://datawhalechina.github.io/easy-vibe/zh-cn/stage-1/integrating-ai-capabilities/) | 学会接入常见 AI 能力(文本、图片、视频) | +| [完整项目实战](https://datawhalechina.github.io/easy-vibe/zh-cn/stage-1/complete-project-practice/) | 模拟真实场景、接受用户反馈迭代,完整化项目 | #### 附录:业务思维 @@ -241,32 +241,32 @@ Easy-Vibe vous apprend a transformer cela en un vrai produit. | 章节 | 关键内容 | | :--------------------------------------------------------------------------------------------------------- | :--------------------------------------------------------------------------- | -| [从Lovart出发,搭建自己的素材生产Agent](https://datawhalechina.github.io/easy-vibe/zh-cn/stage-2/frontend/2.0-lovart-assets/) | 从零开始,利用Nanobanana和Lovart批量生成高质量的设计素材,并动手构建一个能意图识别的绘图Agent | -| [Figma 与 MasterGo 入门](https://datawhalechina.github.io/easy-vibe/zh-cn/stage-2/frontend/2.1-figma-mastergo/) | 用设计工具梳理信息架构和页面结构,为前端实现打基础 | -| [构建第一个现代应用程序-UI 设计](https://datawhalechina.github.io/easy-vibe/zh-cn/stage-2/frontend/2.2-ui-design/) | 基于设计稿完成组件化界面,实现从设计到代码的第一条链路 | -| [参考 UI 设计规范与多产品 UI 设计](https://datawhalechina.github.io/easy-vibe/zh-cn/stage-2/frontend/2.3-multi-product-ui/) | 围绕统一主视觉扩展多产品界面,练习系统化设计能力 | -| [用 LLM 和 Skills 让界面变好看](https://datawhalechina.github.io/easy-vibe/zh-cn/stage-2/frontend/2.4-llm-skills-beautiful/) | 用提示词和 Skills 插件让 AI 生成美观独特的界面 | -| [一起做霍格沃茨画像](https://datawhalechina.github.io/easy-vibe/zh-cn/stage-2/frontend/2.5-hogwarts-portraits/) | 从 0 到 1 做出接入 AI 能力的前端应用,串联设计与开发 | -| [从设计原型到项目代码](https://datawhalechina.github.io/easy-vibe/zh-cn/stage-2/frontend/2.6-design-to-code/) | 三种路径将设计工具中的原型转化为前端代码 | -| [使用现代组件库更新你的界面](https://datawhalechina.github.io/easy-vibe/zh-cn/stage-2/frontend/2.7-modern-component-library/) | 用组件库快速构建专业级界面,统一风格、提升开发效率 | +| [从Lovart出发,搭建自己的素材生产Agent](https://datawhalechina.github.io/easy-vibe/zh-cn/stage-2/frontend/lovart-assets/) | 从零开始,利用Nanobanana和Lovart批量生成高质量的设计素材,并动手构建一个能意图识别的绘图Agent | +| [Figma 与 MasterGo 入门](https://datawhalechina.github.io/easy-vibe/zh-cn/stage-2/frontend/figma-mastergo/) | 用设计工具梳理信息架构和页面结构,为前端实现打基础 | +| [构建第一个现代应用程序-UI 设计](https://datawhalechina.github.io/easy-vibe/zh-cn/stage-2/frontend/ui-design/) | 基于设计稿完成组件化界面,实现从设计到代码的第一条链路 | +| [参考 UI 设计规范与多产品 UI 设计](https://datawhalechina.github.io/easy-vibe/zh-cn/stage-2/frontend/multi-product-ui/) | 围绕统一主视觉扩展多产品界面,练习系统化设计能力 | +| [用 LLM 和 Skills 让界面变好看](https://datawhalechina.github.io/easy-vibe/zh-cn/stage-2/frontend/llm-skills-beautiful/) | 用提示词和 Skills 插件让 AI 生成美观独特的界面 | +| [一起做霍格沃茨画像](https://datawhalechina.github.io/easy-vibe/zh-cn/stage-2/frontend/hogwarts-portraits/) | 从 0 到 1 做出接入 AI 能力的前端应用,串联设计与开发 | +| [从设计原型到项目代码](https://datawhalechina.github.io/easy-vibe/zh-cn/stage-2/frontend/design-to-code/) | 三种路径将设计工具中的原型转化为前端代码 | +| [使用现代组件库更新你的界面](https://datawhalechina.github.io/easy-vibe/zh-cn/stage-2/frontend/modern-component-library/) | 用组件库快速构建专业级界面,统一风格、提升开发效率 | #### 后端开发部分 | 章节 | 关键内容 | | :------------------------------------------------------------------------------------------------- | :---------------------------------------------------------- | -| [从数据库到 Supabase](https://datawhalechina.github.io/easy-vibe/zh-cn/stage-2/backend/2.2-database-supabase/) | 在 Supabase 上落地数据库和 API,打通数据模型与前端页面 | -| [大模型辅助编写接口代码与接口文档](https://datawhalechina.github.io/easy-vibe/zh-cn/stage-2/backend/2.3-ai-interface-code/) | 用大模型协助生成接口与数据库文档及代码,实现可读可测的后端 | -| [Git 和 GitHub 工作流](https://datawhalechina.github.io/easy-vibe/zh-cn/stage-2/backend/2.4-git-workflow/) | 在 Git 工作流中管理代码,进行版本控制和协作 | -| [如何部署 Web 应用](https://datawhalechina.github.io/easy-vibe/zh-cn/stage-2/backend/2.5-zeabur-deployment/) | 使用 CloudBase、Vercel、Zeabur 等平台部署应用上线 | -| [CLI AI 编程工具](https://datawhalechina.github.io/easy-vibe/zh-cn/stage-2/backend/2.6-modern-cli/) | 使用 CLI 类 AI 编程工具加速开发与调试,形成个人工程化工作流 | -| [如何集成 Stripe 等收费系统](https://datawhalechina.github.io/easy-vibe/zh-cn/stage-2/backend/2.7-stripe-payment/) | 接入支付系统,完成收费链路与基础结算流程 | -| [大作业:构建第一个现代应用程序-全栈应用](https://datawhalechina.github.io/easy-vibe/zh-cn/stage-2/assignments/2.1-fullstack-app/) | 综合前端、后端与支付模块,完成可上线的全栈 Web 应用 | +| [从数据库到 Supabase](https://datawhalechina.github.io/easy-vibe/zh-cn/stage-2/backend/database-supabase/) | 在 Supabase 上落地数据库和 API,打通数据模型与前端页面 | +| [大模型辅助编写接口代码与接口文档](https://datawhalechina.github.io/easy-vibe/zh-cn/stage-2/backend/ai-interface-code/) | 用大模型协助生成接口与数据库文档及代码,实现可读可测的后端 | +| [Git 和 GitHub 工作流](https://datawhalechina.github.io/easy-vibe/zh-cn/stage-2/backend/git-workflow/) | 在 Git 工作流中管理代码,进行版本控制和协作 | +| [如何部署 Web 应用](https://datawhalechina.github.io/easy-vibe/zh-cn/stage-2/backend/zeabur-deployment/) | 使用 CloudBase、Vercel、Zeabur 等平台部署应用上线 | +| [CLI AI 编程工具](https://datawhalechina.github.io/easy-vibe/zh-cn/stage-2/backend/modern-cli/) | 使用 CLI 类 AI 编程工具加速开发与调试,形成个人工程化工作流 | +| [如何集成 Stripe 等收费系统](https://datawhalechina.github.io/easy-vibe/zh-cn/stage-2/backend/stripe-payment/) | 接入支付系统,完成收费链路与基础结算流程 | +| [大作业:构建第一个现代应用程序-全栈应用](https://datawhalechina.github.io/easy-vibe/zh-cn/stage-2/assignments/fullstack-app/) | 综合前端、后端与支付模块,完成可上线的全栈 Web 应用 | #### AI 能力附录 | 章节 | 关键内容 | | :------------------------------------------------------------------------------------------------------- | :------------------------------------------------------------- | -| [Dify 入门与知识库集成](https://datawhalechina.github.io/easy-vibe/zh-cn/stage-2/ai-capabilities/2.1-dify-knowledge-base/) | 用 Dify Workflow 与基础 RAG 搭建工具类产品,为后续应用升级打样 | +| [Dify 入门与知识库集成](https://datawhalechina.github.io/easy-vibe/zh-cn/stage-2/ai-capabilities/dify-knowledge-base/) | 用 Dify Workflow 与基础 RAG 搭建工具类产品,为后续应用升级打样 | ### 三、高级开发工程师 @@ -286,24 +286,24 @@ Easy-Vibe vous apprend a transformer cela en un vrai produit. | 章节 | 关键内容 | | :------------------------------------------------------------------------------------------------------------- | :----------------------------------------------------------- | -| [如何构建微信小程序](https://datawhalechina.github.io/easy-vibe/zh-cn/stage-3/cross-platform/3.3-wechat-miniprogram/) | 了解微信小程序生态,从官方模板到上线完成一个前端小程序 | -| [如何构建微信小程序-包含后端](https://datawhalechina.github.io/easy-vibe/zh-cn/stage-3/cross-platform/3.4-wechat-miniprogram-backend/) | 在小程序中接入数据库与后端逻辑,打通完整业务闭环 | -| [如何构建安卓程序](https://datawhalechina.github.io/easy-vibe/zh-cn/stage-3/cross-platform/3.5-android-app/) | 使用 Expo 等工具,完成 Web/原生一体化的安卓应用开发 | -| [如何构建 iOS 程序](https://datawhalechina.github.io/easy-vibe/zh-cn/stage-3/cross-platform/3.6-ios-app/) | 使用 Expo 等工具,完成 Web/原生一体化的 iOS 应用开发 | -| [如何构建个人网页与学术博客](https://datawhalechina.github.io/easy-vibe/zh-cn/stage-3/personal-brand/3.7-personal-website-blog/) | 从选型、搭建到部署,构建展示个人项目与学术成果的在线主页 | -| [如何开发 PWA 本地应用](https://datawhalechina.github.io/easy-vibe/zh-cn/stage-3/cross-platform/3.8-pwa-local-app/) | 让网页变成"真正的 App",支持离线、推送、桌面安装 | -| [如何开发浏览器 AI 助手插件](https://datawhalechina.github.io/easy-vibe/zh-cn/stage-3/cross-platform/3.9-browser-ai-extension/) | 开发 Chrome 插件,一键总结任意网页,支持云端 API 和内置 AI | -| [如何开发 Electron 桌面程序](https://datawhalechina.github.io/easy-vibe/zh-cn/stage-3/cross-platform/3.10-electron-voice-to-text/) | 用 Electron 构建语音转文字桌面应用,支持三平台安装运行 | -| [如何快速开发并铸造 NFT](https://datawhalechina.github.io/easy-vibe/zh-cn/stage-3/cross-platform/3.11-nft-minting/) | 从零编写智能合约,部署到以太坊测试网,铸造自己的 NFT | -| [如何开发 VS Code 插件](https://datawhalechina.github.io/easy-vibe/zh-cn/stage-3/cross-platform/3.12-vscode-extension/) | 开发 AI 项目助手插件,支持模板生成、代码对话、多文件问答 | -| [如何开发工业级 Qt 桌面应用](https://datawhalechina.github.io/easy-vibe/zh-cn/stage-3/cross-platform/3.13-qt-industrial-hmi/) | 用 Qt 构建工业级水泵监控 HMI 系统,实时数据、趋势图、报警 | +| [如何构建微信小程序](https://datawhalechina.github.io/easy-vibe/zh-cn/stage-3/cross-platform/wechat-miniprogram/) | 了解微信小程序生态,从官方模板到上线完成一个前端小程序 | +| [如何构建微信小程序-包含后端](https://datawhalechina.github.io/easy-vibe/zh-cn/stage-3/cross-platform/wechat-miniprogram-backend/) | 在小程序中接入数据库与后端逻辑,打通完整业务闭环 | +| [如何构建安卓程序](https://datawhalechina.github.io/easy-vibe/zh-cn/stage-3/cross-platform/android-app/) | 使用 Expo 等工具,完成 Web/原生一体化的安卓应用开发 | +| [如何构建 iOS 程序](https://datawhalechina.github.io/easy-vibe/zh-cn/stage-3/cross-platform/ios-app/) | 使用 Expo 等工具,完成 Web/原生一体化的 iOS 应用开发 | +| [如何构建个人网页与学术博客](https://datawhalechina.github.io/easy-vibe/zh-cn/stage-3/personal-brand/personal-website-blog/) | 从选型、搭建到部署,构建展示个人项目与学术成果的在线主页 | +| [如何开发 PWA 本地应用](https://datawhalechina.github.io/easy-vibe/zh-cn/stage-3/cross-platform/pwa-local-app/) | 让网页变成"真正的 App",支持离线、推送、桌面安装 | +| [如何开发浏览器 AI 助手插件](https://datawhalechina.github.io/easy-vibe/zh-cn/stage-3/cross-platform/browser-ai-extension/) | 开发 Chrome 插件,一键总结任意网页,支持云端 API 和内置 AI | +| [如何开发 Electron 桌面程序](https://datawhalechina.github.io/easy-vibe/zh-cn/stage-3/cross-platform/electron-voice-to-text/) | 用 Electron 构建语音转文字桌面应用,支持三平台安装运行 | +| [如何快速开发并铸造 NFT](https://datawhalechina.github.io/easy-vibe/zh-cn/stage-3/cross-platform/nft-minting/) | 从零编写智能合约,部署到以太坊测试网,铸造自己的 NFT | +| [如何开发 VS Code 插件](https://datawhalechina.github.io/easy-vibe/zh-cn/stage-3/cross-platform/vscode-extension/) | 开发 AI 项目助手插件,支持模板生成、代码对话、多文件问答 | +| [如何开发工业级 Qt 桌面应用](https://datawhalechina.github.io/easy-vibe/zh-cn/stage-3/cross-platform/qt-industrial-hmi/) | 用 Qt 构建工业级水泵监控 HMI 系统,实时数据、趋势图、报警 | #### AI 能力附录 | 章节 | 关键内容 | | :---------------------------------------------------------------------------------------------------------------------------------------- | :------------------------------------------------------ | -| [什么是 RAG 以及它如何工作](https://datawhalechina.github.io/easy-vibe/zh-cn/stage-3/ai-advanced/3.a1-rag-introduction/) | 系统理解 RAG 原理与常见架构,为复杂应用提供知识检索基础 | -| [中高级 RAG 与工作流编排:以 LangGraph 为例](https://datawhalechina.github.io/easy-vibe/zh-cn/stage-3/ai-advanced/3.a2-langgraph-advanced-rag/) | 使用 LangGraph 等工具设计多步工作流与中高级 RAG 系统 | +| [什么是 RAG 以及它如何工作](https://datawhalechina.github.io/easy-vibe/zh-cn/stage-3/ai-advanced/rag-introduction/) | 系统理解 RAG 原理与常见架构,为复杂应用提供知识检索基础 | +| [中高级 RAG 与工作流编排:以 LangGraph 为例](https://datawhalechina.github.io/easy-vibe/zh-cn/stage-3/ai-advanced/langgraph-advanced-rag/) | 使用 LangGraph 等工具设计多步工作流与中高级 RAG 系统 | ### 📚 附录知识库 diff --git a/docs-readme/ja-JP/README.md b/docs-readme/ja-JP/README.md index ed006aa..f73c402 100644 --- a/docs-readme/ja-JP/README.md +++ b/docs-readme/ja-JP/README.md @@ -129,7 +129,7 @@ Easy-Vibe は、それを本物のプロダクトにする方法を教えます ## 🔥 News - **[2026-03-29]** ✨ **ユーザーストーリー特集を公開し、実話ベースの4本に更新**:ホームにインタラクティブなストーリーカルーセルと専用ページを追加し、仮の内容を農村の小学校教師、大学生、高校の情報技術教師、トラック運転手による 4 本の実話に差し替えました。[👉 查看故事](https://datawhalechina.github.io/easy-vibe/zh-cn/vibe-stories/story-1.html) -- **[2026-03-26]** 🚀 **ステージ2実践コンテンツの集中更新**:SaaS キャップストーンプロジェクト「[最初の SaaS フルスタックアプリ——コピー生成サイト](https://datawhalechina.github.io/easy-vibe/zh-cn/stage-2/assignments/2.1-fullstack-app/)」を完成し、「[Stripe などの決済システムの統合方法](https://datawhalechina.github.io/easy-vibe/zh-cn/stage-2/backend/2.7-stripe-payment/)」セクションを大幅に拡充しました。 +- **[2026-03-26]** 🚀 **ステージ2実践コンテンツの集中更新**:SaaS キャップストーンプロジェクト「[最初の SaaS フルスタックアプリ——コピー生成サイト](https://datawhalechina.github.io/easy-vibe/zh-cn/stage-2/assignments/fullstack-app/)」を完成し、「[Stripe などの決済システムの統合方法](https://datawhalechina.github.io/easy-vibe/zh-cn/stage-2/backend/stripe-payment/)」セクションを大幅に拡充しました。 - **[2026-03-25]** 📚 **新規附录「ユーザー研究と要件検証」**:4 つの記事——アイデアの探し方、ダブルダイヤモンドモデル、Jobs to Be Done、The Mom Test ユーザーインタビュー法を含み、初心者が製品アイデアを発見し検証するのを支援します。[👉 附录を読む](https://datawhalechina.github.io/easy-vibe/en/appendix/) - **[2026-03-25]** 📚 **英文ドキュメント全面更新**:ステージ2(フルスタック開発)とステージ3(高度開発)が完全に英語で利用可能になりました。[👉 学習を始める](https://datawhalechina.github.io/easy-vibe/en/stage-2/) - **[2026-03-02]** 🦞 **OpenClaw & AI Agent フレンドリーサポート**:`llms.txt` AI ナビゲーションファイルを追加し、OpenClaw、Claude、Cursor、Trae などの AI Agent がリポジトリ構造を迅速に理解し、チュートリアルコンテンツを正確に見つけられるようにしました。 @@ -164,14 +164,14 @@ Easy-Vibe は、それを本物のプロダクトにする方法を教えます **学什么**:AI 编程初体验、贪吃蛇小游戏 **你会得到**:5 分钟做出第一个 AI 应用 -[开始体验](https://datawhalechina.github.io/easy-vibe/zh-cn/stage-0/) +[开始体验](https://datawhalechina.github.io/easy-vibe/zh-cn/stage-1/) ### 💡 我有个想法要实现 **适合人群**:零基础/产品经理/创业者 **学什么**:AI IDE 工具、需求拆解、页面设计、功能规划、提示词写法、原型迭代 **你会得到**:一个可演示的产品原型 -[开始学习](https://datawhalechina.github.io/easy-vibe/zh-cn/stage-0/) +[开始学习](https://datawhalechina.github.io/easy-vibe/zh-cn/stage-1/) ### 🚀 我想系统学习 **适合人群**:开发者/进阶学习者 @@ -196,7 +196,7 @@ Easy-Vibe は、それを本物のプロダクトにする方法を教えます ## 学习建议 -- 零基础、产品经理、创业者:从 [第一阶段](https://datawhalechina.github.io/easy-vibe/zh-cn/stage-0/) 开始 +- 零基础、产品经理、创业者:从 [第一阶段](https://datawhalechina.github.io/easy-vibe/zh-cn/stage-1/) 开始 - 有开发经验:从 [第二阶段](https://datawhalechina.github.io/easy-vibe/zh-cn/stage-2/) 开始 - 想直接做复杂项目:进入 [第三阶段](https://datawhalechina.github.io/easy-vibe/zh-cn/stage-3/) - 想学 AI Agent:看 [Hello Claw](https://github.com/datawhalechina/hello-claw) @@ -211,13 +211,13 @@ Easy-Vibe は、それを本物のプロダクトにする方法を教えます | 章节 | 关键内容 | | :----------------------------------------------------------------------------------- | :------------------------------------------------ | -| [学习地图](https://datawhalechina.github.io/easy-vibe/zh-cn/stage-0/0.1-learning-map/) | 整体学习路径导览 | -| [AI 时代,会说话就会编程](https://datawhalechina.github.io/easy-vibe/zh-cn/stage-0/0.2-ai-capabilities-through-games/) | 通过贪吃蛇等案例初步感受 AI 编程的能力 | -| [寻找好想法](https://datawhalechina.github.io/easy-vibe/zh-cn/stage-1/1.0-finding-great-idea/) | 学会寻找和验证产品想法,找到值得做的项目 | -| [认识 AI IDE 工具](https://datawhalechina.github.io/easy-vibe/zh-cn/stage-1/1.1-introduction-to-ai-ide/) | 学会使用 IDE,在本地制作小游戏 | -| [动手做出原型](https://datawhalechina.github.io/easy-vibe/zh-cn/stage-1/1.2-building-prototype/) | 从需求分析、AI 生成单页面,再到生成多页面产品原型 | -| [给原型加上 AI 能力](https://datawhalechina.github.io/easy-vibe/zh-cn/stage-1/1.3-integrating-ai-capabilities/) | 学会接入常见 AI 能力(文本、图片、视频) | -| [完整项目实战](https://datawhalechina.github.io/easy-vibe/zh-cn/stage-1/1.4-complete-project-practice/) | 模拟真实场景、接受用户反馈迭代,完整化项目 | +| [学习地图](https://datawhalechina.github.io/easy-vibe/zh-cn/stage-1/learning-map/) | 整体学习路径导览 | +| [AI 时代,会说话就会编程](https://datawhalechina.github.io/easy-vibe/zh-cn/stage-1/ai-capabilities-through-games/) | 通过贪吃蛇等案例初步感受 AI 编程的能力 | +| [寻找好想法](https://datawhalechina.github.io/easy-vibe/zh-cn/stage-1/finding-great-idea/) | 学会寻找和验证产品想法,找到值得做的项目 | +| [认识 AI IDE 工具](https://datawhalechina.github.io/easy-vibe/zh-cn/stage-1/introduction-to-ai-ide/) | 学会使用 IDE,在本地制作小游戏 | +| [动手做出原型](https://datawhalechina.github.io/easy-vibe/zh-cn/stage-1/building-prototype/) | 从需求分析、AI 生成单页面,再到生成多页面产品原型 | +| [给原型加上 AI 能力](https://datawhalechina.github.io/easy-vibe/zh-cn/stage-1/integrating-ai-capabilities/) | 学会接入常见 AI 能力(文本、图片、视频) | +| [完整项目实战](https://datawhalechina.github.io/easy-vibe/zh-cn/stage-1/complete-project-practice/) | 模拟真实场景、接受用户反馈迭代,完整化项目 | #### 附录:业务思维 @@ -241,32 +241,32 @@ Easy-Vibe は、それを本物のプロダクトにする方法を教えます | 章节 | 关键内容 | | :--------------------------------------------------------------------------------------------------------- | :--------------------------------------------------------------------------- | -| [从Lovart出发,搭建自己的素材生产Agent](https://datawhalechina.github.io/easy-vibe/zh-cn/stage-2/frontend/2.0-lovart-assets/) | 从零开始,利用Nanobanana和Lovart批量生成高质量的设计素材,并动手构建一个能意图识别的绘图Agent | -| [Figma 与 MasterGo 入门](https://datawhalechina.github.io/easy-vibe/zh-cn/stage-2/frontend/2.1-figma-mastergo/) | 用设计工具梳理信息架构和页面结构,为前端实现打基础 | -| [构建第一个现代应用程序-UI 设计](https://datawhalechina.github.io/easy-vibe/zh-cn/stage-2/frontend/2.2-ui-design/) | 基于设计稿完成组件化界面,实现从设计到代码的第一条链路 | -| [参考 UI 设计规范与多产品 UI 设计](https://datawhalechina.github.io/easy-vibe/zh-cn/stage-2/frontend/2.3-multi-product-ui/) | 围绕统一主视觉扩展多产品界面,练习系统化设计能力 | -| [用 LLM 和 Skills 让界面变好看](https://datawhalechina.github.io/easy-vibe/zh-cn/stage-2/frontend/2.4-llm-skills-beautiful/) | 用提示词和 Skills 插件让 AI 生成美观独特的界面 | -| [一起做霍格沃茨画像](https://datawhalechina.github.io/easy-vibe/zh-cn/stage-2/frontend/2.5-hogwarts-portraits/) | 从 0 到 1 做出接入 AI 能力的前端应用,串联设计与开发 | -| [从设计原型到项目代码](https://datawhalechina.github.io/easy-vibe/zh-cn/stage-2/frontend/2.6-design-to-code/) | 三种路径将设计工具中的原型转化为前端代码 | -| [使用现代组件库更新你的界面](https://datawhalechina.github.io/easy-vibe/zh-cn/stage-2/frontend/2.7-modern-component-library/) | 用组件库快速构建专业级界面,统一风格、提升开发效率 | +| [从Lovart出发,搭建自己的素材生产Agent](https://datawhalechina.github.io/easy-vibe/zh-cn/stage-2/frontend/lovart-assets/) | 从零开始,利用Nanobanana和Lovart批量生成高质量的设计素材,并动手构建一个能意图识别的绘图Agent | +| [Figma 与 MasterGo 入门](https://datawhalechina.github.io/easy-vibe/zh-cn/stage-2/frontend/figma-mastergo/) | 用设计工具梳理信息架构和页面结构,为前端实现打基础 | +| [构建第一个现代应用程序-UI 设计](https://datawhalechina.github.io/easy-vibe/zh-cn/stage-2/frontend/ui-design/) | 基于设计稿完成组件化界面,实现从设计到代码的第一条链路 | +| [参考 UI 设计规范与多产品 UI 设计](https://datawhalechina.github.io/easy-vibe/zh-cn/stage-2/frontend/multi-product-ui/) | 围绕统一主视觉扩展多产品界面,练习系统化设计能力 | +| [用 LLM 和 Skills 让界面变好看](https://datawhalechina.github.io/easy-vibe/zh-cn/stage-2/frontend/llm-skills-beautiful/) | 用提示词和 Skills 插件让 AI 生成美观独特的界面 | +| [一起做霍格沃茨画像](https://datawhalechina.github.io/easy-vibe/zh-cn/stage-2/frontend/hogwarts-portraits/) | 从 0 到 1 做出接入 AI 能力的前端应用,串联设计与开发 | +| [从设计原型到项目代码](https://datawhalechina.github.io/easy-vibe/zh-cn/stage-2/frontend/design-to-code/) | 三种路径将设计工具中的原型转化为前端代码 | +| [使用现代组件库更新你的界面](https://datawhalechina.github.io/easy-vibe/zh-cn/stage-2/frontend/modern-component-library/) | 用组件库快速构建专业级界面,统一风格、提升开发效率 | #### 后端开发部分 | 章节 | 关键内容 | | :------------------------------------------------------------------------------------------------- | :---------------------------------------------------------- | -| [从数据库到 Supabase](https://datawhalechina.github.io/easy-vibe/zh-cn/stage-2/backend/2.2-database-supabase/) | 在 Supabase 上落地数据库和 API,打通数据模型与前端页面 | -| [大模型辅助编写接口代码与接口文档](https://datawhalechina.github.io/easy-vibe/zh-cn/stage-2/backend/2.3-ai-interface-code/) | 用大模型协助生成接口与数据库文档及代码,实现可读可测的后端 | -| [Git 和 GitHub 工作流](https://datawhalechina.github.io/easy-vibe/zh-cn/stage-2/backend/2.4-git-workflow/) | 在 Git 工作流中管理代码,进行版本控制和协作 | -| [如何部署 Web 应用](https://datawhalechina.github.io/easy-vibe/zh-cn/stage-2/backend/2.5-zeabur-deployment/) | 使用 CloudBase、Vercel、Zeabur 等平台部署应用上线 | -| [CLI AI 编程工具](https://datawhalechina.github.io/easy-vibe/zh-cn/stage-2/backend/2.6-modern-cli/) | 使用 CLI 类 AI 编程工具加速开发与调试,形成个人工程化工作流 | -| [如何集成 Stripe 等收费系统](https://datawhalechina.github.io/easy-vibe/zh-cn/stage-2/backend/2.7-stripe-payment/) | 接入支付系统,完成收费链路与基础结算流程 | -| [大作业:构建第一个现代应用程序-全栈应用](https://datawhalechina.github.io/easy-vibe/zh-cn/stage-2/assignments/2.1-fullstack-app/) | 综合前端、后端与支付模块,完成可上线的全栈 Web 应用 | +| [从数据库到 Supabase](https://datawhalechina.github.io/easy-vibe/zh-cn/stage-2/backend/database-supabase/) | 在 Supabase 上落地数据库和 API,打通数据模型与前端页面 | +| [大模型辅助编写接口代码与接口文档](https://datawhalechina.github.io/easy-vibe/zh-cn/stage-2/backend/ai-interface-code/) | 用大模型协助生成接口与数据库文档及代码,实现可读可测的后端 | +| [Git 和 GitHub 工作流](https://datawhalechina.github.io/easy-vibe/zh-cn/stage-2/backend/git-workflow/) | 在 Git 工作流中管理代码,进行版本控制和协作 | +| [如何部署 Web 应用](https://datawhalechina.github.io/easy-vibe/zh-cn/stage-2/backend/zeabur-deployment/) | 使用 CloudBase、Vercel、Zeabur 等平台部署应用上线 | +| [CLI AI 编程工具](https://datawhalechina.github.io/easy-vibe/zh-cn/stage-2/backend/modern-cli/) | 使用 CLI 类 AI 编程工具加速开发与调试,形成个人工程化工作流 | +| [如何集成 Stripe 等收费系统](https://datawhalechina.github.io/easy-vibe/zh-cn/stage-2/backend/stripe-payment/) | 接入支付系统,完成收费链路与基础结算流程 | +| [大作业:构建第一个现代应用程序-全栈应用](https://datawhalechina.github.io/easy-vibe/zh-cn/stage-2/assignments/fullstack-app/) | 综合前端、后端与支付模块,完成可上线的全栈 Web 应用 | #### AI 能力附录 | 章节 | 关键内容 | | :------------------------------------------------------------------------------------------------------- | :------------------------------------------------------------- | -| [Dify 入门与知识库集成](https://datawhalechina.github.io/easy-vibe/zh-cn/stage-2/ai-capabilities/2.1-dify-knowledge-base/) | 用 Dify Workflow 与基础 RAG 搭建工具类产品,为后续应用升级打样 | +| [Dify 入门与知识库集成](https://datawhalechina.github.io/easy-vibe/zh-cn/stage-2/ai-capabilities/dify-knowledge-base/) | 用 Dify Workflow 与基础 RAG 搭建工具类产品,为后续应用升级打样 | ### 三、高级开发工程师 @@ -286,24 +286,24 @@ Easy-Vibe は、それを本物のプロダクトにする方法を教えます | 章节 | 关键内容 | | :------------------------------------------------------------------------------------------------------------- | :----------------------------------------------------------- | -| [如何构建微信小程序](https://datawhalechina.github.io/easy-vibe/zh-cn/stage-3/cross-platform/3.3-wechat-miniprogram/) | 了解微信小程序生态,从官方模板到上线完成一个前端小程序 | -| [如何构建微信小程序-包含后端](https://datawhalechina.github.io/easy-vibe/zh-cn/stage-3/cross-platform/3.4-wechat-miniprogram-backend/) | 在小程序中接入数据库与后端逻辑,打通完整业务闭环 | -| [如何构建安卓程序](https://datawhalechina.github.io/easy-vibe/zh-cn/stage-3/cross-platform/3.5-android-app/) | 使用 Expo 等工具,完成 Web/原生一体化的安卓应用开发 | -| [如何构建 iOS 程序](https://datawhalechina.github.io/easy-vibe/zh-cn/stage-3/cross-platform/3.6-ios-app/) | 使用 Expo 等工具,完成 Web/原生一体化的 iOS 应用开发 | -| [如何构建个人网页与学术博客](https://datawhalechina.github.io/easy-vibe/zh-cn/stage-3/personal-brand/3.7-personal-website-blog/) | 从选型、搭建到部署,构建展示个人项目与学术成果的在线主页 | -| [如何开发 PWA 本地应用](https://datawhalechina.github.io/easy-vibe/zh-cn/stage-3/cross-platform/3.8-pwa-local-app/) | 让网页变成"真正的 App",支持离线、推送、桌面安装 | -| [如何开发浏览器 AI 助手插件](https://datawhalechina.github.io/easy-vibe/zh-cn/stage-3/cross-platform/3.9-browser-ai-extension/) | 开发 Chrome 插件,一键总结任意网页,支持云端 API 和内置 AI | -| [如何开发 Electron 桌面程序](https://datawhalechina.github.io/easy-vibe/zh-cn/stage-3/cross-platform/3.10-electron-voice-to-text/) | 用 Electron 构建语音转文字桌面应用,支持三平台安装运行 | -| [如何快速开发并铸造 NFT](https://datawhalechina.github.io/easy-vibe/zh-cn/stage-3/cross-platform/3.11-nft-minting/) | 从零编写智能合约,部署到以太坊测试网,铸造自己的 NFT | -| [如何开发 VS Code 插件](https://datawhalechina.github.io/easy-vibe/zh-cn/stage-3/cross-platform/3.12-vscode-extension/) | 开发 AI 项目助手插件,支持模板生成、代码对话、多文件问答 | -| [如何开发工业级 Qt 桌面应用](https://datawhalechina.github.io/easy-vibe/zh-cn/stage-3/cross-platform/3.13-qt-industrial-hmi/) | 用 Qt 构建工业级水泵监控 HMI 系统,实时数据、趋势图、报警 | +| [如何构建微信小程序](https://datawhalechina.github.io/easy-vibe/zh-cn/stage-3/cross-platform/wechat-miniprogram/) | 了解微信小程序生态,从官方模板到上线完成一个前端小程序 | +| [如何构建微信小程序-包含后端](https://datawhalechina.github.io/easy-vibe/zh-cn/stage-3/cross-platform/wechat-miniprogram-backend/) | 在小程序中接入数据库与后端逻辑,打通完整业务闭环 | +| [如何构建安卓程序](https://datawhalechina.github.io/easy-vibe/zh-cn/stage-3/cross-platform/android-app/) | 使用 Expo 等工具,完成 Web/原生一体化的安卓应用开发 | +| [如何构建 iOS 程序](https://datawhalechina.github.io/easy-vibe/zh-cn/stage-3/cross-platform/ios-app/) | 使用 Expo 等工具,完成 Web/原生一体化的 iOS 应用开发 | +| [如何构建个人网页与学术博客](https://datawhalechina.github.io/easy-vibe/zh-cn/stage-3/personal-brand/personal-website-blog/) | 从选型、搭建到部署,构建展示个人项目与学术成果的在线主页 | +| [如何开发 PWA 本地应用](https://datawhalechina.github.io/easy-vibe/zh-cn/stage-3/cross-platform/pwa-local-app/) | 让网页变成"真正的 App",支持离线、推送、桌面安装 | +| [如何开发浏览器 AI 助手插件](https://datawhalechina.github.io/easy-vibe/zh-cn/stage-3/cross-platform/browser-ai-extension/) | 开发 Chrome 插件,一键总结任意网页,支持云端 API 和内置 AI | +| [如何开发 Electron 桌面程序](https://datawhalechina.github.io/easy-vibe/zh-cn/stage-3/cross-platform/electron-voice-to-text/) | 用 Electron 构建语音转文字桌面应用,支持三平台安装运行 | +| [如何快速开发并铸造 NFT](https://datawhalechina.github.io/easy-vibe/zh-cn/stage-3/cross-platform/nft-minting/) | 从零编写智能合约,部署到以太坊测试网,铸造自己的 NFT | +| [如何开发 VS Code 插件](https://datawhalechina.github.io/easy-vibe/zh-cn/stage-3/cross-platform/vscode-extension/) | 开发 AI 项目助手插件,支持模板生成、代码对话、多文件问答 | +| [如何开发工业级 Qt 桌面应用](https://datawhalechina.github.io/easy-vibe/zh-cn/stage-3/cross-platform/qt-industrial-hmi/) | 用 Qt 构建工业级水泵监控 HMI 系统,实时数据、趋势图、报警 | #### AI 能力附录 | 章节 | 关键内容 | | :---------------------------------------------------------------------------------------------------------------------------------------- | :------------------------------------------------------ | -| [什么是 RAG 以及它如何工作](https://datawhalechina.github.io/easy-vibe/zh-cn/stage-3/ai-advanced/3.a1-rag-introduction/) | 系统理解 RAG 原理与常见架构,为复杂应用提供知识检索基础 | -| [中高级 RAG 与工作流编排:以 LangGraph 为例](https://datawhalechina.github.io/easy-vibe/zh-cn/stage-3/ai-advanced/3.a2-langgraph-advanced-rag/) | 使用 LangGraph 等工具设计多步工作流与中高级 RAG 系统 | +| [什么是 RAG 以及它如何工作](https://datawhalechina.github.io/easy-vibe/zh-cn/stage-3/ai-advanced/rag-introduction/) | 系统理解 RAG 原理与常见架构,为复杂应用提供知识检索基础 | +| [中高级 RAG 与工作流编排:以 LangGraph 为例](https://datawhalechina.github.io/easy-vibe/zh-cn/stage-3/ai-advanced/langgraph-advanced-rag/) | 使用 LangGraph 等工具设计多步工作流与中高级 RAG 系统 | ### 📚 附录知识库 diff --git a/docs-readme/ko-KR/README.md b/docs-readme/ko-KR/README.md index 8b30ea1..74a8e6f 100644 --- a/docs-readme/ko-KR/README.md +++ b/docs-readme/ko-KR/README.md @@ -129,7 +129,7 @@ Easy-Vibe는 그것을 실제 제품으로 만드는 방법을 가르칩니다. ## 🔥 News - **[2026-03-29]** ✨ **사용자 이야기 섹션 공개 및 실제 사례 4편으로 업데이트**: 홈페이지에 인터랙티브 스토리 캐러셀과 전용 스토리 페이지를 추가하고, 기존 플레이스홀더를 시골 초등학교 교사, 대학생, 고등학교 정보기술 교사, 트럭 운전사의 실제 이야기 4편으로 교체했습니다. [👉 View the stories](https://datawhalechina.github.io/easy-vibe/zh-cn/vibe-stories/story-1.html) -- **[2026-03-26]** 🚀 **단계 2 실습 콘텐츠 대규모 업데이트**: SaaS 캡스톤 프로젝트 "[첫 번째 SaaS 풀스택 앱: 카피라이팅 생성기 웹사이트](https://datawhalechina.github.io/easy-vibe/en/stage-2/assignments/2.1-fullstack-app/)" 완료 및 "[Stripe 및 결제 시스템 통합 방법](https://datawhalechina.github.io/easy-vibe/en/stage-2/backend/2.7-stripe-payment/)" 섹션 대폭 확장. +- **[2026-03-26]** 🚀 **단계 2 실습 콘텐츠 대규모 업데이트**: SaaS 캡스톤 프로젝트 "[첫 번째 SaaS 풀스택 앱: 카피라이팅 생성기 웹사이트](https://datawhalechina.github.io/easy-vibe/en/stage-2/assignments/fullstack-app/)" 완료 및 "[Stripe 및 결제 시스템 통합 방법](https://datawhalechina.github.io/easy-vibe/en/stage-2/backend/stripe-payment/)" 섹션 대폭 확장. - **[2026-03-25]** 📚 **새로운 부록: 사용자 연구 및 요구사항 검증**: 아이디어 소싱, 더블 다이아몬드 모델, Jobs to Be Done, The Mom Test를 다루는 4개의 새로운 기사를 추가하여 초보자가 제품 아이디어를 발견하고 검증하는 데 도움을 줍니다. [👉 부록 읽기](https://datawhalechina.github.io/easy-vibe/en/appendix/) - **[2026-03-25]** 📚 **영문 문서 전면 업데이트**: 단계 2(풀스택 개발)와 단계 3(고급 개발)이 이제 완전히 영어로 제공됩니다. [👉 학습 시작하기](https://datawhalechina.github.io/easy-vibe/en/stage-2/) - **[2026-03-02]** 🦞 **OpenClaw 및 AI Agent 친화적 지원**: `llms.txt`를 추가하여 OpenClaw, Claude, Cursor, Trae 및 기타 AI Agent가 저장소 구조를 빠르게 이해하고 올바른 튜토리얼 콘텐츠를 찾을 수 있도록 합니다. @@ -164,14 +164,14 @@ Easy-Vibe는 그것을 실제 제품으로 만드는 방법을 가르칩니다. **学什么**:AI 编程初体验、贪吃蛇小游戏 **你会得到**:5 分钟做出第一个 AI 应用 -[开始体验](https://datawhalechina.github.io/easy-vibe/zh-cn/stage-0/) +[开始体验](https://datawhalechina.github.io/easy-vibe/zh-cn/stage-1/) ### 💡 我有个想法要实现 **适合人群**:零基础/产品经理/创业者 **学什么**:AI IDE 工具、需求拆解、页面设计、功能规划、提示词写法、原型迭代 **你会得到**:一个可演示的产品原型 -[开始学习](https://datawhalechina.github.io/easy-vibe/zh-cn/stage-0/) +[开始学习](https://datawhalechina.github.io/easy-vibe/zh-cn/stage-1/) ### 🚀 我想系统学习 **适合人群**:开发者/进阶学习者 @@ -196,7 +196,7 @@ Easy-Vibe는 그것을 실제 제품으로 만드는 방법을 가르칩니다. ## 学习建议 -- 零基础、产品经理、创业者:从 [第一阶段](https://datawhalechina.github.io/easy-vibe/zh-cn/stage-0/) 开始 +- 零基础、产品经理、创业者:从 [第一阶段](https://datawhalechina.github.io/easy-vibe/zh-cn/stage-1/) 开始 - 有开发经验:从 [第二阶段](https://datawhalechina.github.io/easy-vibe/zh-cn/stage-2/) 开始 - 想直接做复杂项目:进入 [第三阶段](https://datawhalechina.github.io/easy-vibe/zh-cn/stage-3/) - 想学 AI Agent:看 [Hello Claw](https://github.com/datawhalechina/hello-claw) @@ -211,13 +211,13 @@ Easy-Vibe는 그것을 실제 제품으로 만드는 방법을 가르칩니다. | 章节 | 关键内容 | | :----------------------------------------------------------------------------------- | :------------------------------------------------ | -| [学习地图](https://datawhalechina.github.io/easy-vibe/zh-cn/stage-0/0.1-learning-map/) | 整体学习路径导览 | -| [AI 时代,会说话就会编程](https://datawhalechina.github.io/easy-vibe/zh-cn/stage-0/0.2-ai-capabilities-through-games/) | 通过贪吃蛇等案例初步感受 AI 编程的能力 | -| [寻找好想法](https://datawhalechina.github.io/easy-vibe/zh-cn/stage-1/1.0-finding-great-idea/) | 学会寻找和验证产品想法,找到值得做的项目 | -| [认识 AI IDE 工具](https://datawhalechina.github.io/easy-vibe/zh-cn/stage-1/1.1-introduction-to-ai-ide/) | 学会使用 IDE,在本地制作小游戏 | -| [动手做出原型](https://datawhalechina.github.io/easy-vibe/zh-cn/stage-1/1.2-building-prototype/) | 从需求分析、AI 生成单页面,再到生成多页面产品原型 | -| [给原型加上 AI 能力](https://datawhalechina.github.io/easy-vibe/zh-cn/stage-1/1.3-integrating-ai-capabilities/) | 学会接入常见 AI 能力(文本、图片、视频) | -| [完整项目实战](https://datawhalechina.github.io/easy-vibe/zh-cn/stage-1/1.4-complete-project-practice/) | 模拟真实场景、接受用户反馈迭代,完整化项目 | +| [学习地图](https://datawhalechina.github.io/easy-vibe/zh-cn/stage-1/learning-map/) | 整体学习路径导览 | +| [AI 时代,会说话就会编程](https://datawhalechina.github.io/easy-vibe/zh-cn/stage-1/ai-capabilities-through-games/) | 通过贪吃蛇等案例初步感受 AI 编程的能力 | +| [寻找好想法](https://datawhalechina.github.io/easy-vibe/zh-cn/stage-1/finding-great-idea/) | 学会寻找和验证产品想法,找到值得做的项目 | +| [认识 AI IDE 工具](https://datawhalechina.github.io/easy-vibe/zh-cn/stage-1/introduction-to-ai-ide/) | 学会使用 IDE,在本地制作小游戏 | +| [动手做出原型](https://datawhalechina.github.io/easy-vibe/zh-cn/stage-1/building-prototype/) | 从需求分析、AI 生成单页面,再到生成多页面产品原型 | +| [给原型加上 AI 能力](https://datawhalechina.github.io/easy-vibe/zh-cn/stage-1/integrating-ai-capabilities/) | 学会接入常见 AI 能力(文本、图片、视频) | +| [完整项目实战](https://datawhalechina.github.io/easy-vibe/zh-cn/stage-1/complete-project-practice/) | 模拟真实场景、接受用户反馈迭代,完整化项目 | #### 附录:业务思维 @@ -241,32 +241,32 @@ Easy-Vibe는 그것을 실제 제품으로 만드는 방법을 가르칩니다. | 章节 | 关键内容 | | :--------------------------------------------------------------------------------------------------------- | :--------------------------------------------------------------------------- | -| [从Lovart出发,搭建自己的素材生产Agent](https://datawhalechina.github.io/easy-vibe/zh-cn/stage-2/frontend/2.0-lovart-assets/) | 从零开始,利用Nanobanana和Lovart批量生成高质量的设计素材,并动手构建一个能意图识别的绘图Agent | -| [Figma 与 MasterGo 入门](https://datawhalechina.github.io/easy-vibe/zh-cn/stage-2/frontend/2.1-figma-mastergo/) | 用设计工具梳理信息架构和页面结构,为前端实现打基础 | -| [构建第一个现代应用程序-UI 设计](https://datawhalechina.github.io/easy-vibe/zh-cn/stage-2/frontend/2.2-ui-design/) | 基于设计稿完成组件化界面,实现从设计到代码的第一条链路 | -| [参考 UI 设计规范与多产品 UI 设计](https://datawhalechina.github.io/easy-vibe/zh-cn/stage-2/frontend/2.3-multi-product-ui/) | 围绕统一主视觉扩展多产品界面,练习系统化设计能力 | -| [用 LLM 和 Skills 让界面变好看](https://datawhalechina.github.io/easy-vibe/zh-cn/stage-2/frontend/2.4-llm-skills-beautiful/) | 用提示词和 Skills 插件让 AI 生成美观独特的界面 | -| [一起做霍格沃茨画像](https://datawhalechina.github.io/easy-vibe/zh-cn/stage-2/frontend/2.5-hogwarts-portraits/) | 从 0 到 1 做出接入 AI 能力的前端应用,串联设计与开发 | -| [从设计原型到项目代码](https://datawhalechina.github.io/easy-vibe/zh-cn/stage-2/frontend/2.6-design-to-code/) | 三种路径将设计工具中的原型转化为前端代码 | -| [使用现代组件库更新你的界面](https://datawhalechina.github.io/easy-vibe/zh-cn/stage-2/frontend/2.7-modern-component-library/) | 用组件库快速构建专业级界面,统一风格、提升开发效率 | +| [从Lovart出发,搭建自己的素材生产Agent](https://datawhalechina.github.io/easy-vibe/zh-cn/stage-2/frontend/lovart-assets/) | 从零开始,利用Nanobanana和Lovart批量生成高质量的设计素材,并动手构建一个能意图识别的绘图Agent | +| [Figma 与 MasterGo 入门](https://datawhalechina.github.io/easy-vibe/zh-cn/stage-2/frontend/figma-mastergo/) | 用设计工具梳理信息架构和页面结构,为前端实现打基础 | +| [构建第一个现代应用程序-UI 设计](https://datawhalechina.github.io/easy-vibe/zh-cn/stage-2/frontend/ui-design/) | 基于设计稿完成组件化界面,实现从设计到代码的第一条链路 | +| [参考 UI 设计规范与多产品 UI 设计](https://datawhalechina.github.io/easy-vibe/zh-cn/stage-2/frontend/multi-product-ui/) | 围绕统一主视觉扩展多产品界面,练习系统化设计能力 | +| [用 LLM 和 Skills 让界面变好看](https://datawhalechina.github.io/easy-vibe/zh-cn/stage-2/frontend/llm-skills-beautiful/) | 用提示词和 Skills 插件让 AI 生成美观独特的界面 | +| [一起做霍格沃茨画像](https://datawhalechina.github.io/easy-vibe/zh-cn/stage-2/frontend/hogwarts-portraits/) | 从 0 到 1 做出接入 AI 能力的前端应用,串联设计与开发 | +| [从设计原型到项目代码](https://datawhalechina.github.io/easy-vibe/zh-cn/stage-2/frontend/design-to-code/) | 三种路径将设计工具中的原型转化为前端代码 | +| [使用现代组件库更新你的界面](https://datawhalechina.github.io/easy-vibe/zh-cn/stage-2/frontend/modern-component-library/) | 用组件库快速构建专业级界面,统一风格、提升开发效率 | #### 后端开发部分 | 章节 | 关键内容 | | :------------------------------------------------------------------------------------------------- | :---------------------------------------------------------- | -| [从数据库到 Supabase](https://datawhalechina.github.io/easy-vibe/zh-cn/stage-2/backend/2.2-database-supabase/) | 在 Supabase 上落地数据库和 API,打通数据模型与前端页面 | -| [大模型辅助编写接口代码与接口文档](https://datawhalechina.github.io/easy-vibe/zh-cn/stage-2/backend/2.3-ai-interface-code/) | 用大模型协助生成接口与数据库文档及代码,实现可读可测的后端 | -| [Git 和 GitHub 工作流](https://datawhalechina.github.io/easy-vibe/zh-cn/stage-2/backend/2.4-git-workflow/) | 在 Git 工作流中管理代码,进行版本控制和协作 | -| [如何部署 Web 应用](https://datawhalechina.github.io/easy-vibe/zh-cn/stage-2/backend/2.5-zeabur-deployment/) | 使用 CloudBase、Vercel、Zeabur 等平台部署应用上线 | -| [CLI AI 编程工具](https://datawhalechina.github.io/easy-vibe/zh-cn/stage-2/backend/2.6-modern-cli/) | 使用 CLI 类 AI 编程工具加速开发与调试,形成个人工程化工作流 | -| [如何集成 Stripe 等收费系统](https://datawhalechina.github.io/easy-vibe/zh-cn/stage-2/backend/2.7-stripe-payment/) | 接入支付系统,完成收费链路与基础结算流程 | -| [大作业:构建第一个现代应用程序-全栈应用](https://datawhalechina.github.io/easy-vibe/zh-cn/stage-2/assignments/2.1-fullstack-app/) | 综合前端、后端与支付模块,完成可上线的全栈 Web 应用 | +| [从数据库到 Supabase](https://datawhalechina.github.io/easy-vibe/zh-cn/stage-2/backend/database-supabase/) | 在 Supabase 上落地数据库和 API,打通数据模型与前端页面 | +| [大模型辅助编写接口代码与接口文档](https://datawhalechina.github.io/easy-vibe/zh-cn/stage-2/backend/ai-interface-code/) | 用大模型协助生成接口与数据库文档及代码,实现可读可测的后端 | +| [Git 和 GitHub 工作流](https://datawhalechina.github.io/easy-vibe/zh-cn/stage-2/backend/git-workflow/) | 在 Git 工作流中管理代码,进行版本控制和协作 | +| [如何部署 Web 应用](https://datawhalechina.github.io/easy-vibe/zh-cn/stage-2/backend/zeabur-deployment/) | 使用 CloudBase、Vercel、Zeabur 等平台部署应用上线 | +| [CLI AI 编程工具](https://datawhalechina.github.io/easy-vibe/zh-cn/stage-2/backend/modern-cli/) | 使用 CLI 类 AI 编程工具加速开发与调试,形成个人工程化工作流 | +| [如何集成 Stripe 等收费系统](https://datawhalechina.github.io/easy-vibe/zh-cn/stage-2/backend/stripe-payment/) | 接入支付系统,完成收费链路与基础结算流程 | +| [大作业:构建第一个现代应用程序-全栈应用](https://datawhalechina.github.io/easy-vibe/zh-cn/stage-2/assignments/fullstack-app/) | 综合前端、后端与支付模块,完成可上线的全栈 Web 应用 | #### AI 能力附录 | 章节 | 关键内容 | | :------------------------------------------------------------------------------------------------------- | :------------------------------------------------------------- | -| [Dify 入门与知识库集成](https://datawhalechina.github.io/easy-vibe/zh-cn/stage-2/ai-capabilities/2.1-dify-knowledge-base/) | 用 Dify Workflow 与基础 RAG 搭建工具类产品,为后续应用升级打样 | +| [Dify 入门与知识库集成](https://datawhalechina.github.io/easy-vibe/zh-cn/stage-2/ai-capabilities/dify-knowledge-base/) | 用 Dify Workflow 与基础 RAG 搭建工具类产品,为后续应用升级打样 | ### 三、高级开发工程师 @@ -286,24 +286,24 @@ Easy-Vibe는 그것을 실제 제품으로 만드는 방법을 가르칩니다. | 章节 | 关键内容 | | :------------------------------------------------------------------------------------------------------------- | :----------------------------------------------------------- | -| [如何构建微信小程序](https://datawhalechina.github.io/easy-vibe/zh-cn/stage-3/cross-platform/3.3-wechat-miniprogram/) | 了解微信小程序生态,从官方模板到上线完成一个前端小程序 | -| [如何构建微信小程序-包含后端](https://datawhalechina.github.io/easy-vibe/zh-cn/stage-3/cross-platform/3.4-wechat-miniprogram-backend/) | 在小程序中接入数据库与后端逻辑,打通完整业务闭环 | -| [如何构建安卓程序](https://datawhalechina.github.io/easy-vibe/zh-cn/stage-3/cross-platform/3.5-android-app/) | 使用 Expo 等工具,完成 Web/原生一体化的安卓应用开发 | -| [如何构建 iOS 程序](https://datawhalechina.github.io/easy-vibe/zh-cn/stage-3/cross-platform/3.6-ios-app/) | 使用 Expo 等工具,完成 Web/原生一体化的 iOS 应用开发 | -| [如何构建个人网页与学术博客](https://datawhalechina.github.io/easy-vibe/zh-cn/stage-3/personal-brand/3.7-personal-website-blog/) | 从选型、搭建到部署,构建展示个人项目与学术成果的在线主页 | -| [如何开发 PWA 本地应用](https://datawhalechina.github.io/easy-vibe/zh-cn/stage-3/cross-platform/3.8-pwa-local-app/) | 让网页变成"真正的 App",支持离线、推送、桌面安装 | -| [如何开发浏览器 AI 助手插件](https://datawhalechina.github.io/easy-vibe/zh-cn/stage-3/cross-platform/3.9-browser-ai-extension/) | 开发 Chrome 插件,一键总结任意网页,支持云端 API 和内置 AI | -| [如何开发 Electron 桌面程序](https://datawhalechina.github.io/easy-vibe/zh-cn/stage-3/cross-platform/3.10-electron-voice-to-text/) | 用 Electron 构建语音转文字桌面应用,支持三平台安装运行 | -| [如何快速开发并铸造 NFT](https://datawhalechina.github.io/easy-vibe/zh-cn/stage-3/cross-platform/3.11-nft-minting/) | 从零编写智能合约,部署到以太坊测试网,铸造自己的 NFT | -| [如何开发 VS Code 插件](https://datawhalechina.github.io/easy-vibe/zh-cn/stage-3/cross-platform/3.12-vscode-extension/) | 开发 AI 项目助手插件,支持模板生成、代码对话、多文件问答 | -| [如何开发工业级 Qt 桌面应用](https://datawhalechina.github.io/easy-vibe/zh-cn/stage-3/cross-platform/3.13-qt-industrial-hmi/) | 用 Qt 构建工业级水泵监控 HMI 系统,实时数据、趋势图、报警 | +| [如何构建微信小程序](https://datawhalechina.github.io/easy-vibe/zh-cn/stage-3/cross-platform/wechat-miniprogram/) | 了解微信小程序生态,从官方模板到上线完成一个前端小程序 | +| [如何构建微信小程序-包含后端](https://datawhalechina.github.io/easy-vibe/zh-cn/stage-3/cross-platform/wechat-miniprogram-backend/) | 在小程序中接入数据库与后端逻辑,打通完整业务闭环 | +| [如何构建安卓程序](https://datawhalechina.github.io/easy-vibe/zh-cn/stage-3/cross-platform/android-app/) | 使用 Expo 等工具,完成 Web/原生一体化的安卓应用开发 | +| [如何构建 iOS 程序](https://datawhalechina.github.io/easy-vibe/zh-cn/stage-3/cross-platform/ios-app/) | 使用 Expo 等工具,完成 Web/原生一体化的 iOS 应用开发 | +| [如何构建个人网页与学术博客](https://datawhalechina.github.io/easy-vibe/zh-cn/stage-3/personal-brand/personal-website-blog/) | 从选型、搭建到部署,构建展示个人项目与学术成果的在线主页 | +| [如何开发 PWA 本地应用](https://datawhalechina.github.io/easy-vibe/zh-cn/stage-3/cross-platform/pwa-local-app/) | 让网页变成"真正的 App",支持离线、推送、桌面安装 | +| [如何开发浏览器 AI 助手插件](https://datawhalechina.github.io/easy-vibe/zh-cn/stage-3/cross-platform/browser-ai-extension/) | 开发 Chrome 插件,一键总结任意网页,支持云端 API 和内置 AI | +| [如何开发 Electron 桌面程序](https://datawhalechina.github.io/easy-vibe/zh-cn/stage-3/cross-platform/electron-voice-to-text/) | 用 Electron 构建语音转文字桌面应用,支持三平台安装运行 | +| [如何快速开发并铸造 NFT](https://datawhalechina.github.io/easy-vibe/zh-cn/stage-3/cross-platform/nft-minting/) | 从零编写智能合约,部署到以太坊测试网,铸造自己的 NFT | +| [如何开发 VS Code 插件](https://datawhalechina.github.io/easy-vibe/zh-cn/stage-3/cross-platform/vscode-extension/) | 开发 AI 项目助手插件,支持模板生成、代码对话、多文件问答 | +| [如何开发工业级 Qt 桌面应用](https://datawhalechina.github.io/easy-vibe/zh-cn/stage-3/cross-platform/qt-industrial-hmi/) | 用 Qt 构建工业级水泵监控 HMI 系统,实时数据、趋势图、报警 | #### AI 能力附录 | 章节 | 关键内容 | | :---------------------------------------------------------------------------------------------------------------------------------------- | :------------------------------------------------------ | -| [什么是 RAG 以及它如何工作](https://datawhalechina.github.io/easy-vibe/zh-cn/stage-3/ai-advanced/3.a1-rag-introduction/) | 系统理解 RAG 原理与常见架构,为复杂应用提供知识检索基础 | -| [中高级 RAG 与工作流编排:以 LangGraph 为例](https://datawhalechina.github.io/easy-vibe/zh-cn/stage-3/ai-advanced/3.a2-langgraph-advanced-rag/) | 使用 LangGraph 等工具设计多步工作流与中高级 RAG 系统 | +| [什么是 RAG 以及它如何工作](https://datawhalechina.github.io/easy-vibe/zh-cn/stage-3/ai-advanced/rag-introduction/) | 系统理解 RAG 原理与常见架构,为复杂应用提供知识检索基础 | +| [中高级 RAG 与工作流编排:以 LangGraph 为例](https://datawhalechina.github.io/easy-vibe/zh-cn/stage-3/ai-advanced/langgraph-advanced-rag/) | 使用 LangGraph 等工具设计多步工作流与中高级 RAG 系统 | ### 📚 附录知识库 diff --git a/docs-readme/vi-VN/README.md b/docs-readme/vi-VN/README.md index 10352ec..a7f0473 100644 --- a/docs-readme/vi-VN/README.md +++ b/docs-readme/vi-VN/README.md @@ -129,7 +129,7 @@ Easy-Vibe giúp bạn biến điều đó thành một sản phẩm thật. ## 🔥 News - **[2026-03-29]** ✨ **Ra mắt mục câu chuyện ngưởi dùng và cập nhật bằng 4 trường hợp có thật**: Chúng tôi thêm carousel tương tác và các trang câu chuyện riêng trên trang chủ, rồi thay nội dung tạm bằng bốn câu chuyện thật từ một giáo viên tiểu học vùng quê, một sinh viên đại học, một giáo viên CNTT trung học và một tài xế xe tải đã dùng AI để làm ra sản phẩm thật. [👉 View the stories](https://datawhalechina.github.io/easy-vibe/zh-cn/vibe-stories/story-1.html) -- **[2026-03-26]** 🚀 **Cập nhật thực hành Giai đoạn 2 lớn**: Dự án tốt nghiệp SaaS "[Ứng dụng full-stack SaaS đầu tiên: Trang web tạo nội dung](https://datawhalechina.github.io/easy-vibe/en/stage-2/assignments/2.1-fullstack-app/)" đã hoàn thành và phần "[Cách tích hợp Stripe và hệ thống thanh toán](https://datawhalechina.github.io/easy-vibe/en/stage-2/backend/2.7-stripe-payment/)" được mở rộng đáng kể. +- **[2026-03-26]** 🚀 **Cập nhật thực hành Giai đoạn 2 lớn**: Dự án tốt nghiệp SaaS "[Ứng dụng full-stack SaaS đầu tiên: Trang web tạo nội dung](https://datawhalechina.github.io/easy-vibe/en/stage-2/assignments/fullstack-app/)" đã hoàn thành và phần "[Cách tích hợp Stripe và hệ thống thanh toán](https://datawhalechina.github.io/easy-vibe/en/stage-2/backend/stripe-payment/)" được mở rộng đáng kể. - **[2026-03-25]** 📚 **Phụ lục mới: Nghiên cứu ngưởi dùng và xác thực yêu cầu**: Thêm bốn bài viết mới về tìm kiếm ý tưởng, mô hình Double Diamond, Jobs to Be Done và The Mom Test để giúp ngưởi mới bắt đầu khám phá và xác thực ý tưởng sản phẩm. [👉 Đọc phụ lục](https://datawhalechina.github.io/easy-vibe/en/appendix/) - **[2026-03-25]** 📚 **Tài liệu tiếng Anh được cập nhật đầy đủ**: Giai đoạn 2 (Phát triển full-stack) và Giai đoạn 3 (Phát triển nâng cao) hiện đã có đầy đủ bằng tiếng Anh. [👉 Bắt đầu học](https://datawhalechina.github.io/easy-vibe/en/stage-2/) - **[2026-03-02]** 🦞 **Hỗ trợ thân thiện cho OpenClaw và AI Agent**: Thêm `llms.txt` để OpenClaw, Claude, Cursor, Trae và các AI Agent khác có thể nhanh chóng hiểu cấu trúc kho lưu trữ và tìm đúng nội dung hướng dẫn. @@ -164,14 +164,14 @@ Easy-Vibe giúp bạn biến điều đó thành một sản phẩm thật. **学什么**:AI 编程初体验、贪吃蛇小游戏 **你会得到**:5 分钟做出第一个 AI 应用 -[开始体验](https://datawhalechina.github.io/easy-vibe/zh-cn/stage-0/) +[开始体验](https://datawhalechina.github.io/easy-vibe/zh-cn/stage-1/) ### 💡 我有个想法要实现 **适合人群**:零基础/产品经理/创业者 **学什么**:AI IDE 工具、需求拆解、页面设计、功能规划、提示词写法、原型迭代 **你会得到**:一个可演示的产品原型 -[开始学习](https://datawhalechina.github.io/easy-vibe/zh-cn/stage-0/) +[开始学习](https://datawhalechina.github.io/easy-vibe/zh-cn/stage-1/) ### 🚀 我想系统学习 **适合人群**:开发者/进阶学习者 @@ -196,7 +196,7 @@ Easy-Vibe giúp bạn biến điều đó thành một sản phẩm thật. ## 学习建议 -- 零基础、产品经理、创业者:从 [第一阶段](https://datawhalechina.github.io/easy-vibe/zh-cn/stage-0/) 开始 +- 零基础、产品经理、创业者:从 [第一阶段](https://datawhalechina.github.io/easy-vibe/zh-cn/stage-1/) 开始 - 有开发经验:从 [第二阶段](https://datawhalechina.github.io/easy-vibe/zh-cn/stage-2/) 开始 - 想直接做复杂项目:进入 [第三阶段](https://datawhalechina.github.io/easy-vibe/zh-cn/stage-3/) - 想学 AI Agent:看 [Hello Claw](https://github.com/datawhalechina/hello-claw) @@ -211,13 +211,13 @@ Easy-Vibe giúp bạn biến điều đó thành một sản phẩm thật. | 章节 | 关键内容 | | :----------------------------------------------------------------------------------- | :------------------------------------------------ | -| [学习地图](https://datawhalechina.github.io/easy-vibe/zh-cn/stage-0/0.1-learning-map/) | 整体学习路径导览 | -| [AI 时代,会说话就会编程](https://datawhalechina.github.io/easy-vibe/zh-cn/stage-0/0.2-ai-capabilities-through-games/) | 通过贪吃蛇等案例初步感受 AI 编程的能力 | -| [寻找好想法](https://datawhalechina.github.io/easy-vibe/zh-cn/stage-1/1.0-finding-great-idea/) | 学会寻找和验证产品想法,找到值得做的项目 | -| [认识 AI IDE 工具](https://datawhalechina.github.io/easy-vibe/zh-cn/stage-1/1.1-introduction-to-ai-ide/) | 学会使用 IDE,在本地制作小游戏 | -| [动手做出原型](https://datawhalechina.github.io/easy-vibe/zh-cn/stage-1/1.2-building-prototype/) | 从需求分析、AI 生成单页面,再到生成多页面产品原型 | -| [给原型加上 AI 能力](https://datawhalechina.github.io/easy-vibe/zh-cn/stage-1/1.3-integrating-ai-capabilities/) | 学会接入常见 AI 能力(文本、图片、视频) | -| [完整项目实战](https://datawhalechina.github.io/easy-vibe/zh-cn/stage-1/1.4-complete-project-practice/) | 模拟真实场景、接受用户反馈迭代,完整化项目 | +| [学习地图](https://datawhalechina.github.io/easy-vibe/zh-cn/stage-1/learning-map/) | 整体学习路径导览 | +| [AI 时代,会说话就会编程](https://datawhalechina.github.io/easy-vibe/zh-cn/stage-1/ai-capabilities-through-games/) | 通过贪吃蛇等案例初步感受 AI 编程的能力 | +| [寻找好想法](https://datawhalechina.github.io/easy-vibe/zh-cn/stage-1/finding-great-idea/) | 学会寻找和验证产品想法,找到值得做的项目 | +| [认识 AI IDE 工具](https://datawhalechina.github.io/easy-vibe/zh-cn/stage-1/introduction-to-ai-ide/) | 学会使用 IDE,在本地制作小游戏 | +| [动手做出原型](https://datawhalechina.github.io/easy-vibe/zh-cn/stage-1/building-prototype/) | 从需求分析、AI 生成单页面,再到生成多页面产品原型 | +| [给原型加上 AI 能力](https://datawhalechina.github.io/easy-vibe/zh-cn/stage-1/integrating-ai-capabilities/) | 学会接入常见 AI 能力(文本、图片、视频) | +| [完整项目实战](https://datawhalechina.github.io/easy-vibe/zh-cn/stage-1/complete-project-practice/) | 模拟真实场景、接受用户反馈迭代,完整化项目 | #### 附录:业务思维 @@ -241,32 +241,32 @@ Easy-Vibe giúp bạn biến điều đó thành một sản phẩm thật. | 章节 | 关键内容 | | :--------------------------------------------------------------------------------------------------------- | :--------------------------------------------------------------------------- | -| [从Lovart出发,搭建自己的素材生产Agent](https://datawhalechina.github.io/easy-vibe/zh-cn/stage-2/frontend/2.0-lovart-assets/) | 从零开始,利用Nanobanana和Lovart批量生成高质量的设计素材,并动手构建一个能意图识别的绘图Agent | -| [Figma 与 MasterGo 入门](https://datawhalechina.github.io/easy-vibe/zh-cn/stage-2/frontend/2.1-figma-mastergo/) | 用设计工具梳理信息架构和页面结构,为前端实现打基础 | -| [构建第一个现代应用程序-UI 设计](https://datawhalechina.github.io/easy-vibe/zh-cn/stage-2/frontend/2.2-ui-design/) | 基于设计稿完成组件化界面,实现从设计到代码的第一条链路 | -| [参考 UI 设计规范与多产品 UI 设计](https://datawhalechina.github.io/easy-vibe/zh-cn/stage-2/frontend/2.3-multi-product-ui/) | 围绕统一主视觉扩展多产品界面,练习系统化设计能力 | -| [用 LLM 和 Skills 让界面变好看](https://datawhalechina.github.io/easy-vibe/zh-cn/stage-2/frontend/2.4-llm-skills-beautiful/) | 用提示词和 Skills 插件让 AI 生成美观独特的界面 | -| [一起做霍格沃茨画像](https://datawhalechina.github.io/easy-vibe/zh-cn/stage-2/frontend/2.5-hogwarts-portraits/) | 从 0 到 1 做出接入 AI 能力的前端应用,串联设计与开发 | -| [从设计原型到项目代码](https://datawhalechina.github.io/easy-vibe/zh-cn/stage-2/frontend/2.6-design-to-code/) | 三种路径将设计工具中的原型转化为前端代码 | -| [使用现代组件库更新你的界面](https://datawhalechina.github.io/easy-vibe/zh-cn/stage-2/frontend/2.7-modern-component-library/) | 用组件库快速构建专业级界面,统一风格、提升开发效率 | +| [从Lovart出发,搭建自己的素材生产Agent](https://datawhalechina.github.io/easy-vibe/zh-cn/stage-2/frontend/lovart-assets/) | 从零开始,利用Nanobanana和Lovart批量生成高质量的设计素材,并动手构建一个能意图识别的绘图Agent | +| [Figma 与 MasterGo 入门](https://datawhalechina.github.io/easy-vibe/zh-cn/stage-2/frontend/figma-mastergo/) | 用设计工具梳理信息架构和页面结构,为前端实现打基础 | +| [构建第一个现代应用程序-UI 设计](https://datawhalechina.github.io/easy-vibe/zh-cn/stage-2/frontend/ui-design/) | 基于设计稿完成组件化界面,实现从设计到代码的第一条链路 | +| [参考 UI 设计规范与多产品 UI 设计](https://datawhalechina.github.io/easy-vibe/zh-cn/stage-2/frontend/multi-product-ui/) | 围绕统一主视觉扩展多产品界面,练习系统化设计能力 | +| [用 LLM 和 Skills 让界面变好看](https://datawhalechina.github.io/easy-vibe/zh-cn/stage-2/frontend/llm-skills-beautiful/) | 用提示词和 Skills 插件让 AI 生成美观独特的界面 | +| [一起做霍格沃茨画像](https://datawhalechina.github.io/easy-vibe/zh-cn/stage-2/frontend/hogwarts-portraits/) | 从 0 到 1 做出接入 AI 能力的前端应用,串联设计与开发 | +| [从设计原型到项目代码](https://datawhalechina.github.io/easy-vibe/zh-cn/stage-2/frontend/design-to-code/) | 三种路径将设计工具中的原型转化为前端代码 | +| [使用现代组件库更新你的界面](https://datawhalechina.github.io/easy-vibe/zh-cn/stage-2/frontend/modern-component-library/) | 用组件库快速构建专业级界面,统一风格、提升开发效率 | #### 后端开发部分 | 章节 | 关键内容 | | :------------------------------------------------------------------------------------------------- | :---------------------------------------------------------- | -| [从数据库到 Supabase](https://datawhalechina.github.io/easy-vibe/zh-cn/stage-2/backend/2.2-database-supabase/) | 在 Supabase 上落地数据库和 API,打通数据模型与前端页面 | -| [大模型辅助编写接口代码与接口文档](https://datawhalechina.github.io/easy-vibe/zh-cn/stage-2/backend/2.3-ai-interface-code/) | 用大模型协助生成接口与数据库文档及代码,实现可读可测的后端 | -| [Git 和 GitHub 工作流](https://datawhalechina.github.io/easy-vibe/zh-cn/stage-2/backend/2.4-git-workflow/) | 在 Git 工作流中管理代码,进行版本控制和协作 | -| [如何部署 Web 应用](https://datawhalechina.github.io/easy-vibe/zh-cn/stage-2/backend/2.5-zeabur-deployment/) | 使用 CloudBase、Vercel、Zeabur 等平台部署应用上线 | -| [CLI AI 编程工具](https://datawhalechina.github.io/easy-vibe/zh-cn/stage-2/backend/2.6-modern-cli/) | 使用 CLI 类 AI 编程工具加速开发与调试,形成个人工程化工作流 | -| [如何集成 Stripe 等收费系统](https://datawhalechina.github.io/easy-vibe/zh-cn/stage-2/backend/2.7-stripe-payment/) | 接入支付系统,完成收费链路与基础结算流程 | -| [大作业:构建第一个现代应用程序-全栈应用](https://datawhalechina.github.io/easy-vibe/zh-cn/stage-2/assignments/2.1-fullstack-app/) | 综合前端、后端与支付模块,完成可上线的全栈 Web 应用 | +| [从数据库到 Supabase](https://datawhalechina.github.io/easy-vibe/zh-cn/stage-2/backend/database-supabase/) | 在 Supabase 上落地数据库和 API,打通数据模型与前端页面 | +| [大模型辅助编写接口代码与接口文档](https://datawhalechina.github.io/easy-vibe/zh-cn/stage-2/backend/ai-interface-code/) | 用大模型协助生成接口与数据库文档及代码,实现可读可测的后端 | +| [Git 和 GitHub 工作流](https://datawhalechina.github.io/easy-vibe/zh-cn/stage-2/backend/git-workflow/) | 在 Git 工作流中管理代码,进行版本控制和协作 | +| [如何部署 Web 应用](https://datawhalechina.github.io/easy-vibe/zh-cn/stage-2/backend/zeabur-deployment/) | 使用 CloudBase、Vercel、Zeabur 等平台部署应用上线 | +| [CLI AI 编程工具](https://datawhalechina.github.io/easy-vibe/zh-cn/stage-2/backend/modern-cli/) | 使用 CLI 类 AI 编程工具加速开发与调试,形成个人工程化工作流 | +| [如何集成 Stripe 等收费系统](https://datawhalechina.github.io/easy-vibe/zh-cn/stage-2/backend/stripe-payment/) | 接入支付系统,完成收费链路与基础结算流程 | +| [大作业:构建第一个现代应用程序-全栈应用](https://datawhalechina.github.io/easy-vibe/zh-cn/stage-2/assignments/fullstack-app/) | 综合前端、后端与支付模块,完成可上线的全栈 Web 应用 | #### AI 能力附录 | 章节 | 关键内容 | | :------------------------------------------------------------------------------------------------------- | :------------------------------------------------------------- | -| [Dify 入门与知识库集成](https://datawhalechina.github.io/easy-vibe/zh-cn/stage-2/ai-capabilities/2.1-dify-knowledge-base/) | 用 Dify Workflow 与基础 RAG 搭建工具类产品,为后续应用升级打样 | +| [Dify 入门与知识库集成](https://datawhalechina.github.io/easy-vibe/zh-cn/stage-2/ai-capabilities/dify-knowledge-base/) | 用 Dify Workflow 与基础 RAG 搭建工具类产品,为后续应用升级打样 | ### 三、高级开发工程师 @@ -286,24 +286,24 @@ Easy-Vibe giúp bạn biến điều đó thành một sản phẩm thật. | 章节 | 关键内容 | | :------------------------------------------------------------------------------------------------------------- | :----------------------------------------------------------- | -| [如何构建微信小程序](https://datawhalechina.github.io/easy-vibe/zh-cn/stage-3/cross-platform/3.3-wechat-miniprogram/) | 了解微信小程序生态,从官方模板到上线完成一个前端小程序 | -| [如何构建微信小程序-包含后端](https://datawhalechina.github.io/easy-vibe/zh-cn/stage-3/cross-platform/3.4-wechat-miniprogram-backend/) | 在小程序中接入数据库与后端逻辑,打通完整业务闭环 | -| [如何构建安卓程序](https://datawhalechina.github.io/easy-vibe/zh-cn/stage-3/cross-platform/3.5-android-app/) | 使用 Expo 等工具,完成 Web/原生一体化的安卓应用开发 | -| [如何构建 iOS 程序](https://datawhalechina.github.io/easy-vibe/zh-cn/stage-3/cross-platform/3.6-ios-app/) | 使用 Expo 等工具,完成 Web/原生一体化的 iOS 应用开发 | -| [如何构建个人网页与学术博客](https://datawhalechina.github.io/easy-vibe/zh-cn/stage-3/personal-brand/3.7-personal-website-blog/) | 从选型、搭建到部署,构建展示个人项目与学术成果的在线主页 | -| [如何开发 PWA 本地应用](https://datawhalechina.github.io/easy-vibe/zh-cn/stage-3/cross-platform/3.8-pwa-local-app/) | 让网页变成"真正的 App",支持离线、推送、桌面安装 | -| [如何开发浏览器 AI 助手插件](https://datawhalechina.github.io/easy-vibe/zh-cn/stage-3/cross-platform/3.9-browser-ai-extension/) | 开发 Chrome 插件,一键总结任意网页,支持云端 API 和内置 AI | -| [如何开发 Electron 桌面程序](https://datawhalechina.github.io/easy-vibe/zh-cn/stage-3/cross-platform/3.10-electron-voice-to-text/) | 用 Electron 构建语音转文字桌面应用,支持三平台安装运行 | -| [如何快速开发并铸造 NFT](https://datawhalechina.github.io/easy-vibe/zh-cn/stage-3/cross-platform/3.11-nft-minting/) | 从零编写智能合约,部署到以太坊测试网,铸造自己的 NFT | -| [如何开发 VS Code 插件](https://datawhalechina.github.io/easy-vibe/zh-cn/stage-3/cross-platform/3.12-vscode-extension/) | 开发 AI 项目助手插件,支持模板生成、代码对话、多文件问答 | -| [如何开发工业级 Qt 桌面应用](https://datawhalechina.github.io/easy-vibe/zh-cn/stage-3/cross-platform/3.13-qt-industrial-hmi/) | 用 Qt 构建工业级水泵监控 HMI 系统,实时数据、趋势图、报警 | +| [如何构建微信小程序](https://datawhalechina.github.io/easy-vibe/zh-cn/stage-3/cross-platform/wechat-miniprogram/) | 了解微信小程序生态,从官方模板到上线完成一个前端小程序 | +| [如何构建微信小程序-包含后端](https://datawhalechina.github.io/easy-vibe/zh-cn/stage-3/cross-platform/wechat-miniprogram-backend/) | 在小程序中接入数据库与后端逻辑,打通完整业务闭环 | +| [如何构建安卓程序](https://datawhalechina.github.io/easy-vibe/zh-cn/stage-3/cross-platform/android-app/) | 使用 Expo 等工具,完成 Web/原生一体化的安卓应用开发 | +| [如何构建 iOS 程序](https://datawhalechina.github.io/easy-vibe/zh-cn/stage-3/cross-platform/ios-app/) | 使用 Expo 等工具,完成 Web/原生一体化的 iOS 应用开发 | +| [如何构建个人网页与学术博客](https://datawhalechina.github.io/easy-vibe/zh-cn/stage-3/personal-brand/personal-website-blog/) | 从选型、搭建到部署,构建展示个人项目与学术成果的在线主页 | +| [如何开发 PWA 本地应用](https://datawhalechina.github.io/easy-vibe/zh-cn/stage-3/cross-platform/pwa-local-app/) | 让网页变成"真正的 App",支持离线、推送、桌面安装 | +| [如何开发浏览器 AI 助手插件](https://datawhalechina.github.io/easy-vibe/zh-cn/stage-3/cross-platform/browser-ai-extension/) | 开发 Chrome 插件,一键总结任意网页,支持云端 API 和内置 AI | +| [如何开发 Electron 桌面程序](https://datawhalechina.github.io/easy-vibe/zh-cn/stage-3/cross-platform/electron-voice-to-text/) | 用 Electron 构建语音转文字桌面应用,支持三平台安装运行 | +| [如何快速开发并铸造 NFT](https://datawhalechina.github.io/easy-vibe/zh-cn/stage-3/cross-platform/nft-minting/) | 从零编写智能合约,部署到以太坊测试网,铸造自己的 NFT | +| [如何开发 VS Code 插件](https://datawhalechina.github.io/easy-vibe/zh-cn/stage-3/cross-platform/vscode-extension/) | 开发 AI 项目助手插件,支持模板生成、代码对话、多文件问答 | +| [如何开发工业级 Qt 桌面应用](https://datawhalechina.github.io/easy-vibe/zh-cn/stage-3/cross-platform/qt-industrial-hmi/) | 用 Qt 构建工业级水泵监控 HMI 系统,实时数据、趋势图、报警 | #### AI 能力附录 | 章节 | 关键内容 | | :---------------------------------------------------------------------------------------------------------------------------------------- | :------------------------------------------------------ | -| [什么是 RAG 以及它如何工作](https://datawhalechina.github.io/easy-vibe/zh-cn/stage-3/ai-advanced/3.a1-rag-introduction/) | 系统理解 RAG 原理与常见架构,为复杂应用提供知识检索基础 | -| [中高级 RAG 与工作流编排:以 LangGraph 为例](https://datawhalechina.github.io/easy-vibe/zh-cn/stage-3/ai-advanced/3.a2-langgraph-advanced-rag/) | 使用 LangGraph 等工具设计多步工作流与中高级 RAG 系统 | +| [什么是 RAG 以及它如何工作](https://datawhalechina.github.io/easy-vibe/zh-cn/stage-3/ai-advanced/rag-introduction/) | 系统理解 RAG 原理与常见架构,为复杂应用提供知识检索基础 | +| [中高级 RAG 与工作流编排:以 LangGraph 为例](https://datawhalechina.github.io/easy-vibe/zh-cn/stage-3/ai-advanced/langgraph-advanced-rag/) | 使用 LangGraph 等工具设计多步工作流与中高级 RAG 系统 | ### 📚 附录知识库 diff --git a/docs-readme/zh-CN/README.md b/docs-readme/zh-CN/README.md index 2174a09..b9f461e 100644 --- a/docs-readme/zh-CN/README.md +++ b/docs-readme/zh-CN/README.md @@ -128,7 +128,7 @@ Easy-Vibe 教你的,就是怎样把它一步步做成真正的产品。 ## 🔥 News - **[2026-03-29]** ✨ **「用户故事」专区上线并更新为真实案例**:首页新增交互式故事轮播组件和独立故事页面,并将原有占位内容替换为 4 篇真实用户故事,涵盖乡村小学老师、大学生、高中信息技术老师和货车司机,展示不同背景的学习者如何用 AI 解决真实问题、做出真实产品。[👉 查看故事](https://datawhalechina.github.io/easy-vibe/zh-cn/vibe-stories/story-1.html) -- **[2026-03-26]** 🚀 **阶段二实战内容集中更新**:补充完整 SaaS 全栈大作业[《第一个 SaaS 全栈应用——文案生成网站》](https://datawhalechina.github.io/easy-vibe/zh-cn/stage-2/assignments/2.1-fullstack-app/);同时大幅补全[《如何集成 Stripe 等收费系统》](https://datawhalechina.github.io/easy-vibe/zh-cn/stage-2/backend/2.7-stripe-payment/),完善多产品 UI、微信小程序后端等关键章节。 +- **[2026-03-26]** 🚀 **阶段二实战内容集中更新**:补充完整 SaaS 全栈大作业[《第一个 SaaS 全栈应用——文案生成网站》](https://datawhalechina.github.io/easy-vibe/zh-cn/stage-2/assignments/fullstack-app/);同时大幅补全[《如何集成 Stripe 等收费系统》](https://datawhalechina.github.io/easy-vibe/zh-cn/stage-2/backend/stripe-payment/),完善多产品 UI、微信小程序后端等关键章节。 - **[2026-03-25]** 📚 **新增附录「用户研究与需求验证」**:包含 4 篇文章——从哪里找点子、双钻模型、Jobs to Be Done、The Mom Test 用户访谈法,帮助新手学会发现和验证产品想法。[👉 阅读附录](https://datawhalechina.github.io/easy-vibe/zh-cn/appendix/) - **[2026-03-25]** 📚 **英文文档全面更新**:第二阶段(全栈开发)和第三阶段(高级开发)现已提供完整英文翻译。[👉 开始学习](https://datawhalechina.github.io/easy-vibe/en/stage-2/) - **[2026-03-02]** 🦞 **OpenClaw & AI Agent 友好支持**:新增 `llms.txt` AI 导航文件,让 OpenClaw、Claude、Cursor、Trae 等 AI Agent 能够快速理解本仓库结构,精准定位教程内容。希望每个🦞都学得愉快! @@ -163,14 +163,14 @@ Easy-Vibe 教你的,就是怎样把它一步步做成真正的产品。 **学什么**:AI 编程初体验、贪吃蛇小游戏 **你会得到**:5 分钟做出第一个 AI 应用 -[开始体验](https://datawhalechina.github.io/easy-vibe/zh-cn/stage-0/) +[开始体验](https://datawhalechina.github.io/easy-vibe/zh-cn/stage-1/) ### 💡 我有个想法要实现 **适合人群**:零基础/产品经理/创业者 **学什么**:AI IDE 工具、需求拆解、页面设计、功能规划、提示词写法、原型迭代 **你会得到**:一个可演示的产品原型 -[开始学习](https://datawhalechina.github.io/easy-vibe/zh-cn/stage-0/) +[开始学习](https://datawhalechina.github.io/easy-vibe/zh-cn/stage-1/) ### 🚀 我想系统学习 **适合人群**:开发者/进阶学习者 @@ -195,7 +195,7 @@ Easy-Vibe 教你的,就是怎样把它一步步做成真正的产品。 ## 学习建议 -- 零基础、产品经理、创业者:从 [第一阶段](https://datawhalechina.github.io/easy-vibe/zh-cn/stage-0/) 开始 +- 零基础、产品经理、创业者:从 [第一阶段](https://datawhalechina.github.io/easy-vibe/zh-cn/stage-1/) 开始 - 有开发经验:从 [第二阶段](https://datawhalechina.github.io/easy-vibe/zh-cn/stage-2/) 开始 - 想直接做复杂项目:进入 [第三阶段](https://datawhalechina.github.io/easy-vibe/zh-cn/stage-3/) - 想学 AI Agent:看 [Hello Claw](https://github.com/datawhalechina/hello-claw) @@ -212,13 +212,13 @@ Easy-Vibe 教你的,就是怎样把它一步步做成真正的产品。 | 章节 | 关键内容 | | :----------------------------------------------------------------------------------- | :------------------------------------------------ | -| [学习地图](https://datawhalechina.github.io/easy-vibe/zh-cn/stage-0/0.1-learning-map/) | 整体学习路径导览 | -| [AI 时代,会说话就会编程](https://datawhalechina.github.io/easy-vibe/zh-cn/stage-0/0.2-ai-capabilities-through-games/) | 通过贪吃蛇等案例初步感受 AI 编程的能力 | -| [寻找好想法](https://datawhalechina.github.io/easy-vibe/zh-cn/stage-1/1.0-finding-great-idea/) | 学会寻找和验证产品想法,找到值得做的项目 | -| [认识 AI IDE 工具](https://datawhalechina.github.io/easy-vibe/zh-cn/stage-1/1.1-introduction-to-ai-ide/) | 学会使用 IDE,在本地制作小游戏 | -| [动手做出原型](https://datawhalechina.github.io/easy-vibe/zh-cn/stage-1/1.2-building-prototype/) | 从需求分析、AI 生成单页面,再到生成多页面产品原型 | -| [给原型加上 AI 能力](https://datawhalechina.github.io/easy-vibe/zh-cn/stage-1/1.3-integrating-ai-capabilities/) | 学会接入常见 AI 能力(文本、图片、视频) | -| [完整项目实战](https://datawhalechina.github.io/easy-vibe/zh-cn/stage-1/1.4-complete-project-practice/) | 模拟真实场景、接受用户反馈迭代,完整化项目 | +| [学习地图](https://datawhalechina.github.io/easy-vibe/zh-cn/stage-1/learning-map/) | 整体学习路径导览 | +| [AI 时代,会说话就会编程](https://datawhalechina.github.io/easy-vibe/zh-cn/stage-1/ai-capabilities-through-games/) | 通过贪吃蛇等案例初步感受 AI 编程的能力 | +| [寻找好想法](https://datawhalechina.github.io/easy-vibe/zh-cn/stage-1/finding-great-idea/) | 学会寻找和验证产品想法,找到值得做的项目 | +| [认识 AI IDE 工具](https://datawhalechina.github.io/easy-vibe/zh-cn/stage-1/introduction-to-ai-ide/) | 学会使用 IDE,在本地制作小游戏 | +| [动手做出原型](https://datawhalechina.github.io/easy-vibe/zh-cn/stage-1/building-prototype/) | 从需求分析、AI 生成单页面,再到生成多页面产品原型 | +| [给原型加上 AI 能力](https://datawhalechina.github.io/easy-vibe/zh-cn/stage-1/integrating-ai-capabilities/) | 学会接入常见 AI 能力(文本、图片、视频) | +| [完整项目实战](https://datawhalechina.github.io/easy-vibe/zh-cn/stage-1/complete-project-practice/) | 模拟真实场景、接受用户反馈迭代,完整化项目 | #### 附录:业务思维 @@ -242,32 +242,32 @@ Easy-Vibe 教你的,就是怎样把它一步步做成真正的产品。 | 章节 | 关键内容 | | :--------------------------------------------------------------------------------------------------------- | :--------------------------------------------------------------------------- | -| [从Lovart出发,搭建自己的素材生产Agent](https://datawhalechina.github.io/easy-vibe/zh-cn/stage-2/frontend/2.0-lovart-assets/) | 从零开始,利用Nanobanana和Lovart批量生成高质量的设计素材,并动手构建一个能意图识别的绘图Agent | -| [Figma 与 MasterGo 入门](https://datawhalechina.github.io/easy-vibe/zh-cn/stage-2/frontend/2.1-figma-mastergo/) | 用设计工具梳理信息架构和页面结构,为前端实现打基础 | -| [构建第一个现代应用程序-UI 设计](https://datawhalechina.github.io/easy-vibe/zh-cn/stage-2/frontend/2.2-ui-design/) | 基于设计稿完成组件化界面,实现从设计到代码的第一条链路 | -| [参考 UI 设计规范与多产品 UI 设计](https://datawhalechina.github.io/easy-vibe/zh-cn/stage-2/frontend/2.3-multi-product-ui/) | 围绕统一主视觉扩展多产品界面,练习系统化设计能力 | -| [用 LLM 和 Skills 让界面变好看](https://datawhalechina.github.io/easy-vibe/zh-cn/stage-2/frontend/2.4-llm-skills-beautiful/) | 用提示词和 Skills 插件让 AI 生成美观独特的界面 | -| [一起做霍格沃茨画像](https://datawhalechina.github.io/easy-vibe/zh-cn/stage-2/frontend/2.5-hogwarts-portraits/) | 从 0 到 1 做出接入 AI 能力的前端应用,串联设计与开发 | -| [从设计原型到项目代码](https://datawhalechina.github.io/easy-vibe/zh-cn/stage-2/frontend/2.6-design-to-code/) | 三种路径将设计工具中的原型转化为前端代码 | -| [使用现代组件库更新你的界面](https://datawhalechina.github.io/easy-vibe/zh-cn/stage-2/frontend/2.7-modern-component-library/) | 用组件库快速构建专业级界面,统一风格、提升开发效率 | +| [从Lovart出发,搭建自己的素材生产Agent](https://datawhalechina.github.io/easy-vibe/zh-cn/stage-2/frontend/lovart-assets/) | 从零开始,利用Nanobanana和Lovart批量生成高质量的设计素材,并动手构建一个能意图识别的绘图Agent | +| [Figma 与 MasterGo 入门](https://datawhalechina.github.io/easy-vibe/zh-cn/stage-2/frontend/figma-mastergo/) | 用设计工具梳理信息架构和页面结构,为前端实现打基础 | +| [构建第一个现代应用程序-UI 设计](https://datawhalechina.github.io/easy-vibe/zh-cn/stage-2/frontend/ui-design/) | 基于设计稿完成组件化界面,实现从设计到代码的第一条链路 | +| [参考 UI 设计规范与多产品 UI 设计](https://datawhalechina.github.io/easy-vibe/zh-cn/stage-2/frontend/multi-product-ui/) | 围绕统一主视觉扩展多产品界面,练习系统化设计能力 | +| [用 LLM 和 Skills 让界面变好看](https://datawhalechina.github.io/easy-vibe/zh-cn/stage-2/frontend/llm-skills-beautiful/) | 用提示词和 Skills 插件让 AI 生成美观独特的界面 | +| [一起做霍格沃茨画像](https://datawhalechina.github.io/easy-vibe/zh-cn/stage-2/frontend/hogwarts-portraits/) | 从 0 到 1 做出接入 AI 能力的前端应用,串联设计与开发 | +| [从设计原型到项目代码](https://datawhalechina.github.io/easy-vibe/zh-cn/stage-2/frontend/design-to-code/) | 三种路径将设计工具中的原型转化为前端代码 | +| [使用现代组件库更新你的界面](https://datawhalechina.github.io/easy-vibe/zh-cn/stage-2/frontend/modern-component-library/) | 用组件库快速构建专业级界面,统一风格、提升开发效率 | #### 后端开发部分 | 章节 | 关键内容 | | :------------------------------------------------------------------------------------------------- | :---------------------------------------------------------- | -| [从数据库到 Supabase](https://datawhalechina.github.io/easy-vibe/zh-cn/stage-2/backend/2.2-database-supabase/) | 在 Supabase 上落地数据库和 API,打通数据模型与前端页面 | -| [大模型辅助编写接口代码与接口文档](https://datawhalechina.github.io/easy-vibe/zh-cn/stage-2/backend/2.3-ai-interface-code/) | 用大模型协助生成接口与数据库文档及代码,实现可读可测的后端 | -| [Git 和 GitHub 工作流](https://datawhalechina.github.io/easy-vibe/zh-cn/stage-2/backend/2.4-git-workflow/) | 在 Git 工作流中管理代码,进行版本控制和协作 | -| [如何部署 Web 应用](https://datawhalechina.github.io/easy-vibe/zh-cn/stage-2/backend/2.5-zeabur-deployment/) | 使用 CloudBase、Vercel、Zeabur 等平台部署应用上线 | -| [CLI AI 编程工具](https://datawhalechina.github.io/easy-vibe/zh-cn/stage-2/backend/2.6-modern-cli/) | 使用 CLI 类 AI 编程工具加速开发与调试,形成个人工程化工作流 | -| [如何集成 Stripe 等收费系统](https://datawhalechina.github.io/easy-vibe/zh-cn/stage-2/backend/2.7-stripe-payment/) | 接入支付系统,完成收费链路与基础结算流程 | -| [大作业:构建第一个现代应用程序-全栈应用](https://datawhalechina.github.io/easy-vibe/zh-cn/stage-2/assignments/2.1-fullstack-app/) | 综合前端、后端与支付模块,完成可上线的全栈 Web 应用 | +| [从数据库到 Supabase](https://datawhalechina.github.io/easy-vibe/zh-cn/stage-2/backend/database-supabase/) | 在 Supabase 上落地数据库和 API,打通数据模型与前端页面 | +| [大模型辅助编写接口代码与接口文档](https://datawhalechina.github.io/easy-vibe/zh-cn/stage-2/backend/ai-interface-code/) | 用大模型协助生成接口与数据库文档及代码,实现可读可测的后端 | +| [Git 和 GitHub 工作流](https://datawhalechina.github.io/easy-vibe/zh-cn/stage-2/backend/git-workflow/) | 在 Git 工作流中管理代码,进行版本控制和协作 | +| [如何部署 Web 应用](https://datawhalechina.github.io/easy-vibe/zh-cn/stage-2/backend/zeabur-deployment/) | 使用 CloudBase、Vercel、Zeabur 等平台部署应用上线 | +| [CLI AI 编程工具](https://datawhalechina.github.io/easy-vibe/zh-cn/stage-2/backend/modern-cli/) | 使用 CLI 类 AI 编程工具加速开发与调试,形成个人工程化工作流 | +| [如何集成 Stripe 等收费系统](https://datawhalechina.github.io/easy-vibe/zh-cn/stage-2/backend/stripe-payment/) | 接入支付系统,完成收费链路与基础结算流程 | +| [大作业:构建第一个现代应用程序-全栈应用](https://datawhalechina.github.io/easy-vibe/zh-cn/stage-2/assignments/fullstack-app/) | 综合前端、后端与支付模块,完成可上线的全栈 Web 应用 | #### AI 能力附录 | 章节 | 关键内容 | | :------------------------------------------------------------------------------------------------------- | :------------------------------------------------------------- | -| [Dify 入门与知识库集成](https://datawhalechina.github.io/easy-vibe/zh-cn/stage-2/ai-capabilities/2.1-dify-knowledge-base/) | 用 Dify Workflow 与基础 RAG 搭建工具类产品,为后续应用升级打样 | +| [Dify 入门与知识库集成](https://datawhalechina.github.io/easy-vibe/zh-cn/stage-2/ai-capabilities/dify-knowledge-base/) | 用 Dify Workflow 与基础 RAG 搭建工具类产品,为后续应用升级打样 | ### 三、高级开发工程师 @@ -287,24 +287,24 @@ Easy-Vibe 教你的,就是怎样把它一步步做成真正的产品。 | 章节 | 关键内容 | | :------------------------------------------------------------------------------------------------------------- | :----------------------------------------------------------- | -| [如何构建微信小程序](https://datawhalechina.github.io/easy-vibe/zh-cn/stage-3/cross-platform/3.3-wechat-miniprogram/) | 了解微信小程序生态,从官方模板到上线完成一个前端小程序 | -| [如何构建微信小程序-包含后端](https://datawhalechina.github.io/easy-vibe/zh-cn/stage-3/cross-platform/3.4-wechat-miniprogram-backend/) | 在小程序中接入数据库与后端逻辑,打通完整业务闭环 | -| [如何构建安卓程序](https://datawhalechina.github.io/easy-vibe/zh-cn/stage-3/cross-platform/3.5-android-app/) | 使用 Expo 等工具,完成 Web/原生一体化的安卓应用开发 | -| [如何构建 iOS 程序](https://datawhalechina.github.io/easy-vibe/zh-cn/stage-3/cross-platform/3.6-ios-app/) | 使用 Expo 等工具,完成 Web/原生一体化的 iOS 应用开发 | -| [如何构建个人网页与学术博客](https://datawhalechina.github.io/easy-vibe/zh-cn/stage-3/personal-brand/3.7-personal-website-blog/) | 从选型、搭建到部署,构建展示个人项目与学术成果的在线主页 | -| [如何开发 PWA 本地应用](https://datawhalechina.github.io/easy-vibe/zh-cn/stage-3/cross-platform/3.8-pwa-local-app/) | 让网页变成"真正的 App",支持离线、推送、桌面安装 | -| [如何开发浏览器 AI 助手插件](https://datawhalechina.github.io/easy-vibe/zh-cn/stage-3/cross-platform/3.9-browser-ai-extension/) | 开发 Chrome 插件,一键总结任意网页,支持云端 API 和内置 AI | -| [如何开发 Electron 桌面程序](https://datawhalechina.github.io/easy-vibe/zh-cn/stage-3/cross-platform/3.10-electron-voice-to-text/) | 用 Electron 构建语音转文字桌面应用,支持三平台安装运行 | -| [如何快速开发并铸造 NFT](https://datawhalechina.github.io/easy-vibe/zh-cn/stage-3/cross-platform/3.11-nft-minting/) | 从零编写智能合约,部署到以太坊测试网,铸造自己的 NFT | -| [如何开发 VS Code 插件](https://datawhalechina.github.io/easy-vibe/zh-cn/stage-3/cross-platform/3.12-vscode-extension/) | 开发 AI 项目助手插件,支持模板生成、代码对话、多文件问答 | -| [如何开发工业级 Qt 桌面应用](https://datawhalechina.github.io/easy-vibe/zh-cn/stage-3/cross-platform/3.13-qt-industrial-hmi/) | 用 Qt 构建工业级水泵监控 HMI 系统,实时数据、趋势图、报警 | +| [如何构建微信小程序](https://datawhalechina.github.io/easy-vibe/zh-cn/stage-3/cross-platform/wechat-miniprogram/) | 了解微信小程序生态,从官方模板到上线完成一个前端小程序 | +| [如何构建微信小程序-包含后端](https://datawhalechina.github.io/easy-vibe/zh-cn/stage-3/cross-platform/wechat-miniprogram-backend/) | 在小程序中接入数据库与后端逻辑,打通完整业务闭环 | +| [如何构建安卓程序](https://datawhalechina.github.io/easy-vibe/zh-cn/stage-3/cross-platform/android-app/) | 使用 Expo 等工具,完成 Web/原生一体化的安卓应用开发 | +| [如何构建 iOS 程序](https://datawhalechina.github.io/easy-vibe/zh-cn/stage-3/cross-platform/ios-app/) | 使用 Expo 等工具,完成 Web/原生一体化的 iOS 应用开发 | +| [如何构建个人网页与学术博客](https://datawhalechina.github.io/easy-vibe/zh-cn/stage-3/personal-brand/personal-website-blog/) | 从选型、搭建到部署,构建展示个人项目与学术成果的在线主页 | +| [如何开发 PWA 本地应用](https://datawhalechina.github.io/easy-vibe/zh-cn/stage-3/cross-platform/pwa-local-app/) | 让网页变成"真正的 App",支持离线、推送、桌面安装 | +| [如何开发浏览器 AI 助手插件](https://datawhalechina.github.io/easy-vibe/zh-cn/stage-3/cross-platform/browser-ai-extension/) | 开发 Chrome 插件,一键总结任意网页,支持云端 API 和内置 AI | +| [如何开发 Electron 桌面程序](https://datawhalechina.github.io/easy-vibe/zh-cn/stage-3/cross-platform/electron-voice-to-text/) | 用 Electron 构建语音转文字桌面应用,支持三平台安装运行 | +| [如何快速开发并铸造 NFT](https://datawhalechina.github.io/easy-vibe/zh-cn/stage-3/cross-platform/nft-minting/) | 从零编写智能合约,部署到以太坊测试网,铸造自己的 NFT | +| [如何开发 VS Code 插件](https://datawhalechina.github.io/easy-vibe/zh-cn/stage-3/cross-platform/vscode-extension/) | 开发 AI 项目助手插件,支持模板生成、代码对话、多文件问答 | +| [如何开发工业级 Qt 桌面应用](https://datawhalechina.github.io/easy-vibe/zh-cn/stage-3/cross-platform/qt-industrial-hmi/) | 用 Qt 构建工业级水泵监控 HMI 系统,实时数据、趋势图、报警 | #### AI 能力附录 | 章节 | 关键内容 | | :---------------------------------------------------------------------------------------------------------------------------------------- | :------------------------------------------------------ | -| [什么是 RAG 以及它如何工作](https://datawhalechina.github.io/easy-vibe/zh-cn/stage-3/ai-advanced/3.a1-rag-introduction/) | 系统理解 RAG 原理与常见架构,为复杂应用提供知识检索基础 | -| [中高级 RAG 与工作流编排:以 LangGraph 为例](https://datawhalechina.github.io/easy-vibe/zh-cn/stage-3/ai-advanced/3.a2-langgraph-advanced-rag/) | 使用 LangGraph 等工具设计多步工作流与中高级 RAG 系统 | +| [什么是 RAG 以及它如何工作](https://datawhalechina.github.io/easy-vibe/zh-cn/stage-3/ai-advanced/rag-introduction/) | 系统理解 RAG 原理与常见架构,为复杂应用提供知识检索基础 | +| [中高级 RAG 与工作流编排:以 LangGraph 为例](https://datawhalechina.github.io/easy-vibe/zh-cn/stage-3/ai-advanced/langgraph-advanced-rag/) | 使用 LangGraph 等工具设计多步工作流与中高级 RAG 系统 | ### 📚 附录知识库 diff --git a/docs-readme/zh-TW/README.md b/docs-readme/zh-TW/README.md index 6642a7b..3f0500f 100644 --- a/docs-readme/zh-TW/README.md +++ b/docs-readme/zh-TW/README.md @@ -128,7 +128,7 @@ Easy-Vibe 教你的,就是怎樣把它一步步做成真正的產品。 ## 🔥 News - **[2026-03-29]** ✨ **「使用者故事」專區上線並更新為真實案例**:首頁新增互動式故事輪播元件與獨立故事頁面,並將原有占位內容替換為 4 篇真實使用者故事,涵蓋鄉村小學老師、大學生、高中資訊科技老師和貨車司機,展示不同背景的學習者如何用 AI 解決真實問題、做出真實產品。[👉 查看故事](https://datawhalechina.github.io/easy-vibe/zh-cn/vibe-stories/story-1.html) -- **[2026-03-26]** 🚀 **阶段二实战内容集中更新**:补充完整 SaaS 全栈大作业[《第一个 SaaS 全栈应用——文案生成网站》](https://datawhalechina.github.io/easy-vibe/zh-cn/stage-2/assignments/2.1-fullstack-app/);同时大幅补全[《如何集成 Stripe 等收费系统》](https://datawhalechina.github.io/easy-vibe/zh-cn/stage-2/backend/2.7-stripe-payment/),完善多产品 UI、微信小程序后端等关键章节。 +- **[2026-03-26]** 🚀 **阶段二实战内容集中更新**:补充完整 SaaS 全栈大作业[《第一个 SaaS 全栈应用——文案生成网站》](https://datawhalechina.github.io/easy-vibe/zh-cn/stage-2/assignments/fullstack-app/);同时大幅补全[《如何集成 Stripe 等收费系统》](https://datawhalechina.github.io/easy-vibe/zh-cn/stage-2/backend/stripe-payment/),完善多产品 UI、微信小程序后端等关键章节。 - **[2026-03-25]** 📚 **新增附录「用户研究与需求验证」**:包含 4 篇文章——从哪里找点子、双钻模型、Jobs to Be Done、The Mom Test 用户访谈法,帮助新手学会发现和验证产品想法。[👉 阅读附录](https://datawhalechina.github.io/easy-vibe/zh-cn/appendix/) - **[2026-03-25]** 📚 **英文文档全面更新**:第二阶段(全栈开发)和第三阶段(高级开发)现已提供完整英文翻译。[👉 开始学习](https://datawhalechina.github.io/easy-vibe/en/stage-2/) - **[2026-03-02]** 🦞 **OpenClaw & AI Agent 友好支持**:新增 `llms.txt` AI 导航文件,让 OpenClaw、Claude、Cursor、Trae 等 AI Agent 能够快速理解本仓库结构,精准定位教程内容。希望每个🦞都学得愉快! @@ -163,14 +163,14 @@ Easy-Vibe 教你的,就是怎樣把它一步步做成真正的產品。 **学什么**:AI 编程初体验、贪吃蛇小游戏 **你会得到**:5 分钟做出第一个 AI 应用 -[开始体验](https://datawhalechina.github.io/easy-vibe/zh-cn/stage-0/) +[开始体验](https://datawhalechina.github.io/easy-vibe/zh-cn/stage-1/) ### 💡 我有个想法要实现 **适合人群**:零基础/产品经理/创业者 **学什么**:AI IDE 工具、需求拆解、页面设计、功能规划、提示词写法、原型迭代 **你会得到**:一个可演示的产品原型 -[开始学习](https://datawhalechina.github.io/easy-vibe/zh-cn/stage-0/) +[开始学习](https://datawhalechina.github.io/easy-vibe/zh-cn/stage-1/) ### 🚀 我想系统学习 **适合人群**:开发者/进阶学习者 @@ -195,7 +195,7 @@ Easy-Vibe 教你的,就是怎樣把它一步步做成真正的產品。 ## 学习建议 -- 零基础、产品经理、创业者:从 [第一阶段](https://datawhalechina.github.io/easy-vibe/zh-cn/stage-0/) 开始 +- 零基础、产品经理、创业者:从 [第一阶段](https://datawhalechina.github.io/easy-vibe/zh-cn/stage-1/) 开始 - 有开发经验:从 [第二阶段](https://datawhalechina.github.io/easy-vibe/zh-cn/stage-2/) 开始 - 想直接做复杂项目:进入 [第三阶段](https://datawhalechina.github.io/easy-vibe/zh-cn/stage-3/) - 想学 AI Agent:看 [Hello Claw](https://github.com/datawhalechina/hello-claw) @@ -212,13 +212,13 @@ Easy-Vibe 教你的,就是怎樣把它一步步做成真正的產品。 | 章节 | 关键内容 | | :----------------------------------------------------------------------------------- | :------------------------------------------------ | -| [学习地图](https://datawhalechina.github.io/easy-vibe/zh-cn/stage-0/0.1-learning-map/) | 整体学习路径导览 | -| [AI 时代,会说话就会编程](https://datawhalechina.github.io/easy-vibe/zh-cn/stage-0/0.2-ai-capabilities-through-games/) | 通过贪吃蛇等案例初步感受 AI 编程的能力 | -| [寻找好想法](https://datawhalechina.github.io/easy-vibe/zh-cn/stage-1/1.0-finding-great-idea/) | 学会寻找和验证产品想法,找到值得做的项目 | -| [认识 AI IDE 工具](https://datawhalechina.github.io/easy-vibe/zh-cn/stage-1/1.1-introduction-to-ai-ide/) | 学会使用 IDE,在本地制作小游戏 | -| [动手做出原型](https://datawhalechina.github.io/easy-vibe/zh-cn/stage-1/1.2-building-prototype/) | 从需求分析、AI 生成单页面,再到生成多页面产品原型 | -| [给原型加上 AI 能力](https://datawhalechina.github.io/easy-vibe/zh-cn/stage-1/1.3-integrating-ai-capabilities/) | 学会接入常见 AI 能力(文本、图片、视频) | -| [完整项目实战](https://datawhalechina.github.io/easy-vibe/zh-cn/stage-1/1.4-complete-project-practice/) | 模拟真实场景、接受用户反馈迭代,完整化项目 | +| [学习地图](https://datawhalechina.github.io/easy-vibe/zh-cn/stage-1/learning-map/) | 整体学习路径导览 | +| [AI 时代,会说话就会编程](https://datawhalechina.github.io/easy-vibe/zh-cn/stage-1/ai-capabilities-through-games/) | 通过贪吃蛇等案例初步感受 AI 编程的能力 | +| [寻找好想法](https://datawhalechina.github.io/easy-vibe/zh-cn/stage-1/finding-great-idea/) | 学会寻找和验证产品想法,找到值得做的项目 | +| [认识 AI IDE 工具](https://datawhalechina.github.io/easy-vibe/zh-cn/stage-1/introduction-to-ai-ide/) | 学会使用 IDE,在本地制作小游戏 | +| [动手做出原型](https://datawhalechina.github.io/easy-vibe/zh-cn/stage-1/building-prototype/) | 从需求分析、AI 生成单页面,再到生成多页面产品原型 | +| [给原型加上 AI 能力](https://datawhalechina.github.io/easy-vibe/zh-cn/stage-1/integrating-ai-capabilities/) | 学会接入常见 AI 能力(文本、图片、视频) | +| [完整项目实战](https://datawhalechina.github.io/easy-vibe/zh-cn/stage-1/complete-project-practice/) | 模拟真实场景、接受用户反馈迭代,完整化项目 | #### 附录:业务思维 @@ -242,32 +242,32 @@ Easy-Vibe 教你的,就是怎樣把它一步步做成真正的產品。 | 章节 | 关键内容 | | :--------------------------------------------------------------------------------------------------------- | :--------------------------------------------------------------------------- | -| [从Lovart出发,搭建自己的素材生产Agent](https://datawhalechina.github.io/easy-vibe/zh-cn/stage-2/frontend/2.0-lovart-assets/) | 从零开始,利用Nanobanana和Lovart批量生成高质量的设计素材,并动手构建一个能意图识别的绘图Agent | -| [Figma 与 MasterGo 入门](https://datawhalechina.github.io/easy-vibe/zh-cn/stage-2/frontend/2.1-figma-mastergo/) | 用设计工具梳理信息架构和页面结构,为前端实现打基础 | -| [构建第一个现代应用程序-UI 设计](https://datawhalechina.github.io/easy-vibe/zh-cn/stage-2/frontend/2.2-ui-design/) | 基于设计稿完成组件化界面,实现从设计到代码的第一条链路 | -| [参考 UI 设计规范与多产品 UI 设计](https://datawhalechina.github.io/easy-vibe/zh-cn/stage-2/frontend/2.3-multi-product-ui/) | 围绕统一主视觉扩展多产品界面,练习系统化设计能力 | -| [用 LLM 和 Skills 让界面变好看](https://datawhalechina.github.io/easy-vibe/zh-cn/stage-2/frontend/2.4-llm-skills-beautiful/) | 用提示词和 Skills 插件让 AI 生成美观独特的界面 | -| [一起做霍格沃茨画像](https://datawhalechina.github.io/easy-vibe/zh-cn/stage-2/frontend/2.5-hogwarts-portraits/) | 从 0 到 1 做出接入 AI 能力的前端应用,串联设计与开发 | -| [从设计原型到项目代码](https://datawhalechina.github.io/easy-vibe/zh-cn/stage-2/frontend/2.6-design-to-code/) | 三种路径将设计工具中的原型转化为前端代码 | -| [使用现代组件库更新你的界面](https://datawhalechina.github.io/easy-vibe/zh-cn/stage-2/frontend/2.7-modern-component-library/) | 用组件库快速构建专业级界面,统一风格、提升开发效率 | +| [从Lovart出发,搭建自己的素材生产Agent](https://datawhalechina.github.io/easy-vibe/zh-cn/stage-2/frontend/lovart-assets/) | 从零开始,利用Nanobanana和Lovart批量生成高质量的设计素材,并动手构建一个能意图识别的绘图Agent | +| [Figma 与 MasterGo 入门](https://datawhalechina.github.io/easy-vibe/zh-cn/stage-2/frontend/figma-mastergo/) | 用设计工具梳理信息架构和页面结构,为前端实现打基础 | +| [构建第一个现代应用程序-UI 设计](https://datawhalechina.github.io/easy-vibe/zh-cn/stage-2/frontend/ui-design/) | 基于设计稿完成组件化界面,实现从设计到代码的第一条链路 | +| [参考 UI 设计规范与多产品 UI 设计](https://datawhalechina.github.io/easy-vibe/zh-cn/stage-2/frontend/multi-product-ui/) | 围绕统一主视觉扩展多产品界面,练习系统化设计能力 | +| [用 LLM 和 Skills 让界面变好看](https://datawhalechina.github.io/easy-vibe/zh-cn/stage-2/frontend/llm-skills-beautiful/) | 用提示词和 Skills 插件让 AI 生成美观独特的界面 | +| [一起做霍格沃茨画像](https://datawhalechina.github.io/easy-vibe/zh-cn/stage-2/frontend/hogwarts-portraits/) | 从 0 到 1 做出接入 AI 能力的前端应用,串联设计与开发 | +| [从设计原型到项目代码](https://datawhalechina.github.io/easy-vibe/zh-cn/stage-2/frontend/design-to-code/) | 三种路径将设计工具中的原型转化为前端代码 | +| [使用现代组件库更新你的界面](https://datawhalechina.github.io/easy-vibe/zh-cn/stage-2/frontend/modern-component-library/) | 用组件库快速构建专业级界面,统一风格、提升开发效率 | #### 后端开发部分 | 章节 | 关键内容 | | :------------------------------------------------------------------------------------------------- | :---------------------------------------------------------- | -| [从数据库到 Supabase](https://datawhalechina.github.io/easy-vibe/zh-cn/stage-2/backend/2.2-database-supabase/) | 在 Supabase 上落地数据库和 API,打通数据模型与前端页面 | -| [大模型辅助编写接口代码与接口文档](https://datawhalechina.github.io/easy-vibe/zh-cn/stage-2/backend/2.3-ai-interface-code/) | 用大模型协助生成接口与数据库文档及代码,实现可读可测的后端 | -| [Git 和 GitHub 工作流](https://datawhalechina.github.io/easy-vibe/zh-cn/stage-2/backend/2.4-git-workflow/) | 在 Git 工作流中管理代码,进行版本控制和协作 | -| [如何部署 Web 应用](https://datawhalechina.github.io/easy-vibe/zh-cn/stage-2/backend/2.5-zeabur-deployment/) | 使用 CloudBase、Vercel、Zeabur 等平台部署应用上线 | -| [CLI AI 编程工具](https://datawhalechina.github.io/easy-vibe/zh-cn/stage-2/backend/2.6-modern-cli/) | 使用 CLI 类 AI 编程工具加速开发与调试,形成个人工程化工作流 | -| [如何集成 Stripe 等收费系统](https://datawhalechina.github.io/easy-vibe/zh-cn/stage-2/backend/2.7-stripe-payment/) | 接入支付系统,完成收费链路与基础结算流程 | -| [大作业:构建第一个现代应用程序-全栈应用](https://datawhalechina.github.io/easy-vibe/zh-cn/stage-2/assignments/2.1-fullstack-app/) | 综合前端、后端与支付模块,完成可上线的全栈 Web 应用 | +| [从数据库到 Supabase](https://datawhalechina.github.io/easy-vibe/zh-cn/stage-2/backend/database-supabase/) | 在 Supabase 上落地数据库和 API,打通数据模型与前端页面 | +| [大模型辅助编写接口代码与接口文档](https://datawhalechina.github.io/easy-vibe/zh-cn/stage-2/backend/ai-interface-code/) | 用大模型协助生成接口与数据库文档及代码,实现可读可测的后端 | +| [Git 和 GitHub 工作流](https://datawhalechina.github.io/easy-vibe/zh-cn/stage-2/backend/git-workflow/) | 在 Git 工作流中管理代码,进行版本控制和协作 | +| [如何部署 Web 应用](https://datawhalechina.github.io/easy-vibe/zh-cn/stage-2/backend/zeabur-deployment/) | 使用 CloudBase、Vercel、Zeabur 等平台部署应用上线 | +| [CLI AI 编程工具](https://datawhalechina.github.io/easy-vibe/zh-cn/stage-2/backend/modern-cli/) | 使用 CLI 类 AI 编程工具加速开发与调试,形成个人工程化工作流 | +| [如何集成 Stripe 等收费系统](https://datawhalechina.github.io/easy-vibe/zh-cn/stage-2/backend/stripe-payment/) | 接入支付系统,完成收费链路与基础结算流程 | +| [大作业:构建第一个现代应用程序-全栈应用](https://datawhalechina.github.io/easy-vibe/zh-cn/stage-2/assignments/fullstack-app/) | 综合前端、后端与支付模块,完成可上线的全栈 Web 应用 | #### AI 能力附录 | 章节 | 关键内容 | | :------------------------------------------------------------------------------------------------------- | :------------------------------------------------------------- | -| [Dify 入门与知识库集成](https://datawhalechina.github.io/easy-vibe/zh-cn/stage-2/ai-capabilities/2.1-dify-knowledge-base/) | 用 Dify Workflow 与基础 RAG 搭建工具类产品,为后续应用升级打样 | +| [Dify 入门与知识库集成](https://datawhalechina.github.io/easy-vibe/zh-cn/stage-2/ai-capabilities/dify-knowledge-base/) | 用 Dify Workflow 与基础 RAG 搭建工具类产品,为后续应用升级打样 | ### 三、高级开发工程师 @@ -287,24 +287,24 @@ Easy-Vibe 教你的,就是怎樣把它一步步做成真正的產品。 | 章节 | 关键内容 | | :------------------------------------------------------------------------------------------------------------- | :----------------------------------------------------------- | -| [如何构建微信小程序](https://datawhalechina.github.io/easy-vibe/zh-cn/stage-3/cross-platform/3.3-wechat-miniprogram/) | 了解微信小程序生态,从官方模板到上线完成一个前端小程序 | -| [如何构建微信小程序-包含后端](https://datawhalechina.github.io/easy-vibe/zh-cn/stage-3/cross-platform/3.4-wechat-miniprogram-backend/) | 在小程序中接入数据库与后端逻辑,打通完整业务闭环 | -| [如何构建安卓程序](https://datawhalechina.github.io/easy-vibe/zh-cn/stage-3/cross-platform/3.5-android-app/) | 使用 Expo 等工具,完成 Web/原生一体化的安卓应用开发 | -| [如何构建 iOS 程序](https://datawhalechina.github.io/easy-vibe/zh-cn/stage-3/cross-platform/3.6-ios-app/) | 使用 Expo 等工具,完成 Web/原生一体化的 iOS 应用开发 | -| [如何构建个人网页与学术博客](https://datawhalechina.github.io/easy-vibe/zh-cn/stage-3/personal-brand/3.7-personal-website-blog/) | 从选型、搭建到部署,构建展示个人项目与学术成果的在线主页 | -| [如何开发 PWA 本地应用](https://datawhalechina.github.io/easy-vibe/zh-cn/stage-3/cross-platform/3.8-pwa-local-app/) | 让网页变成"真正的 App",支持离线、推送、桌面安装 | -| [如何开发浏览器 AI 助手插件](https://datawhalechina.github.io/easy-vibe/zh-cn/stage-3/cross-platform/3.9-browser-ai-extension/) | 开发 Chrome 插件,一键总结任意网页,支持云端 API 和内置 AI | -| [如何开发 Electron 桌面程序](https://datawhalechina.github.io/easy-vibe/zh-cn/stage-3/cross-platform/3.10-electron-voice-to-text/) | 用 Electron 构建语音转文字桌面应用,支持三平台安装运行 | -| [如何快速开发并铸造 NFT](https://datawhalechina.github.io/easy-vibe/zh-cn/stage-3/cross-platform/3.11-nft-minting/) | 从零编写智能合约,部署到以太坊测试网,铸造自己的 NFT | -| [如何开发 VS Code 插件](https://datawhalechina.github.io/easy-vibe/zh-cn/stage-3/cross-platform/3.12-vscode-extension/) | 开发 AI 项目助手插件,支持模板生成、代码对话、多文件问答 | -| [如何开发工业级 Qt 桌面应用](https://datawhalechina.github.io/easy-vibe/zh-cn/stage-3/cross-platform/3.13-qt-industrial-hmi/) | 用 Qt 构建工业级水泵监控 HMI 系统,实时数据、趋势图、报警 | +| [如何构建微信小程序](https://datawhalechina.github.io/easy-vibe/zh-cn/stage-3/cross-platform/wechat-miniprogram/) | 了解微信小程序生态,从官方模板到上线完成一个前端小程序 | +| [如何构建微信小程序-包含后端](https://datawhalechina.github.io/easy-vibe/zh-cn/stage-3/cross-platform/wechat-miniprogram-backend/) | 在小程序中接入数据库与后端逻辑,打通完整业务闭环 | +| [如何构建安卓程序](https://datawhalechina.github.io/easy-vibe/zh-cn/stage-3/cross-platform/android-app/) | 使用 Expo 等工具,完成 Web/原生一体化的安卓应用开发 | +| [如何构建 iOS 程序](https://datawhalechina.github.io/easy-vibe/zh-cn/stage-3/cross-platform/ios-app/) | 使用 Expo 等工具,完成 Web/原生一体化的 iOS 应用开发 | +| [如何构建个人网页与学术博客](https://datawhalechina.github.io/easy-vibe/zh-cn/stage-3/personal-brand/personal-website-blog/) | 从选型、搭建到部署,构建展示个人项目与学术成果的在线主页 | +| [如何开发 PWA 本地应用](https://datawhalechina.github.io/easy-vibe/zh-cn/stage-3/cross-platform/pwa-local-app/) | 让网页变成"真正的 App",支持离线、推送、桌面安装 | +| [如何开发浏览器 AI 助手插件](https://datawhalechina.github.io/easy-vibe/zh-cn/stage-3/cross-platform/browser-ai-extension/) | 开发 Chrome 插件,一键总结任意网页,支持云端 API 和内置 AI | +| [如何开发 Electron 桌面程序](https://datawhalechina.github.io/easy-vibe/zh-cn/stage-3/cross-platform/electron-voice-to-text/) | 用 Electron 构建语音转文字桌面应用,支持三平台安装运行 | +| [如何快速开发并铸造 NFT](https://datawhalechina.github.io/easy-vibe/zh-cn/stage-3/cross-platform/nft-minting/) | 从零编写智能合约,部署到以太坊测试网,铸造自己的 NFT | +| [如何开发 VS Code 插件](https://datawhalechina.github.io/easy-vibe/zh-cn/stage-3/cross-platform/vscode-extension/) | 开发 AI 项目助手插件,支持模板生成、代码对话、多文件问答 | +| [如何开发工业级 Qt 桌面应用](https://datawhalechina.github.io/easy-vibe/zh-cn/stage-3/cross-platform/qt-industrial-hmi/) | 用 Qt 构建工业级水泵监控 HMI 系统,实时数据、趋势图、报警 | #### AI 能力附录 | 章节 | 关键内容 | | :---------------------------------------------------------------------------------------------------------------------------------------- | :------------------------------------------------------ | -| [什么是 RAG 以及它如何工作](https://datawhalechina.github.io/easy-vibe/zh-cn/stage-3/ai-advanced/3.a1-rag-introduction/) | 系统理解 RAG 原理与常见架构,为复杂应用提供知识检索基础 | -| [中高级 RAG 与工作流编排:以 LangGraph 为例](https://datawhalechina.github.io/easy-vibe/zh-cn/stage-3/ai-advanced/3.a2-langgraph-advanced-rag/) | 使用 LangGraph 等工具设计多步工作流与中高级 RAG 系统 | +| [什么是 RAG 以及它如何工作](https://datawhalechina.github.io/easy-vibe/zh-cn/stage-3/ai-advanced/rag-introduction/) | 系统理解 RAG 原理与常见架构,为复杂应用提供知识检索基础 | +| [中高级 RAG 与工作流编排:以 LangGraph 为例](https://datawhalechina.github.io/easy-vibe/zh-cn/stage-3/ai-advanced/langgraph-advanced-rag/) | 使用 LangGraph 等工具设计多步工作流与中高级 RAG 系统 | ### 📚 附录知识库 diff --git a/docs/.vitepress/config.mjs b/docs/.vitepress/config.mjs index 323ed64..8feaa0c 100644 --- a/docs/.vitepress/config.mjs +++ b/docs/.vitepress/config.mjs @@ -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', diff --git a/docs/.vitepress/theme/components/HomeFeatures.vue b/docs/.vitepress/theme/components/HomeFeatures.vue index 80a133c..221e621 100644 --- a/docs/.vitepress/theme/components/HomeFeatures.vue +++ b/docs/.vitepress/theme/components/HomeFeatures.vue @@ -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 = [

{{ t.footer.desc }}

{{ t.footer.btn }} diff --git a/docs/.vitepress/theme/data/relatedArticles.js b/docs/.vitepress/theme/data/relatedArticles.js index a2333be..a1050c0 100644 --- a/docs/.vitepress/theme/data/relatedArticles.js +++ b/docs/.vitepress/theme/data/relatedArticles.js @@ -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: '🧩' diff --git a/docs/DEPLOYMENT.md b/docs/DEPLOYMENT.md index 7dc3bee..205cb27 100644 --- a/docs/DEPLOYMENT.md +++ b/docs/DEPLOYMENT.md @@ -16,10 +16,10 @@ const base = isVercel ? '/' : '/easy-vibe/' | 平台 | Base 路径 | 示例 URL | | ---------------- | ------------- | ----------------------------------------------------------- | -| **Vercel** | `/` | `https://your-project.vercel.app/cn/stage-0/...` | -| **GitHub Pages** | `/easy-vibe/` | `https://datawhalechina.github.io/easy-vibe/cn/stage-0/...` | -| **本地开发** | `/easy-vibe/` | `http://localhost:5173/easy-vibe/cn/stage-0/...` | -| **本地预览** | `/easy-vibe/` | `http://localhost:4173/easy-vibe/cn/stage-0/...` | +| **Vercel** | `/` | `https://your-project.vercel.app/cn/stage-1/...` | +| **GitHub Pages** | `/easy-vibe/` | `https://datawhalechina.github.io/easy-vibe/cn/stage-1/...` | +| **本地开发** | `/easy-vibe/` | `http://localhost:5173/easy-vibe/cn/stage-1/...` | +| **本地预览** | `/easy-vibe/` | `http://localhost:4173/easy-vibe/cn/stage-1/...` | ### 首页动态链接 @@ -34,7 +34,7 @@ const base = site.value.base diff --git a/docs/ar-sa/index.md b/docs/ar-sa/index.md index f7c518a..19e75fd 100644 --- a/docs/ar-sa/index.md +++ b/docs/ar-sa/index.md @@ -17,10 +17,10 @@ hero: actions: - theme: brand text: ابدأ vibe معًا! - link: /ar-sa/stage-0/ + link: /ar-sa/stage-1/ - theme: alt text: مخطط الدورة - link: /ar-sa/stage-0/ + link: /ar-sa/stage-1/ --- diff --git a/docs/ar-sa/stage-0/index.md b/docs/ar-sa/stage-0/index.md index 82de116..9c49ed4 100644 --- a/docs/ar-sa/stage-0/index.md +++ b/docs/ar-sa/stage-0/index.md @@ -11,12 +11,12 @@ مناسب للمنتجات والعمليات والخلفيات غير التقنية. فهم منطق برمجة الذكاء الاصطناعي من خلال الألعاب وبناء الثقة: @@ -28,22 +28,22 @@ إتقان سير عمل Vibe Coding. تعلم كيفية تفكيك المتطلبات وإكمال نماذج تطبيقات الويب عالية الدقة بشكل مستقل: diff --git a/docs/de-de/index.md b/docs/de-de/index.md index 6db3db4..f8d5f5e 100644 --- a/docs/de-de/index.md +++ b/docs/de-de/index.md @@ -17,10 +17,10 @@ hero: actions: - theme: brand text: Zusammen vibe starten! - link: /de-de/stage-0/ + link: /de-de/stage-1/ - theme: alt text: Kursübersicht - link: /de-de/stage-0/ + link: /de-de/stage-1/ --- diff --git a/docs/de-de/stage-0/index.md b/docs/de-de/stage-0/index.md index 2c3f9cd..1107a08 100644 --- a/docs/de-de/stage-0/index.md +++ b/docs/de-de/stage-0/index.md @@ -11,12 +11,12 @@ In dieser Phase startest du von Null und beherrschst den Vibe Coding-Workflow, u Geeignet für Produkt, Betrieb und nicht-technische Hintergründe. Verstehe die KI-Programmierlogik durch Spiele und baue Vertrauen auf: @@ -28,22 +28,22 @@ Geeignet für Produkt, Betrieb und nicht-technische Hintergründe. Verstehe die Beherrsche den Vibe Coding-Workflow. Lerne, Anforderungen zu zerlegen und unabhängig hochfidele Webanwendungsprototypen zu vervollständigen: diff --git a/docs/en/index.md b/docs/en/index.md index ebcb370..2bb61d2 100644 --- a/docs/en/index.md +++ b/docs/en/index.md @@ -17,7 +17,7 @@ hero: actions: - theme: brand text: Start Vibe Together! - link: /en/stage-0/ + link: /en/stage-1/ - theme: alt text: GitHub link: https://github.com/datawhalechina/easy-vibe diff --git a/docs/en/stage-0/index.md b/docs/en/stage-0/index.md deleted file mode 100644 index a340cb8..0000000 --- a/docs/en/stage-0/index.md +++ /dev/null @@ -1,161 +0,0 @@ -# Build Your First AI Product - -Welcome to the **Build Your First AI Product** stage! This is the starting point of the Easy-Vibe tutorial, specifically designed for learners with zero programming background. - -## What You Will Learn - -In this stage, you will start from zero and master the Vibe Coding workflow, becoming a super individual capable of independent product design. - -### Getting Started - -Suitable for learners with product, operations, and non-technical backgrounds. Understand AI programming logic through games and build learning confidence: - - - - - - -### Product Prototype Practice - -Master the Vibe Coding workflow, learn to deconstruct requirements, and independently complete high-fidelity Web application prototypes: - - - - - - - - - -### Appendix: Business Thinking - -**Why needed**: When you need to enhance product thinking and understand industry application scenarios, this content can help you establish a more comprehensive product perspective. - -**When to watch**: -- Before starting to build a prototype, understand product thinking first to help you plan and design better. -- When you have a product idea but are unsure of the direction, refer to industry scenario cases. -- After completing the project, use product thinking to review and optimize your work. - - - - - - - -### Appendix: User Research and Validation - -**Why needed**: When you already have an idea but are not sure whether it is a real need, how to interview users, or what to validate first, this group helps you turn vague instincts into more grounded judgment. - -**When to watch**: -- When you cannot clearly explain what users are really trying to get done -- When you want to interview users without collecting only polite encouragement -- When you want to define the problem better before jumping into a solution - - - - - - - - -### Appendix: Technical Solutions - -**Why needed**: When you encounter technical problems during development or want to know better tools, these technical appendices provide ready-to-use solutions. - -**When to watch**: -- When you encounter an error and don't know how to solve it, check common errors and solutions. -- When you want to compare different AI programming tools, refer to platform measurement comparisons. -- When you want to learn more advanced development skills, check agent development cases. - - - - - - - -## Suitable for - -- Product managers and operations personnel with zero foundation -- Entrepreneurs who want to quickly validate ideas -- Non-technical individuals interested in AI programming -- Designers who hope to improve their prototype design capabilities - -## How to Learn? - -It is suggested to follow this order: - -``` -Play games to build confidence → Follow the tutorial to make a prototype → Add AI functions to the prototype → Independently complete a full project -``` - -Don't read everything at once; learning while doing is most effective. When you encounter problems, remember to check the appendix for solutions. - -Start now, select the first section in the left navigation! diff --git a/docs/en/stage-0/0.2-ai-capabilities-through-games/index.md b/docs/en/stage-1/ai-capabilities-through-games/index.md similarity index 97% rename from docs/en/stage-0/0.2-ai-capabilities-through-games/index.md rename to docs/en/stage-1/ai-capabilities-through-games/index.md index 2bbb285..8c40689 100644 --- a/docs/en/stage-0/0.2-ai-capabilities-through-games/index.md +++ b/docs/en/stage-1/ai-capabilities-through-games/index.md @@ -125,7 +125,7 @@ Now, with AI coding platforms, you only need to: This "conversation as programming" paradigm changes coding from "writing instructions" to "describing requirements". You don't need to care about low-level technical details; just clearly state what you want. This is the new programming paradigm of the AI era—**Vibe Coding**. ::: -![](../../../zh-cn/stage-0/0.2-ai-capabilities-through-games/images/index-2026-01-07-18-25-03.png) +![](../../../zh-cn/stage-1/ai-capabilities-through-games/images/index-2026-01-07-18-25-03.png) Input our simple requirement and click the **Full-stack Development** button. You can watch the webpage being built in real time. Usually, it takes just the time to brew a coffee! @@ -138,17 +138,17 @@ Help me create a Snake game: 5. The UI should be clean and elegant ``` -![](../../../zh-cn/stage-0/0.2-ai-capabilities-through-games/images/index-2026-01-07-18-34-03.png) +![](../../../zh-cn/stage-1/ai-capabilities-through-games/images/index-2026-01-07-18-34-03.png) Once generated, you will see a browsable webpage UI on the right. Scroll around or click the 🧭 button at the top to view it in full screen. > The buttons at the top from left to right are: Arrow button expands chat history, Pencil button to start a new chat, Refresh icon to rebuild the page, Compass icon to toggle fullscreen, Download button to download the project, <> button to view code, and Publish button to publish it. -![](../../../zh-cn/stage-0/0.2-ai-capabilities-through-games/images/index-2026-01-07-18-35-11.png) +![](../../../zh-cn/stage-1/ai-capabilities-through-games/images/index-2026-01-07-18-35-11.png) If you'd like to check the webpage's source code, click the code icon in the top right to view the entire codebase. -![](../../../zh-cn/stage-0/0.2-ai-capabilities-through-games/images/image7.png) +![](../../../zh-cn/stage-1/ai-capabilities-through-games/images/image7.png) ::: tip 🌐 Explore More AI Programming Tools @@ -225,23 +225,23 @@ You can simply provide these prompts: > **💡 Example Prompt:** Build me a Snake game. > -> ![](../../../zh-cn/stage-0/0.2-ai-capabilities-through-games/images/image12.png) +> ![](../../../zh-cn/stage-1/ai-capabilities-through-games/images/image12.png) > **💡 Example Prompt:** Build me a Snake game that supports: > 1. Eating different words and placing them in a collection box. > -> ![](../../../zh-cn/stage-0/0.2-ai-capabilities-through-games/images/image13.png) +> ![](../../../zh-cn/stage-1/ai-capabilities-through-games/images/image13.png) > **💡 Example Prompt:** Build a Snake game that supports: > 1. I can eat distinct words, collected in a box. > 2. When eating 8 words, the LLM generates a poem using them. > 3. An image generation API is called right after the poem is composed. > -> ![](../../../zh-cn/stage-0/0.2-ai-capabilities-through-games/images/image14.png) +> ![](../../../zh-cn/stage-1/ai-capabilities-through-games/images/image14.png) If you face any issues, just screenshot the error or tell the bot what's wrong and it will iterate the changes. -![](../../../zh-cn/stage-0/0.2-ai-capabilities-through-games/images/image15.png) +![](../../../zh-cn/stage-1/ai-capabilities-through-games/images/image15.png) ### 3.2 Add New Features to the Game @@ -294,13 +294,13 @@ If you want to learn how to write better prompts, check out the [Prompt Engineer z.ai's response will look like this: -![](../../../zh-cn/stage-0/0.2-ai-capabilities-through-games/images/image56.png) +![](../../../zh-cn/stage-1/ai-capabilities-through-games/images/image56.png) We can use this prompt to regenerate the project in full-stack development mode: -![](../../../zh-cn/stage-0/0.2-ai-capabilities-through-games/images/image57.png) +![](../../../zh-cn/stage-1/ai-capabilities-through-games/images/image57.png) -![](../../../zh-cn/stage-0/0.2-ai-capabilities-through-games/images/image58.png) +![](../../../zh-cn/stage-1/ai-capabilities-through-games/images/image58.png)
@@ -633,7 +633,7 @@ If you want to dive deeper into frontend fundamentals like HTML, CSS, and JavaSc > 💡 What is Vibe Coding? Computer scientist [Andrej Karpathy](https://karpathy.ai/) (one of the co-founders of OpenAI, former head of AI at Tesla) coined the term **vibe coding** in February 2025. This concept refers to a coding methodology that relies on LLMs, **allowing programmers to generate working code by providing natural language descriptions instead of manually writing code.** -![1767350588191](../../../zh-cn/stage-0/0.2-ai-capabilities-through-games/images/1767350588191.png) +![1767350588191](../../../zh-cn/stage-1/ai-capabilities-through-games/images/1767350588191.png) Literally, Vibe Coding can be understood as a way of "developing by talking." The core change is: you no longer need to write code line by line, look up syntax, or debug yourself. Instead, you directly describe what you want in natural language, for example: diff --git a/docs/en/stage-1/1.2-building-prototype/index.md b/docs/en/stage-1/building-prototype/index.md similarity index 94% rename from docs/en/stage-1/1.2-building-prototype/index.md rename to docs/en/stage-1/building-prototype/index.md index 20aa1af..49fead0 100644 --- a/docs/en/stage-1/1.2-building-prototype/index.md +++ b/docs/en/stage-1/building-prototype/index.md @@ -8,7 +8,7 @@ import { relatedArticlesMap } from '@theme/data/relatedArticles' const duration = 'About 8 hours' const relatedArticles = - relatedArticlesMap['en/stage-1/1.2-building-prototype'] ?? [] + relatedArticlesMap['en/stage-1/building-prototype'] ?? [] # Beginner 3: Build a Prototype Hands-On @@ -260,7 +260,7 @@ This is what must be clear before coding. Code is just a tool; **understanding u ## 2. Build a Prototype in 10 Minutes: Let AI IDE Implement the Core Gameplay ::: info 💡 Coding plan suggestion -If your current IDE feels not smart enough, or you run out of quota quickly, consider a dedicated **coding plan**. You can preview [this article](../../stage-2/backend/2.6-modern-cli/) to use Claude for coding. +If your current IDE feels not smart enough, or you run out of quota quickly, consider a dedicated **coding plan**. You can preview [this article](../../stage-2/backend/modern-cli/) to use Claude for coding. ::: Thinking is good, but avoid overthinking. Let's start from one page and build a prototype first. @@ -341,7 +341,7 @@ Requirements: ``` AI will usually output a structured prompt similar to this: -![](/zh-cn/stage-1/1.2-building-prototype/images/index-2026-01-14-14-25-56.png) +![](/zh-cn/stage-1/building-prototype/images/index-2026-01-14-14-25-56.png) You can then make small edits and pass it into your AI IDE. @@ -359,12 +359,12 @@ If you are not yet familiar with AI IDEs (Cursor, Trae, Windsurf, etc.), read th Now you already have the initial prompt. Using the first prompt style as an example, let AI help generate the project. Create/open a folder and initialize a new project: -![](/zh-cn/stage-1/1.2-building-prototype/images/index-2026-01-14-14-28-44.png) -![](/zh-cn/stage-1/1.2-building-prototype/images/index-2026-01-14-14-30-00.png) +![](/zh-cn/stage-1/building-prototype/images/index-2026-01-14-14-28-44.png) +![](/zh-cn/stage-1/building-prototype/images/index-2026-01-14-14-30-00.png) In the sidebar, choose a model you like (for example Gemini, GPT, GLM, Kimi, MiniMax), then paste the prompt from step one: -![](/zh-cn/stage-1/1.2-building-prototype/images/index-2026-01-14-14-31-41.png) +![](/zh-cn/stage-1/building-prototype/images/index-2026-01-14-14-31-41.png) After generation starts, AI will plan the folder structure, create needed files, and fill initial code. @@ -380,11 +380,11 @@ Many beginners think AI is "thinking," but it is actually paused for input. Do not forget to press Enter for confirmation where needed (some IDEs behave differently): -![](/zh-cn/stage-1/1.2-building-prototype/images/index-2026-01-14-14-33-03.png) +![](/zh-cn/stage-1/building-prototype/images/index-2026-01-14-14-33-03.png) If you encounter the screen below, it usually means the local service has already started. Click skip if needed, otherwise you may stay stuck there. (If generation is done but no preview appears, ask AI directly: "Please start this project.") -![](/zh-cn/stage-1/1.2-building-prototype/images/index-2026-01-14-14-38-11.png) +![](/zh-cn/stage-1/building-prototype/images/index-2026-01-14-14-38-11.png) ::: info 💡 Scenario explanation **Scenario**: you used `npm create vite@latest` to initialize a React + TypeScript project (`easy-vibe-web`). After creation, your computer starts a local web service so you can preview immediately. @@ -403,15 +403,15 @@ If you encounter the screen below, it usually means the local service has alread After confirmation, wait briefly, and you should see the initial result: -![](/zh-cn/stage-1/1.2-building-prototype/images/index-2026-01-14-14-50-34.png) +![](/zh-cn/stage-1/building-prototype/images/index-2026-01-14-14-50-34.png) The base function appears, but UI is rough. Now talk to AI directly to improve visual quality: -![](/zh-cn/stage-1/1.2-building-prototype/images/index-2026-01-14-15-01-16.png) +![](/zh-cn/stage-1/building-prototype/images/index-2026-01-14-15-01-16.png) After refinement, you can get a cleaner interface: -![](/zh-cn/stage-1/1.2-building-prototype/images/index-2026-01-14-15-05-16.png) +![](/zh-cn/stage-1/building-prototype/images/index-2026-01-14-15-05-16.png) Then keep iterating by need, for example: @@ -420,11 +420,11 @@ Then keep iterating by need, for example: You can even ask AI to reference established websites by attaching screenshots: -![](/zh-cn/stage-1/1.2-building-prototype/images/index-2026-01-14-15-13-12.png) +![](/zh-cn/stage-1/building-prototype/images/index-2026-01-14-15-13-12.png) Result example: -![](/zh-cn/stage-1/1.2-building-prototype/images/index-2026-01-14-15-15-18.png) +![](/zh-cn/stage-1/building-prototype/images/index-2026-01-14-15-15-18.png) ### 2.3 What to Do When Errors Happen @@ -475,12 +475,12 @@ Once the core gameplay logic is roughly generated, we can continue building rema You can ask AI to inspect against your business requirements and generate missing parts, or directly ask AI to implement unfinished pages one by one until all page interactions work: -![](/zh-cn/stage-1/1.2-building-prototype/images/index-2026-01-14-15-17-55.png) +![](/zh-cn/stage-1/building-prototype/images/index-2026-01-14-15-17-55.png) After a short wait, you can see multiple pages and interactive features added on top of the previous base: -![](/zh-cn/stage-1/1.2-building-prototype/images/index-2026-01-14-15-23-40.png) -![](/zh-cn/stage-1/1.2-building-prototype/images/index-2026-01-14-15-23-53.png) +![](/zh-cn/stage-1/building-prototype/images/index-2026-01-14-15-23-40.png) +![](/zh-cn/stage-1/building-prototype/images/index-2026-01-14-15-23-53.png) At this stage, manually click through the key flows you care about and confirm interactions. If something is not interactive, ask AI to fix it. @@ -557,17 +557,17 @@ Please generate test-data shortcuts based on the requirement below so I can quic You can quickly get a usable result (and if one case is not enough, ask AI to generate multiple test cases): -![](/zh-cn/stage-1/1.2-building-prototype/images/index-2026-01-14-15-30-30.png) +![](/zh-cn/stage-1/building-prototype/images/index-2026-01-14-15-30-30.png) Click to test: -![](/zh-cn/stage-1/1.2-building-prototype/images/index-2026-01-14-15-31-23.png) +![](/zh-cn/stage-1/building-prototype/images/index-2026-01-14-15-31-23.png) At this point, the result may appear immediately without a simulated generation process. If you want realistic delay/feedback, ask AI: "Please simulate a real generation process so after clicking, results appear after a short delay." -![](/zh-cn/stage-1/1.2-building-prototype/images/index-2026-01-14-15-50-05.png) +![](/zh-cn/stage-1/building-prototype/images/index-2026-01-14-15-50-05.png) After generation flow works, verify template-library behavior. If the "save template" interaction is missing, ask AI: @@ -575,11 +575,11 @@ After generation flow works, verify template-library behavior. If the "save temp Generation is usually iterative, and screenshots are often needed for correction: -![](/zh-cn/stage-1/1.2-building-prototype/images/index-2026-01-14-15-57-14.png) +![](/zh-cn/stage-1/building-prototype/images/index-2026-01-14-15-57-14.png) Expected final result: -![](/zh-cn/stage-1/1.2-building-prototype/images/index-2026-01-14-16-12-56.png) +![](/zh-cn/stage-1/building-prototype/images/index-2026-01-14-16-12-56.png) Besides manual user-flow testing, you can also ask AI to do requirement coverage checks: diff --git a/docs/en/stage-1/1.4-complete-project-practice/index.md b/docs/en/stage-1/complete-project-practice/index.md similarity index 100% rename from docs/en/stage-1/1.4-complete-project-practice/index.md rename to docs/en/stage-1/complete-project-practice/index.md diff --git a/docs/en/stage-1/1.0-finding-great-idea/index.md b/docs/en/stage-1/finding-great-idea/index.md similarity index 100% rename from docs/en/stage-1/1.0-finding-great-idea/index.md rename to docs/en/stage-1/finding-great-idea/index.md diff --git a/docs/en/stage-1/1.3-integrating-ai-capabilities/index.md b/docs/en/stage-1/integrating-ai-capabilities/index.md similarity index 91% rename from docs/en/stage-1/1.3-integrating-ai-capabilities/index.md rename to docs/en/stage-1/integrating-ai-capabilities/index.md index 63b48d4..c8845c1 100644 --- a/docs/en/stage-1/1.3-integrating-ai-capabilities/index.md +++ b/docs/en/stage-1/integrating-ai-capabilities/index.md @@ -8,7 +8,7 @@ import { relatedArticlesMap } from '@theme/data/relatedArticles' const duration = 'About 1 day' const relatedArticles = - relatedArticlesMap['en/stage-1/1.3-integrating-ai-capabilities'] ?? [] + relatedArticlesMap['en/stage-1/integrating-ai-capabilities'] ?? [] # Beginner Level 4: Injecting AI Capabilities into Your Prototype @@ -100,7 +100,7 @@ If you want to learn more about the underlying principles, check out the appendi Let's look at how DeepSeek compares with other top models in the GPQA benchmark rankings. Notably, DeepSeek is an open-source model (anyone can download the model from the internet), while other common models like Grok, Google Gemini, and ChatGPT are closed-source. As we can see, DeepSeek has largely caught up with the first tier of models. -![](../../../zh-cn/stage-1/1.3-integrating-ai-capabilities/images/index-2026-01-20-14-16-48.png) +![](../../../zh-cn/stage-1/integrating-ai-capabilities/images/index-2026-01-20-14-16-48.png) GPQA stands for "Graduate-Level Google-Proof Q&A Benchmark," a graduate-level benchmark for scientific question-answering tasks. Here's a detailed introduction. @@ -116,23 +116,23 @@ Follow these 3 steps to quickly integrate a large model generation API: Next, we'll walk through a demo. You can follow along with the entire process. First, register a [DeepSeek](https://platform.deepseek.com/usage) account, create an API Key, and top up a small amount for testing. -![](../../../zh-cn/stage-1/1.3-integrating-ai-capabilities/images/index-2026-01-20-13-57-41.png) +![](../../../zh-cn/stage-1/integrating-ai-capabilities/images/index-2026-01-20-13-57-41.png) -![](../../../zh-cn/stage-1/1.3-integrating-ai-capabilities/images/index-2026-01-20-13-58-13.png) +![](../../../zh-cn/stage-1/integrating-ai-capabilities/images/index-2026-01-20-13-58-13.png) Click "API KEYS" and find "create new API key" at the bottom of the screen. You'll end up with an API key that looks something like sk-8573341c39fc44315aadc071c53rh7d2. -![](../../../zh-cn/stage-1/1.3-integrating-ai-capabilities/images/index-2026-01-20-13-58-32.png) +![](../../../zh-cn/stage-1/integrating-ai-capabilities/images/index-2026-01-20-13-58-32.png) Once you have the key, you have permission to call the model. At this point, you can directly read the [API](https://api-docs.deepseek.com/) documentation, which typically provides curl or Python call examples. -![](../../../zh-cn/stage-1/1.3-integrating-ai-capabilities/images/index-2026-01-20-13-58-56.png) +![](../../../zh-cn/stage-1/integrating-ai-capabilities/images/index-2026-01-20-13-58-56.png) After finding the example, you can copy all the content from the documentation along with your key into the AI IDE's chat box, asking it to help you integrate the large language model into the prototype you've already developed. -![](../../../zh-cn/stage-1/1.3-integrating-ai-capabilities/images/index-2026-01-20-13-59-31.png) +![](../../../zh-cn/stage-1/integrating-ai-capabilities/images/index-2026-01-20-13-59-31.png) Here's a reference prompt: @@ -157,9 +157,9 @@ curl \ After some AI code generation, you'll easily get a corresponding copywriting generation button to test. If you can't find the entry point, you can ask the AI IDE to tell you which page leads to it. If you really can't find it, you can ask the AI IDE to directly refactor and improve based on your ideas to get the final copywriting generation result. -![](../../../zh-cn/stage-1/1.3-integrating-ai-capabilities/images/index-2026-01-20-14-23-23.png) +![](../../../zh-cn/stage-1/integrating-ai-capabilities/images/index-2026-01-20-14-23-23.png) -![](../../../zh-cn/stage-1/1.3-integrating-ai-capabilities/images/index-2026-01-20-14-26-35.png) +![](../../../zh-cn/stage-1/integrating-ai-capabilities/images/index-2026-01-20-14-26-35.png) Of course, you might be wondering: how do I know it's actually calling the large model and not just returning hardcoded responses? You can enter custom copy and have the large model generate corresponding content based on your custom analysis specified on the spot. @@ -225,8 +225,8 @@ If you want to learn more about the underlying principles, check out the appendi **Qwen3 VL** is the latest version in the multimodal vision-language model series developed by Alibaba Cloud's Tongyi Qianwen team. VL stands for "Vision-Language," meaning it's a vision-language model. It can understand image content and generate text descriptions based on images, answer questions about images, extract information from images, and more. -![](../../../zh-cn/stage-1/1.3-integrating-ai-capabilities/images/index-2026-01-20-14-48-27.png) -![](../../../zh-cn/stage-1/1.3-integrating-ai-capabilities/images/index-2026-01-20-14-48-41.png) +![](../../../zh-cn/stage-1/integrating-ai-capabilities/images/index-2026-01-20-14-48-27.png) +![](../../../zh-cn/stage-1/integrating-ai-capabilities/images/index-2026-01-20-14-48-41.png) **Key capabilities of Qwen3 VL include:** @@ -270,11 +270,11 @@ SiliconFlow is relatively mature in inference services for open-source large mod Go to the SiliconFlow platform homepage, where you'll see many models to choose from. Find the filter in the upper left corner, click to expand it, select the "Vision" tag, and you'll see many image-to-text models, such as Zhipu GLM-4.6V or Qwen3-VL. -![](../../../zh-cn/stage-1/1.3-integrating-ai-capabilities/images/index-2026-01-20-15-05-04.png) +![](../../../zh-cn/stage-1/integrating-ai-capabilities/images/index-2026-01-20-15-05-04.png) You can choose any one to test. Here we'll use `Qwen/Qwen3-VL-8B-Instruct` as an example. -![](../../../zh-cn/stage-1/1.3-integrating-ai-capabilities/images/index-2026-01-20-15-07-44.png) +![](../../../zh-cn/stage-1/integrating-ai-capabilities/images/index-2026-01-20-15-07-44.png) Go to the [SiliconFlow platform](https://cloud.siliconflow.cn/me/account/ak), click "Create New API Key" in the API Keys section to create a new API Key. @@ -350,9 +350,9 @@ Based on the image-to-text API below, help us implement a feature that automatic ``` Final generated result: -![](../../../zh-cn/stage-1/1.3-integrating-ai-capabilities/images/index-2026-01-20-15-34-36.png) +![](../../../zh-cn/stage-1/integrating-ai-capabilities/images/index-2026-01-20-15-34-36.png) -![](../../../zh-cn/stage-1/1.3-integrating-ai-capabilities/images/index-2026-01-20-15-35-41.png) +![](../../../zh-cn/stage-1/integrating-ai-capabilities/images/index-2026-01-20-15-35-41.png)
@@ -373,12 +373,12 @@ If you want to learn more about the underlying principles, check out the appendi ::: details Learn More: What is [Seedream](https://seed.bytedance.com/en/seedream4_5)? -![](../../../zh-cn/stage-1/1.3-integrating-ai-capabilities/images/index-2026-01-20-23-15-17.png) +![](../../../zh-cn/stage-1/integrating-ai-capabilities/images/index-2026-01-20-23-15-17.png) > You may already know Nano Banana (developed by Google), but you should not miss Seedream. Seedream 4.5 is a next-generation image creation model built by ByteDance. It integrates image generation and image editing capabilities into one unified architecture. This enables it to handle complex multimodal tasks such as knowledge-based generation, complex reasoning, and reference consistency. In addition, its inference speed is much faster than the previous generation and it can generate stunning high-definition images up to 4K resolution. > -> ![](../../../zh-cn/stage-1/1.3-integrating-ai-capabilities/images/index-2026-01-20-23-15-38.png) -> ![](../../../zh-cn/stage-1/1.3-integrating-ai-capabilities/images/index-2026-01-20-23-15-50.png) +> ![](../../../zh-cn/stage-1/integrating-ai-capabilities/images/index-2026-01-20-23-15-38.png) +> ![](../../../zh-cn/stage-1/integrating-ai-capabilities/images/index-2026-01-20-23-15-50.png) **Main capabilities:** @@ -414,29 +414,29 @@ We will demonstrate step by step how to integrate the Seedream API into your pro After visiting the [homepage](https://www.volcengine.com/experience/ark?launch=seedream), click login. -![](../../../zh-cn/stage-1/1.3-integrating-ai-capabilities/images/index-2026-01-20-23-12-07.png) +![](../../../zh-cn/stage-1/integrating-ai-capabilities/images/index-2026-01-20-23-12-07.png) After logging in, find the top-right recharge option. -![](../../../zh-cn/stage-1/1.3-integrating-ai-capabilities/images/index-2026-01-20-23-12-22.png) +![](../../../zh-cn/stage-1/integrating-ai-capabilities/images/index-2026-01-20-23-12-22.png) Real-name verification is required before recharge. -![](../../../zh-cn/stage-1/1.3-integrating-ai-capabilities/images/index-2026-01-20-23-12-30.png) +![](../../../zh-cn/stage-1/integrating-ai-capabilities/images/index-2026-01-20-23-12-30.png) After verification succeeds, you can [recharge 1 RMB for testing](https://console.volcengine.com/finance/fund/recharge). Return to the [initial page](https://www.volcengine.com/experience/ark?launch=seedream) and click API Access. -![](../../../zh-cn/stage-1/1.3-integrating-ai-capabilities/images/index-2026-01-20-23-12-43.png) +![](../../../zh-cn/stage-1/integrating-ai-capabilities/images/index-2026-01-20-23-12-43.png) First, create an API key, then click the model selection option. -![](../../../zh-cn/stage-1/1.3-integrating-ai-capabilities/images/index-2026-01-20-23-13-01.png) +![](../../../zh-cn/stage-1/integrating-ai-capabilities/images/index-2026-01-20-23-13-01.png) This takes you to step 2. Here, confirm the service model is Seedream 4.5 and copy the provided call example. (The screenshot was taken earlier, so the model version shown there is still 4.0.) -![](../../../zh-cn/stage-1/1.3-integrating-ai-capabilities/images/index-2026-01-20-23-13-11.png) +![](../../../zh-cn/stage-1/integrating-ai-capabilities/images/index-2026-01-20-23-13-11.png) Once the API Key and call example are ready, you can paste them directly into the AI IDE and ask it to generate a frontend interactive demo or integrate the capability into your current prototype. Notice that in the screenshot you can choose text-to-image or multi-image-to-single-image mode. Select the reference code according to your specific requirement. @@ -472,7 +472,7 @@ Please help me implement common ecommerce features in this project based on the Implementation result: -![](../../../zh-cn/stage-1/1.3-integrating-ai-capabilities/images/index-2026-01-20-23-21-13.png) +![](../../../zh-cn/stage-1/integrating-ai-capabilities/images/index-2026-01-20-23-21-13.png) It is worth noting that image generation often encounters odd failures. It is recommended that AI IDE always shows full error details so you can copy and debug effectively. For example, you can say: @@ -484,7 +484,7 @@ Sometimes updates after edits may still not be reflected on the page. If you kee In ecommerce scenarios, we may want clothes uploaded by users to be automatically worn by a model, or automatically generate attractive product sales images and posters. Here we try a prompt that asks for an ecommerce poster: -![](../../../zh-cn/stage-1/1.3-integrating-ai-capabilities/images/index-2026-01-20-23-14-10.png) +![](../../../zh-cn/stage-1/integrating-ai-capabilities/images/index-2026-01-20-23-14-10.png) You can combine text-to-image and image-to-image APIs based on your own business scenario ideas. @@ -500,14 +500,14 @@ If your prototype is more design-production oriented (for example brand-style il > Recraft is an AI tool for designers, illustrators, and marketers, founded in 2022 (US) with headquarters in London. It supports generating and iterating visual content (images, vector art, and 3D graphics), with strengths in output quality, element-level control, and brand-consistent design. > -> ![](../../../zh-cn/stage-1/1.3-integrating-ai-capabilities/images/index-2026-01-20-23-23-34.png) -> ![](../../../zh-cn/stage-1/1.3-integrating-ai-capabilities/images/index-2026-01-20-23-23-42.png) +> ![](../../../zh-cn/stage-1/integrating-ai-capabilities/images/index-2026-01-20-23-23-34.png) +> ![](../../../zh-cn/stage-1/integrating-ai-capabilities/images/index-2026-01-20-23-23-42.png) First, go to the [API entry](https://www.recraft.ai/profile/api) to obtain an API Key. Recraft currently does not provide a free quota in this workflow, so you'll need to top up credits yourself. -![](../../../zh-cn/stage-1/1.3-integrating-ai-capabilities/images/image40.png) +![](../../../zh-cn/stage-1/integrating-ai-capabilities/images/image40.png) Then follow the same process and use official documentation examples: @@ -529,7 +529,7 @@ If you want a relatively simple way to integrate image generation, Qwen Image is Generate a brand-new image from text prompts. You provide a description, the model interprets it and generates matching visuals. -![](../../../zh-cn/stage-1/1.3-integrating-ai-capabilities/images/index-2026-01-20-14-43-30.png) +![](../../../zh-cn/stage-1/integrating-ai-capabilities/images/index-2026-01-20-14-43-30.png) Main capabilities: @@ -550,9 +550,9 @@ Main capabilities: - **Image expansion**: Extend the image boundary and generate new content - **Smart retouching**: Auto-enhance quality, lighting, and defects -![](../../../zh-cn/stage-1/1.3-integrating-ai-capabilities/images/index-2026-01-20-14-46-17.png) -![](../../../zh-cn/stage-1/1.3-integrating-ai-capabilities/images/index-2026-01-20-14-46-29.png) -![](../../../zh-cn/stage-1/1.3-integrating-ai-capabilities/images/index-2026-01-20-14-46-33.png) +![](../../../zh-cn/stage-1/integrating-ai-capabilities/images/index-2026-01-20-14-46-17.png) +![](../../../zh-cn/stage-1/integrating-ai-capabilities/images/index-2026-01-20-14-46-29.png) +![](../../../zh-cn/stage-1/integrating-ai-capabilities/images/index-2026-01-20-14-46-33.png) Why choose the Qwen Image series: @@ -572,7 +572,7 @@ Typical use cases: Open [SiliconFlow](https://siliconflow.cn/) and use the Playground (without calling APIs) to test model effects. Use the top "Filters" option to narrow to image-generation models and choose `Qwen/Qwen-Image`. -![](../../../zh-cn/stage-1/1.3-integrating-ai-capabilities/images/index-2026-01-20-15-52-56.png) +![](../../../zh-cn/stage-1/integrating-ai-capabilities/images/index-2026-01-20-15-52-56.png) After confirming the model, check the official API reference and open the [image generation API section](https://docs.siliconflow.cn/cn/api-reference/images/images-generations). Then send the example request plus your API key to AI IDE. @@ -722,7 +722,7 @@ A practical workflow: 2. Filter by your target task (general chat / coding / vision) 3. Pick one model from the top candidates that meets your access, latency, and budget constraints -![](../../../zh-cn/stage-1/1.3-integrating-ai-capabilities/images/image.png) +![](../../../zh-cn/stage-1/integrating-ai-capabilities/images/image.png) ## Artificial Analysis diff --git a/docs/en/stage-1/1.1-introduction-to-ai-ide/index.md b/docs/en/stage-1/introduction-to-ai-ide/index.md similarity index 96% rename from docs/en/stage-1/1.1-introduction-to-ai-ide/index.md rename to docs/en/stage-1/introduction-to-ai-ide/index.md index 9b6887d..9daa5a1 100644 --- a/docs/en/stage-1/1.1-introduction-to-ai-ide/index.md +++ b/docs/en/stage-1/introduction-to-ai-ide/index.md @@ -16,7 +16,7 @@ We'll first clarify **what the difference is between an IDE and an AI IDE**, and After completing this chapter, you'll have **mastered a development workflow similar to that of professional programmers**. ::: tip 💡 Advanced Tip -If you have some programming experience and want to use more powerful tools early on, you can refer to [Modern CLI Coding Tools](../../stage-2/backend/2.6-modern-cli/) to develop using the command line. +If you have some programming experience and want to use more powerful tools early on, you can refer to [Modern CLI Coding Tools](../../stage-2/backend/modern-cli/) to develop using the command line. ::: @@ -71,13 +71,13 @@ In the early days of programming, all we needed was a simple text editor and a l You can think of an IDE as a program specifically designed to "edit, manage, run, and debug" code. Early IDEs looked very "primitive" and were operated almost entirely through the keyboard. -![](../../../zh-cn/stage-1/1.1-introduction-to-ai-ide/images/image1.png)![](../../../zh-cn/stage-1/1.1-introduction-to-ai-ide/images/image2.png) +![](../../../zh-cn/stage-1/introduction-to-ai-ide/images/image1.png)![](../../../zh-cn/stage-1/introduction-to-ai-ide/images/image2.png) Terminal Interface — Image source: https://en.wikipedia.org/wiki/File:Emacs-screenshot.png Well-known and mature "built-in IDEs" like `Vim` are commonly used for remote server operations. -![](../../../zh-cn/stage-1/1.1-introduction-to-ai-ide/images/image3.png) +![](../../../zh-cn/stage-1/introduction-to-ai-ide/images/image3.png) For greater efficiency, we need modern IDEs that support mouse interaction, typically including: @@ -87,15 +87,15 @@ For greater efficiency, we need modern IDEs that support mouse interaction, typi Modern IDEs often also include built-in tools like Git. The most popular is Microsoft's **[Visual Studio Code (VS Code)](https://code.visualstudio.com/)**, which is lightweight and extensible. While there are also professional IDEs like the JetBrains suite, VS Code is the most beginner-friendly. -![](../../../zh-cn/stage-1/1.1-introduction-to-ai-ide/images/image4.png) +![](../../../zh-cn/stage-1/introduction-to-ai-ide/images/image4.png) VS Code's core philosophy is "everything is a plugin." Through its plugin system, it supports various languages — install the Python plugin and it becomes a Python IDE, install the C++ plugin and it becomes a C++ IDE. Without plugins, it's just an advanced text editor. -![](../../../zh-cn/stage-1/1.1-introduction-to-ai-ide/images/image5.png) +![](../../../zh-cn/stage-1/introduction-to-ai-ide/images/image5.png) You can even use it to edit Markdown documents. -![](../../../zh-cn/stage-1/1.1-introduction-to-ai-ide/images/image6.png) +![](../../../zh-cn/stage-1/introduction-to-ai-ide/images/image6.png) In short, an IDE is a set of tools that helps developers write code and run programs efficiently. @@ -122,7 +122,7 @@ In the latest version of VS Code, a large language model assistant is already bu You can download and install VS Code, click the sidebar entry in the top-right corner, and open the AI feature area to experience these capabilities. -![](../../../zh-cn/stage-1/1.1-introduction-to-ai-ide/images/image7.png) +![](../../../zh-cn/stage-1/introduction-to-ai-ide/images/image7.png) However, VS Code is not the IDE with the strongest AI capabilities. For scenarios that require heavy AI-assisted coding, we often want to use "smarter, more efficient" tools — a good AI IDE can significantly save time on writing code and fixing bugs. Below we'll introduce several popular AI IDEs. You can choose any AI IDE based on your personal preference. @@ -149,7 +149,7 @@ Antigravity is a brand-new AI IDE released by Google in November 2025 alongside ### [Trae](https://www.trae.ai/) -![](../../../zh-cn/stage-1/1.1-introduction-to-ai-ide/images/image8.png) +![](../../../zh-cn/stage-1/introduction-to-ai-ide/images/image8.png) Trae is an AI programming assistant developed by ByteDance that supports over 100 programming languages and can be integrated into mainstream IDEs. Its features include: generating code from natural language, automatic debugging, and converting design mockups into React/Vue components. After its August 2025 update, Trae added smart dependency imports, rename suggestions, task checklist management, and more. SOLO mode also began supporting backend code generation and technical architecture document editing. ::: @@ -162,7 +162,7 @@ Cursor is an AI code editor developed by Anysphere, built on a customized VS Cod Currently, Cursor is arguably one of the best AI IDEs with a graphical interface in terms of overall experience, with a large user base and frequent feature updates. Its biggest drawback is the higher price — the Pro version costs about $20 per month. -![](../../../zh-cn/stage-1/1.1-introduction-to-ai-ide/images/image9.png) +![](../../../zh-cn/stage-1/introduction-to-ai-ide/images/image9.png) ::: ::: details Qoder @@ -171,7 +171,7 @@ Currently, Cursor is arguably one of the best AI IDEs with a graphical interface Qoder is an AI IDE from Alibaba that emphasizes "transparent collaboration" and "enhanced context engineering capabilities." It supports breaking tasks into multiple steps through Action Flow and tracks AI execution in real time. It also supports multi-model dynamic routing and task state machine management, making it ideal for architecture governance in medium-to-large projects and "reverse engineering" analysis of legacy systems. -![](../../../zh-cn/stage-1/1.1-introduction-to-ai-ide/images/image10.png) +![](../../../zh-cn/stage-1/introduction-to-ai-ide/images/image10.png) ::: ::: details CodeBuddy @@ -180,7 +180,7 @@ Qoder is an AI IDE from Alibaba that emphasizes "transparent collaboration" and CodeBuddy is an AI programming tool from Tencent Cloud that emphasizes Chinese language command support and enterprise-grade compliance capabilities. It offers code completion, batch code review, and multi-model switching. Its Craft agent can perform multi-file code generation and API integration. The enterprise version supports private deployment and has passed Level 3 security certification, making it suitable for industries with high data security requirements such as finance and healthcare. -![](../../../zh-cn/stage-1/1.1-introduction-to-ai-ide/images/image11.png) +![](../../../zh-cn/stage-1/introduction-to-ai-ide/images/image11.png) ::: ::: details VS Code + Cline @@ -189,9 +189,9 @@ CodeBuddy is an AI programming tool from Tencent Cloud that emphasizes Chinese l Cline is an AI programming Agent plugin for VS Code (Visual Studio Code) that can flexibly switch between different large models by configuring different API endpoints. Cline supports multimodal input, MCP tool extensions, and cost monitoring, with all operations requiring user confirmation before execution. It's ideal for quickly validating ideas or integrating with existing development workflows. Basic features are free, and the enterprise version supports deploying models in private environments. -![](../../../zh-cn/stage-1/1.1-introduction-to-ai-ide/images/image13.png) +![](../../../zh-cn/stage-1/introduction-to-ai-ide/images/image13.png) -![](../../../zh-cn/stage-1/1.1-introduction-to-ai-ide/images/image14.png) +![](../../../zh-cn/stage-1/introduction-to-ai-ide/images/image14.png) ::: ::: details Kiro @@ -266,28 +266,28 @@ We recommend beginners start with the free China CN version (download: https://w In terms of interface design, Trae is very similar to the VS Code we use daily: the same classic three-column layout with a file explorer on the left, an editing area in the center, and an extension panel on the right. -![](../../../zh-cn/stage-1/1.1-introduction-to-ai-ide/images/image17.png) +![](../../../zh-cn/stage-1/introduction-to-ai-ide/images/image17.png) The sidebar on the right is the Copilot interaction window, which can also be thought of as the Agent window. If you can't see it right away, click the sidebar icon in the top-right corner of Trae to open it. -![](../../../zh-cn/stage-1/1.1-introduction-to-ai-ide/images/image18.png) +![](../../../zh-cn/stage-1/introduction-to-ai-ide/images/image18.png) After opening the sidebar, you'll see a `Builder` option — this is the Agent mode. Simply put, it's like a "local version" of z.ai that can operate your local environment, install runtime environments, open web pages, and more. -![](../../../zh-cn/stage-1/1.1-introduction-to-ai-ide/images/image19.png) +![](../../../zh-cn/stage-1/introduction-to-ai-ide/images/image19.png) After clicking "Builder," you'll see "Chat" mode and "Builder with MCP" mode: - **Chat Mode**: Primarily used for chatting about the code in your current folder, or as a general chat model. (You can open a folder through the "File" menu in the top-left corner and edit within that folder. In this case, any files Builder creates or modifies will only happen inside this folder.) - **Builder with MCP Mode**: Provides the Agent with more available tools (such as connecting the language model with other software, querying weather, etc.). You can simply understand it as: MCP makes it easier for the language model to call various external tools. -![](../../../zh-cn/stage-1/1.1-introduction-to-ai-ide/images/image20.png) +![](../../../zh-cn/stage-1/introduction-to-ai-ide/images/image20.png) In the area below, you'll also see model selection options — click to change the current large model. In the China version, you can choose domestic models like Kimi k2 or GLM. If you're using the international version of Trae, you can also select overseas models like ChatGPT or Claude. However, since domestic large models are developing very rapidly, Kimi, Qwen, GLM, and others already offer experiences close to Claude 3.5 or 3.7 in many tasks, which is more than sufficient for daily development. There's no strict requirement to use the international or China version here. **Note that we don't recommend using Auto mode (automatic model selection). For the international version, we recommend using Gemini or GPT models. For the China version, we recommend trying domestic models like Kimi k2, Minimax, or GLM.** Different models suit different use cases — there's no dogmatic rule about which is better. When you hit a wall with one model, try switching to another. Through multiple tests, you'll find the best results for your own workflow. -![](../../../zh-cn/stage-1/1.1-introduction-to-ai-ide/images/image21.png) +![](../../../zh-cn/stage-1/introduction-to-ai-ide/images/image21.png) That's a brief introduction to Trae. Next, let's revisit what we did previously on z.ai and try doing the same thing in Trae. @@ -355,9 +355,9 @@ These free options are great for beginners. Before committing to production use, Through the interface below, you can successfully add a model (note: after selecting the model option, **make sure to scroll all the way to the bottom** — there's a "Custom Model" option. Click it to enter a model ID, where you can type the recommended model IDs like `stepfun/step-3.5-flash:free`. Also click "Get Key" below to visit the official website and obtain the corresponding API Key.) -![](../../../zh-cn/stage-1/1.1-introduction-to-ai-ide/images/index-2026-02-12-14-14-51.png) +![](../../../zh-cn/stage-1/introduction-to-ai-ide/images/index-2026-02-12-14-14-51.png) -![](../../../zh-cn/stage-1/1.1-introduction-to-ai-ide/images/index-2026-02-12-14-15-29.png) +![](../../../zh-cn/stage-1/introduction-to-ai-ide/images/index-2026-02-12-14-15-29.png) ::: ### 4.3 Step 2: Chat in the Sidebar and Have AI Design a Snake Game with React @@ -375,20 +375,20 @@ As shown in the figure below, **sometimes the AI Agent will pause during executi ::: As shown, here we need to click Run to confirm: -![](../../../zh-cn/stage-1/1.1-introduction-to-ai-ide/images/index-2026-01-09-10-52-55.png) +![](../../../zh-cn/stage-1/introduction-to-ai-ide/images/index-2026-01-09-10-52-55.png) As shown, here we just need to input y to confirm: -![](../../../zh-cn/stage-1/1.1-introduction-to-ai-ide/images/index-2026-01-09-10-53-24.png) +![](../../../zh-cn/stage-1/introduction-to-ai-ide/images/index-2026-01-09-10-53-24.png) -![](../../../zh-cn/stage-1/1.1-introduction-to-ai-ide/images/index-2026-01-09-10-26-33.png) +![](../../../zh-cn/stage-1/introduction-to-ai-ide/images/index-2026-01-09-10-26-33.png) As shown, here we are creating a template but don't know how to operate. We can take a screenshot of this part and ask the large model: -![](../../../zh-cn/stage-1/1.1-introduction-to-ai-ide/images/index-2026-01-09-10-29-12.png) +![](../../../zh-cn/stage-1/introduction-to-ai-ide/images/index-2026-01-09-10-29-12.png) Another reason the AI Agent pauses during execution is because it has started a "service." Our Snake game itself is a type of "service." If you see a URL with the following command, it means the Agent has executed a local computer service for us. We can visit the corresponding URL to access our Snake game. Since the service needs to run continuously, it will pause here. We just need to click the `Skip` button. -![](../../../zh-cn/stage-1/1.1-introduction-to-ai-ide/images/index-2026-01-09-10-30-51.png) +![](../../../zh-cn/stage-1/introduction-to-ai-ide/images/index-2026-01-09-10-30-51.png) During this process, if you encounter some terms and content you don't understand, don't worry. You can refer to the "Computer Terminology Explanation" section in the appendix, or directly consult AI, or ask questions in time! @@ -396,13 +396,13 @@ If you encounter unexpected phenomena during the process, such as the snake not After a short while, we can get results similar to z.ai: -![](../../../zh-cn/stage-1/1.1-introduction-to-ai-ide/images/index-2026-01-09-10-33-37.png) +![](../../../zh-cn/stage-1/introduction-to-ai-ide/images/index-2026-01-09-10-33-37.png) We can click the checkmark in the bottom right corner to confirm code changes, or click the `Cancel` button to cancel changes. Or click on the "2 files need review" area to expand and view the modified code. It's also worth noting that since code modifications may not always be correct, we need to know that all IDE Agents support code rollback. For example, if I accidentally made a wrong modification operation here, or if the result of this operation is unsatisfactory, after the modification is complete, we can return to the input box area and click the Revert button to roll back the operation to the state before modification. You can modify the input text for another operation: -![](../../../zh-cn/stage-1/1.1-introduction-to-ai-ide/images/index-2026-01-09-10-42-53.png) +![](../../../zh-cn/stage-1/introduction-to-ai-ide/images/index-2026-01-09-10-42-53.png) ### 4.4 Step 3 (Optional): Ask AI About Code Implementation Details @@ -412,7 +412,7 @@ A practical approach is to have AI first give an overall explanation of "how the > "Please explain from top to bottom how this Snake game moves step by step? Try to use as few technical terms as possible." -![](../../../zh-cn/stage-1/1.1-introduction-to-ai-ide/images/index-2026-01-09-10-44-36.png) +![](../../../zh-cn/stage-1/introduction-to-ai-ide/images/index-2026-01-09-10-44-36.png) Then follow up on key points based on its answer, such as: @@ -465,15 +465,15 @@ At this stage, if a modification causes an error, you don't need to troubleshoot For vibe coding beginners, the hardest thing is not knowing what counts as "best practices" or what architecture is most suitable; because you don't know computer basics, you can't guide AI well. The solution to this problem is "direct reference." Remember when we said you can view code in z.ai? In fact, the corresponding README (the part used in projects to introduce functionality and technical architecture) already gives a best architecture reference: -![](../../../zh-cn/stage-1/1.1-introduction-to-ai-ide/images/index-2026-01-09-10-49-33.png) +![](../../../zh-cn/stage-1/introduction-to-ai-ide/images/index-2026-01-09-10-49-33.png) If we want the local result to match the z.ai result as closely as possible, we can copy all the content of this README and paste it into Trae's sidebar, asking it to modify the local code according to the README architecture. -![](../../../zh-cn/stage-1/1.1-introduction-to-ai-ide/images/index-2026-01-09-10-50-31.png) +![](../../../zh-cn/stage-1/introduction-to-ai-ide/images/index-2026-01-09-10-50-31.png) Finally, we can get page design styles highly similar to z.ai: -![](../../../zh-cn/stage-1/1.1-introduction-to-ai-ide/images/index-2026-01-09-11-00-57.png) +![](../../../zh-cn/stage-1/introduction-to-ai-ide/images/index-2026-01-09-11-00-57.png)
@@ -490,7 +490,7 @@ Finally, we can get page design styles highly similar to z.ai: In the above operations, we've quickly run through the minimum program generation loop, but we're still not familiar with the IDE. To thoroughly familiarize ourselves with this tool that we'll be working with long-term, we'll provide in-depth explanations of every detail of the IDE in this section. Starting with the interface, different AI IDEs have slightly different interfaces, but most follow the [VS Code layout](https://code.visualstudio.com/docs/getstarted/getting-started). -![](../../../zh-cn/stage-1/1.1-introduction-to-ai-ide/images/image32.webp) +![](../../../zh-cn/stage-1/introduction-to-ai-ide/images/image32.webp) The specific function of each part is: diff --git a/docs/en/stage-0/0.1-learning-map/index.md b/docs/en/stage-1/learning-map/index.md similarity index 100% rename from docs/en/stage-0/0.1-learning-map/index.md rename to docs/en/stage-1/learning-map/index.md diff --git a/docs/en/stage-2/ai-capabilities/2.1-dify-knowledge-base/index.md b/docs/en/stage-2/ai-capabilities/dify-knowledge-base/index.md similarity index 89% rename from docs/en/stage-2/ai-capabilities/2.1-dify-knowledge-base/index.md rename to docs/en/stage-2/ai-capabilities/dify-knowledge-base/index.md index acffff5..ed3b190 100644 --- a/docs/en/stage-2/ai-capabilities/2.1-dify-knowledge-base/index.md +++ b/docs/en/stage-2/ai-capabilities/dify-knowledge-base/index.md @@ -45,7 +45,7 @@ To upgrade AI from chat companion to digital employee, we need to give it three This is the prototype of an AI Agent: an automation unit with goals, knowledge, tools, and an execution path. -![](/zh-cn/stage-2/ai-capabilities/2.1-dify-knowledge-base/images/image1.png) +![](/zh-cn/stage-2/ai-capabilities/dify-knowledge-base/images/image1.png) > Note: In current industry usage, "simple agents" usually mean enhanced applications built from LLM + tools + knowledge base, not fully autonomous planning agents. Even though these simple agents do not have true long-horizon reasoning and planning, they are already enough for many enterprise automation scenarios. We will introduce truly autonomous agents in later chapters. @@ -63,7 +63,7 @@ One solution is Retrieval-Augmented Generation (RAG). The core RAG idea is: when a user asks a question, the system first retrieves the most semantically relevant text chunks from enterprise knowledge (for example, one paragraph from a product manual, one policy clause from HR docs), then injects these chunks into model context so the answer is generated based on real source material. -![](/zh-cn/stage-2/ai-capabilities/2.1-dify-knowledge-base/images/image2.png) +![](/zh-cn/stage-2/ai-capabilities/dify-knowledge-base/images/image2.png) Image source: [https://www.datacamp.com/blog/what-is-retrieval-augmented-generation-rag](https://www.datacamp.com/blog/what-is-retrieval-augmented-generation-rag) @@ -71,7 +71,7 @@ This means responses no longer rely only on generalized training knowledge. They In real business, this is especially important because models can hallucinate. For example, if you ask for concrete metrics as a CFO or consultant, a model may fabricate dates and events. With RAG, controllability and reliability improve significantly. -![](/zh-cn/stage-2/ai-capabilities/2.1-dify-knowledge-base/images/image3.png) +![](/zh-cn/stage-2/ai-capabilities/dify-knowledge-base/images/image3.png) Image source: [https://www.databricks.com/glossary/retrieval-augmented-generation-rag](https://www.databricks.com/glossary/retrieval-augmented-generation-rag) @@ -99,7 +99,7 @@ If we rely only on a single LLM to reason freely, it is hard to execute the enti This leads to a higher-level AI application pattern: AI Workflow. -![](/zh-cn/stage-2/ai-capabilities/2.1-dify-knowledge-base/images/image4.png) +![](/zh-cn/stage-2/ai-capabilities/dify-knowledge-base/images/image4.png) Workflow means decomposing a complex task into ordered, configurable, automatically executable sub-steps, then orchestrating logic between steps (conditionals, loops, parallelism) visually or via code. Turning AI capability into SOP means solidifying "how AI completes this task" into reusable templates. @@ -109,7 +109,7 @@ AI workflow users are broad. Product managers can design full interaction flows Also note that AI workflows are usually described by an intermediate representation. Platform specifics differ, but most use structured files (JSON, YAML, etc.) to define node types, inputs/outputs, and execution logic, as shown below: -![](/zh-cn/stage-2/ai-capabilities/2.1-dify-knowledge-base/images/image5.png) +![](/zh-cn/stage-2/ai-capabilities/dify-knowledge-base/images/image5.png) In short, if agents let AI move from "can chat" to "can do," workflows let AI move from "occasionally complete one task" to "stably, reliably, and at scale complete a class of tasks." In the following practice, we will build a full AI workflow on Dify and experience the full path from idea to runnable app. @@ -142,11 +142,11 @@ All three support exposing built agents as standardized APIs, enabling seamless Dify is positioned as an LLM application development and operations platform, focused on full lifecycle management from idea to deployment to optimization. Its core is a low-code platform helping developers and non-technical innovators rapidly build production-grade AI applications. -![](/zh-cn/stage-2/ai-capabilities/2.1-dify-knowledge-base/images/image6.png) +![](/zh-cn/stage-2/ai-capabilities/dify-knowledge-base/images/image6.png) Feature-wise, Dify includes visual workflow orchestration, agent building, knowledge-base management, and multi-model support. You can design complex processes by dragging nodes and create intent-based agents. Its knowledge-base capability can process many document formats and support efficient vector retrieval. Dify supports GPT, Claude, and many open-source models, and can publish apps as standard APIs with one click. -![](/zh-cn/stage-2/ai-capabilities/2.1-dify-knowledge-base/images/image7.png) +![](/zh-cn/stage-2/ai-capabilities/dify-knowledge-base/images/image7.png) Architecturally, Dify emphasizes open source and private deployment, with flexibility, extensibility, and enterprise compliance. Typical users include developer teams and business innovators. Typical use cases include enterprise knowledge QA/customer support, content automation, vertical AI assistants, and enterprise AI middle platforms. @@ -154,11 +154,11 @@ Architecturally, Dify emphasizes open source and private deployment, with flexib Coze is ByteDance's AI agent platform. Its core value is extreme usability, allowing users with no programming background to create, debug, and publish rich AI chatbots. -![](/zh-cn/stage-2/ai-capabilities/2.1-dify-knowledge-base/images/image8.png) +![](/zh-cn/stage-2/ai-capabilities/dify-knowledge-base/images/image8.png) Its core interaction is "building blocks." Users can configure bot roles and knowledge bases via UI, and use rich built-in plugin libraries for external capabilities such as news, travel, and image generation. Built bots can be published with one click to Doubao, Feishu, WeChat Official Account, and other channels. -![](/zh-cn/stage-2/ai-capabilities/2.1-dify-knowledge-base/images/image9.png) +![](/zh-cn/stage-2/ai-capabilities/dify-knowledge-base/images/image9.png) Its architecture is designed around low-threshold usage, integrating ByteDance models behind cloud services and abstracting complex flow details, with emphasis on multimodal understanding and real-time responses. Private deployment capability is relatively limited. Typical scenarios include personal assistant and entertainment bots, customer QA systems, online learning assistants, and rapid prototyping. @@ -168,7 +168,7 @@ n8n is a general-purpose programmable workflow automation platform. Its core pos It supports hundreds of SaaS services, databases, and protocols through a large integration-node ecosystem, and combines visual design with code: you can drag nodes on canvas while injecting JavaScript/Python for custom logic. n8n is strong in backend, data-intensive workflows such as sync, ETL, and API orchestration. -![](/zh-cn/stage-2/ai-capabilities/2.1-dify-knowledge-base/images/image10.png) +![](/zh-cn/stage-2/ai-capabilities/dify-knowledge-base/images/image10.png) Its key technical characteristic is visible source code and self-hosting, allowing full control of data and environment. This is especially attractive for industries with strict data-security requirements. Main users are developers, technical operators, and data analysts. n8n's biggest strength is its powerful community ecosystem: rich online tutorials and shared templates lower learning cost. It also connects to global ecosystems such as YouTube and Instagram, helping users break cross-platform data/service barriers. @@ -188,7 +188,7 @@ We already covered basic Dify introduction earlier. For more details, visit [htt Dify is an open-source platform for developing LLM applications. It provides an intuitive interface that combines agent workflows, RAG pipelines, tool capabilities, model management, and observability, helping you move quickly from prototype to production. -![](/zh-cn/stage-2/ai-capabilities/2.1-dify-knowledge-base/images/image11.png) +![](/zh-cn/stage-2/ai-capabilities/dify-knowledge-base/images/image11.png) In Dify, you can combine large models and many tools to build a "workflow." A workflow is a business-logic chain that automates operations you would otherwise do manually step by step, such as data retrieval, LLM calls, web search, result filtering, and format organization. Without workflows, you repeatedly copy/paste similar prompts, which is inefficient, error-prone, and hard to reuse in real business. @@ -203,7 +203,7 @@ For example, if you run an Amazon or Douyin e-commerce store and want an AI cust 5. Condition node: checks whether response includes clear warranty period terms (for example "1 year" or "3 years"). If yes, continue; if no, return "please provide product model." 6. Output node (`ANSWER`): returns final answer and logs this consultation into a table automatically. -![](/zh-cn/stage-2/ai-capabilities/2.1-dify-knowledge-base/images/image12.png) +![](/zh-cn/stage-2/ai-capabilities/dify-knowledge-base/images/image12.png) In this process, you do not manually browse docs, repeatedly tune outputs, or separately log data. The workflow chains it all automatically. It is also flexible: if later you add a new rule like "when user asks warranty coverage, query another KB," just add one conditional node instead of rebuilding the system. @@ -214,9 +214,9 @@ This is a relatively simple workflow example. Fully mastering all capabilities m This part was originally scheduled for later lessons. Because some learners currently cannot access Dify official cloud due to network constraints, we provide this optional path earlier so you can continue smoothly. You need to reference this tutorial for basic web deployment platform usage: -[How to Deploy a Web Application](/en/stage-2/backend/2.5-zeabur-deployment/) +[How to Deploy a Web Application](/en/stage-2/backend/zeabur-deployment/) -![](/zh-cn/stage-2/ai-capabilities/2.1-dify-knowledge-base/images/image13.png) +![](/zh-cn/stage-2/ai-capabilities/dify-knowledge-base/images/image13.png) Learn how to deploy your own Dify on Zeabur. After deployment, register and log in via your deployment URL, then continue with the steps below. @@ -226,21 +226,21 @@ Note: different Dify versions may have small UI/operation differences, but overa Visit Dify home page [https://cloud.dify.ai/apps](https://cloud.dify.ai/apps), register and log in, then choose Studio. You will see an interface similar to: -![](/zh-cn/stage-2/ai-capabilities/2.1-dify-knowledge-base/images/image14.png) +![](/zh-cn/stage-2/ai-capabilities/dify-knowledge-base/images/image14.png) Find `CREATE APP` on the left and click `Create from Blank`. -![](/zh-cn/stage-2/ai-capabilities/2.1-dify-knowledge-base/images/image15.png) +![](/zh-cn/stage-2/ai-capabilities/dify-knowledge-base/images/image15.png) -![](/zh-cn/stage-2/ai-capabilities/2.1-dify-knowledge-base/images/image16.png) +![](/zh-cn/stage-2/ai-capabilities/dify-knowledge-base/images/image16.png) In APP Type, choose Chatbot (if not visible at first, click "see more types" and find it in full list). Then fill app name and description and click create. -![](/zh-cn/stage-2/ai-capabilities/2.1-dify-knowledge-base/images/image17.png) +![](/zh-cn/stage-2/ai-capabilities/dify-knowledge-base/images/image17.png) After creation, you will see an interface like this: -![](/zh-cn/stage-2/ai-capabilities/2.1-dify-knowledge-base/images/image18.png) +![](/zh-cn/stage-2/ai-capabilities/dify-knowledge-base/images/image18.png) The middle "INSTRUCTIONS" area means built-in instructions (default/system prompt). @@ -250,11 +250,11 @@ The right panel is the debug window where you can test interactions in real time You can type your own role prompt in INSTRUCTIONS, or click Generate to let the model draft one. -![](/zh-cn/stage-2/ai-capabilities/2.1-dify-knowledge-base/images/image19.png) +![](/zh-cn/stage-2/ai-capabilities/dify-knowledge-base/images/image19.png) Note the top-right model choices: you can switch different models and compare differences in tone, reasoning, and long-context handling to pick what best fits your needs. -![](/zh-cn/stage-2/ai-capabilities/2.1-dify-knowledge-base/images/image20.png) +![](/zh-cn/stage-2/ai-capabilities/dify-knowledge-base/images/image20.png) ## 2.3 Support Custom Model Providers @@ -269,45 +269,45 @@ Detailed steps: 2. https://marketplace.dify.ai/plugins/langgenius/siliconflow 2. If you self-hosted Dify, go to plugin marketplace in system settings and install there. -![](/zh-cn/stage-2/ai-capabilities/2.1-dify-knowledge-base/images/image21.png) +![](/zh-cn/stage-2/ai-capabilities/dify-knowledge-base/images/image21.png) -![](/zh-cn/stage-2/ai-capabilities/2.1-dify-knowledge-base/images/image22.png) +![](/zh-cn/stage-2/ai-capabilities/dify-knowledge-base/images/image22.png) After entering plugin marketplace, search plugin names directly. -![](/zh-cn/stage-2/ai-capabilities/2.1-dify-knowledge-base/images/image23.png) +![](/zh-cn/stage-2/ai-capabilities/dify-knowledge-base/images/image23.png) 3. After installation, configure model providers. In settings -> model providers, you can see all currently supported providers: - ![](/zh-cn/stage-2/ai-capabilities/2.1-dify-knowledge-base/images/image24.png) + ![](/zh-cn/stage-2/ai-capabilities/dify-knowledge-base/images/image24.png) 4. Before use, complete model config first. For OpenAI-API-compatible plugin, click "Add Model" and configure any model. In "Model Type," select whether it is LLM or Embedding, and ensure type is correct. You need model name, endpoint URL, and API key to enable it. If this feels cumbersome initially, you can skip to SiliconFlow key setup or install OpenRouter plugin for easier provider support (ensure your provider account has remaining quota). - ![](/zh-cn/stage-2/ai-capabilities/2.1-dify-knowledge-base/images/image25.png) + ![](/zh-cn/stage-2/ai-capabilities/dify-knowledge-base/images/image25.png) For `SiliconFlow`, just click Setup and configure key to use Embedding/Rerank for testing. You can click "Get your API Key from SiliconFlow" to obtain credentials. - ![](/zh-cn/stage-2/ai-capabilities/2.1-dify-knowledge-base/images/image26.png) + ![](/zh-cn/stage-2/ai-capabilities/dify-knowledge-base/images/image26.png) 5. After configuration, open model list to inspect supported models. Basic model setup is now complete. - ![](/zh-cn/stage-2/ai-capabilities/2.1-dify-knowledge-base/images/image27.png) + ![](/zh-cn/stage-2/ai-capabilities/dify-knowledge-base/images/image27.png) It supports most common Embedding and Rerank models: - ![](/zh-cn/stage-2/ai-capabilities/2.1-dify-knowledge-base/images/image28.png) + ![](/zh-cn/stage-2/ai-capabilities/dify-knowledge-base/images/image28.png) If you want to modify Dify's default model set, click `System Model Settings` and update defaults. - ![](/zh-cn/stage-2/ai-capabilities/2.1-dify-knowledge-base/images/image29.png) + ![](/zh-cn/stage-2/ai-capabilities/dify-knowledge-base/images/image29.png) ## 2.4 Create Your First Dify Knowledge Base At this point, we created a basic agent, but it still lacks a knowledge base. Click `Knowledge` in the top menu to enter knowledge-base creation. -![](/zh-cn/stage-2/ai-capabilities/2.1-dify-knowledge-base/images/image30.png) +![](/zh-cn/stage-2/ai-capabilities/dify-knowledge-base/images/image30.png) Then click `Create Knowledge` on the left to create your first knowledge base. -![](/zh-cn/stage-2/ai-capabilities/2.1-dify-knowledge-base/images/image31.png) +![](/zh-cn/stage-2/ai-capabilities/dify-knowledge-base/images/image31.png) On this page, you can upload many file types (PDF, TXT, etc.) to build knowledge. You can upload long text or copy Wikipedia content into TXT and upload. In this example we upload an Elon Musk Wikipedia TXT file. @@ -317,7 +317,7 @@ First in **General** settings, this is the "text chunking rules" area. Because l You can also adjust **Chunk overlap**. It controls whether adjacent chunks preserve overlapping content. Proper overlap helps avoid splitting critical information across chunks in a way that harms comprehension. -![](/zh-cn/stage-2/ai-capabilities/2.1-dify-knowledge-base/images/image32.png) +![](/zh-cn/stage-2/ai-capabilities/dify-knowledge-base/images/image32.png) There is also **Chunk using Q&A format in English**. When enabled, the system uses LLM to convert part of knowledge into Q&A format before storage, which can significantly improve retrieval in some scenarios. @@ -329,7 +329,7 @@ Simple explanation: Embedding models convert unstructured data (text, images, et Embedding choice significantly affects retrieval quality (accuracy, latency, etc.). Here we recommend starting with Qwen 0.6B Embedding. You can switch to 4B or 8B and compare parameter-scale impact. -![](/zh-cn/stage-2/ai-capabilities/2.1-dify-knowledge-base/images/image33.png) +![](/zh-cn/stage-2/ai-capabilities/dify-knowledge-base/images/image33.png) You will also see **Rerank model**, default **Jina-rerank-m0**. (If you are outside campus environment, you may see missing Rerank model errors. In that case configure rerank model in model provider settings first.) @@ -337,33 +337,33 @@ Rerank's purpose is second-stage fine sorting over initial candidates, moving re Simple intuition: rerank solves "first-stage retrieval not refined enough." Search engines may retrieve 1000 potential pages by simple rules, then rerank top 10 for page one. Recommenders work similarly: from 500 possible items, rerank promotes most likely conversions. -![](/zh-cn/stage-2/ai-capabilities/2.1-dify-knowledge-base/images/image34.png) +![](/zh-cn/stage-2/ai-capabilities/dify-knowledge-base/images/image34.png) After settings are complete, click **Save & Process** to start vectorization. Embedding models transform chunked text into vectors at this stage. -![](/zh-cn/stage-2/ai-capabilities/2.1-dify-knowledge-base/images/image35.png) +![](/zh-cn/stage-2/ai-capabilities/dify-knowledge-base/images/image35.png) After processing finishes, click **Go to document** to inspect processed/stored KB content. -![](/zh-cn/stage-2/ai-capabilities/2.1-dify-knowledge-base/images/image36.png) +![](/zh-cn/stage-2/ai-capabilities/dify-knowledge-base/images/image36.png) Click KB name directly to view each chunk detail. -![](/zh-cn/stage-2/ai-capabilities/2.1-dify-knowledge-base/images/image37.png) +![](/zh-cn/stage-2/ai-capabilities/dify-knowledge-base/images/image37.png) You can precisely edit or delete unsuitable chunks here. -![](/zh-cn/stage-2/ai-capabilities/2.1-dify-knowledge-base/images/image38.png) +![](/zh-cn/stage-2/ai-capabilities/dify-knowledge-base/images/image38.png) In left sidebar, choose **Retrieval Testing** to test recall and verify retrieval quality. Each test returns several highest-similarity chunks. -![](/zh-cn/stage-2/ai-capabilities/2.1-dify-knowledge-base/images/image39.png) +![](/zh-cn/stage-2/ai-capabilities/dify-knowledge-base/images/image39.png) If you want more retrieved chunks, click `VECTOR SEARCH` settings: -![](/zh-cn/stage-2/ai-capabilities/2.1-dify-knowledge-base/images/image40.png) +![](/zh-cn/stage-2/ai-capabilities/dify-knowledge-base/images/image40.png) -![](/zh-cn/stage-2/ai-capabilities/2.1-dify-knowledge-base/images/image41.png) +![](/zh-cn/stage-2/ai-capabilities/dify-knowledge-base/images/image41.png) Top K means number of most similar text chunks returned from vector search. Current value 3 means top 3 chunks are returned. @@ -371,15 +371,15 @@ Score Threshold is a minimum score filter: only chunks with similarity score >= Now KB setup is complete. Next, click top menu "studio," find the agent we created earlier, and connect this KB. -![](/zh-cn/stage-2/ai-capabilities/2.1-dify-knowledge-base/images/image42.png) +![](/zh-cn/stage-2/ai-capabilities/dify-knowledge-base/images/image42.png) -![](/zh-cn/stage-2/ai-capabilities/2.1-dify-knowledge-base/images/image43.png) +![](/zh-cn/stage-2/ai-capabilities/dify-knowledge-base/images/image43.png) In each chat round, you can now see cited knowledge sources in the response. Click entries to inspect retrieved text chunks. -![](/zh-cn/stage-2/ai-capabilities/2.1-dify-knowledge-base/images/image44.png) +![](/zh-cn/stage-2/ai-capabilities/dify-knowledge-base/images/image44.png) -![](/zh-cn/stage-2/ai-capabilities/2.1-dify-knowledge-base/images/image45.png) +![](/zh-cn/stage-2/ai-capabilities/dify-knowledge-base/images/image45.png) ## 2.5 More Common Dify Operations @@ -391,11 +391,11 @@ Remember intermediate representation mentioned earlier? Dify supports importing/ In practice, you can find import entry on workflow workspace: -![](/zh-cn/stage-2/ai-capabilities/2.1-dify-knowledge-base/images/image46.png) +![](/zh-cn/stage-2/ai-capabilities/dify-knowledge-base/images/image46.png) For export, click the lower-right corner of a workflow block to find export action: -![](/zh-cn/stage-2/ai-capabilities/2.1-dify-knowledge-base/images/image47.png) +![](/zh-cn/stage-2/ai-capabilities/dify-knowledge-base/images/image47.png) Using DSL makes migration/sharing of complex workflows across Dify instances straightforward. @@ -403,7 +403,7 @@ Using DSL makes migration/sharing of complex workflows across Dify instances str If your own workflow feels too simple, Dify provides rich sample projects for learning more advanced application construction. These examples cover many business scenarios. Click Explore to view workflows built by others. -![](/zh-cn/stage-2/ai-capabilities/2.1-dify-knowledge-base/images/image48.png) +![](/zh-cn/stage-2/ai-capabilities/dify-knowledge-base/images/image48.png) ## 2.6 Create Your First Dify Workflow App @@ -411,9 +411,9 @@ After starting with chatbot-style agents, we now build more complex business wor You can create from blank or from templates. Here we demonstrate creating from blank: -![](/zh-cn/stage-2/ai-capabilities/2.1-dify-knowledge-base/images/image49.png) +![](/zh-cn/stage-2/ai-capabilities/dify-knowledge-base/images/image49.png) -![](/zh-cn/stage-2/ai-capabilities/2.1-dify-knowledge-base/images/image50.png) +![](/zh-cn/stage-2/ai-capabilities/dify-knowledge-base/images/image50.png) Here you will see Chatflow and Workflow. How do you choose? Decide based on whether your core need is continuous conversation or task pipeline execution. @@ -432,7 +432,7 @@ If first three are yes, Chatflow is ideal (customer support, tutoring, creative Here we choose Chatflow for demonstration and enter workspace: -![](/zh-cn/stage-2/ai-capabilities/2.1-dify-knowledge-base/images/image51.png) +![](/zh-cn/stage-2/ai-capabilities/dify-knowledge-base/images/image51.png) Quick interface tour: the center canvas is where you visually build app logic. A basic workflow usually starts at `START` (input), passes data through links into `LLM`, and outputs through `ANSWER`. Each node is a function module; links determine execution order. @@ -448,19 +448,19 @@ Dify provides many node types. First understand each node's role. For practical Right-click canvas and choose `Add Node`, or inspect all available nodes from side panel: -![](/zh-cn/stage-2/ai-capabilities/2.1-dify-knowledge-base/images/image52.png) +![](/zh-cn/stage-2/ai-capabilities/dify-knowledge-base/images/image52.png) You can also open tool selection panel to view callable tool categories: -![](/zh-cn/stage-2/ai-capabilities/2.1-dify-knowledge-base/images/image53.png) +![](/zh-cn/stage-2/ai-capabilities/dify-knowledge-base/images/image53.png) Below is a brief intro to common nodes/tools. You do not need to master all at once. Keep a basic mental map and learn progressively in practice. 1. LLM and reasoning nodes -![](/zh-cn/stage-2/ai-capabilities/2.1-dify-knowledge-base/images/image54.png) +![](/zh-cn/stage-2/ai-capabilities/dify-knowledge-base/images/image54.png) -![](/zh-cn/stage-2/ai-capabilities/2.1-dify-knowledge-base/images/image55.png) +![](/zh-cn/stage-2/ai-capabilities/dify-knowledge-base/images/image55.png) These nodes are core processing components: @@ -472,7 +472,7 @@ These nodes are core processing components: 2. Logic and flow-control nodes -![](/zh-cn/stage-2/ai-capabilities/2.1-dify-knowledge-base/images/image56.png) +![](/zh-cn/stage-2/ai-capabilities/dify-knowledge-base/images/image56.png) These nodes define execution path/rules: @@ -482,7 +482,7 @@ These nodes define execution path/rules: 3. Data operation and integration nodes -![](/zh-cn/stage-2/ai-capabilities/2.1-dify-knowledge-base/images/image57.png) +![](/zh-cn/stage-2/ai-capabilities/dify-knowledge-base/images/image57.png) - Code node: executes custom logic for data transform, complex computation, etc. Focus on syntax correctness and runtime compatibility. - Template node: fills dynamic data into templates (custom copy/report skeleton). Focus on template syntax and variable mapping. @@ -495,7 +495,7 @@ These nodes define execution path/rules: ### 2.6.2 Common Tools -![](/zh-cn/stage-2/ai-capabilities/2.1-dify-knowledge-base/images/image58.png) +![](/zh-cn/stage-2/ai-capabilities/dify-knowledge-base/images/image58.png) In Dify, most tools can be used directly as canvas nodes and connected like other nodes. As long as your input matches expected parameters, the tool runs and outputs results for downstream processing. @@ -563,15 +563,15 @@ Now define node architecture. Beginners often do not know what nodes to use (and In this tutorial we choose Workflow (not Chatflow). Select User Input: -![](/zh-cn/stage-2/ai-capabilities/2.1-dify-knowledge-base/images/image59.png) +![](/zh-cn/stage-2/ai-capabilities/dify-knowledge-base/images/image59.png) Then click Start -> User Input and define a string variable `user_text` as global flow input source. -![](/zh-cn/stage-2/ai-capabilities/2.1-dify-knowledge-base/images/image60.png) +![](/zh-cn/stage-2/ai-capabilities/dify-knowledge-base/images/image60.png) Save and click Test Run (top right). You will be prompted to provide test text. -![](/zh-cn/stage-2/ai-capabilities/2.1-dify-knowledge-base/images/image61.png) +![](/zh-cn/stage-2/ai-capabilities/dify-knowledge-base/images/image61.png) Next click `+` after input node and add Question Classifier. Configure four labels, each with clear description and examples: @@ -589,13 +589,13 @@ If complaint is minor and primary intent is ordering, classify as buy_food. If truly hard to determine, use other as fallback. ``` -![](/zh-cn/stage-2/ai-capabilities/2.1-dify-knowledge-base/images/image62.png) +![](/zh-cn/stage-2/ai-capabilities/dify-knowledge-base/images/image62.png) After setup, use top-right play icon on this node to test classification. -![](/zh-cn/stage-2/ai-capabilities/2.1-dify-knowledge-base/images/image63.png) +![](/zh-cn/stage-2/ai-capabilities/dify-knowledge-base/images/image63.png) -![](/zh-cn/stage-2/ai-capabilities/2.1-dify-knowledge-base/images/image64.png) +![](/zh-cn/stage-2/ai-capabilities/dify-knowledge-base/images/image64.png) From OUTPUT we can see classification is accurate. Test multiple input types to verify classifier stability. @@ -633,11 +633,11 @@ Important: in each node, after setting SYSTEM prompt, enable USER prompt variabl As always, click node-level play icon to test with sample input such as "I want bubble milk tea" and verify behavior. -![](/zh-cn/stage-2/ai-capabilities/2.1-dify-knowledge-base/images/image65.png) +![](/zh-cn/stage-2/ai-capabilities/dify-knowledge-base/images/image65.png) Next process parallel branch outputs. In `Variable Aggregator`, find `ASSIGN VARIABLES` and add branch outputs one by one. -![](/zh-cn/stage-2/ai-capabilities/2.1-dify-knowledge-base/images/image66.png) +![](/zh-cn/stage-2/ai-capabilities/dify-knowledge-base/images/image66.png) Now aggregate final output including user input, intent, and reply. Because this is Workflow (not Chatflow), there is no Answer node for this exact structure, so we can use Template node for equivalent output packaging. In variable area specify intent result, user input, and aggregator final reply. In CODE, write final JSON template: @@ -653,11 +653,11 @@ Now aggregate final output including user input, intent, and reply. Because this } ``` -![](/zh-cn/stage-2/ai-capabilities/2.1-dify-knowledge-base/images/image67.png) +![](/zh-cn/stage-2/ai-capabilities/dify-knowledge-base/images/image67.png) Finally add Output node and all setup is complete. -![](/zh-cn/stage-2/ai-capabilities/2.1-dify-knowledge-base/images/image68.png) +![](/zh-cn/stage-2/ai-capabilities/dify-knowledge-base/images/image68.png) #### Workflow Runtime Testing @@ -680,7 +680,7 @@ Done. Now run this workflow and observe distinct behavior for different inputs: After running in Test Run, you can inspect full execution path. It should follow correct branch and output expected final result. Full flow complete. -![](/zh-cn/stage-2/ai-capabilities/2.1-dify-knowledge-base/images/image69.png) +![](/zh-cn/stage-2/ai-capabilities/dify-knowledge-base/images/image69.png) ## 2.7 Run Your First Template Workflow App @@ -688,33 +688,33 @@ After the simple classification workflow, next learn how to run workflows create After importing, first run directly. Then fix each error step by step based on failing node and cause. If stuck, screenshot and ask a model for debugging help. -![](/zh-cn/stage-2/ai-capabilities/2.1-dify-knowledge-base/images/image70.png) +![](/zh-cn/stage-2/ai-capabilities/dify-knowledge-base/images/image70.png) At first glance it may feel complex. That is okay. Click `Preview` on top right and run until first error appears: -![](/zh-cn/stage-2/ai-capabilities/2.1-dify-knowledge-base/images/image71.png) +![](/zh-cn/stage-2/ai-capabilities/dify-knowledge-base/images/image71.png) -![](/zh-cn/stage-2/ai-capabilities/2.1-dify-knowledge-base/images/image72.png) +![](/zh-cn/stage-2/ai-capabilities/dify-knowledge-base/images/image72.png) Troubleshoot the failing node. In this case Tavily API token was missing. Tavily Search is an AI-native search API providing real-time accurate factual results. Follow prompt to configure: -![](/zh-cn/stage-2/ai-capabilities/2.1-dify-knowledge-base/images/image73.png) +![](/zh-cn/stage-2/ai-capabilities/dify-knowledge-base/images/image73.png) After fixing it, search engine works normally: -![](/zh-cn/stage-2/ai-capabilities/2.1-dify-knowledge-base/images/image74.png) +![](/zh-cn/stage-2/ai-capabilities/dify-knowledge-base/images/image74.png) Then fix model-call issues as needed. You should be able to get results like this with model-understood synthesis: -![](/zh-cn/stage-2/ai-capabilities/2.1-dify-knowledge-base/images/image75.png) +![](/zh-cn/stage-2/ai-capabilities/dify-knowledge-base/images/image75.png) At the end, you can inspect referenced source links: -![](/zh-cn/stage-2/ai-capabilities/2.1-dify-knowledge-base/images/image76.png) +![](/zh-cn/stage-2/ai-capabilities/dify-knowledge-base/images/image76.png) If you want to understand each step deeply, best method is saving each node output into intermediate variables and printing all variables at final output. Another way: open `Process` view at top and inspect detailed per-step execution. -![](/zh-cn/stage-2/ai-capabilities/2.1-dify-knowledge-base/images/image77.png) +![](/zh-cn/stage-2/ai-capabilities/dify-knowledge-base/images/image77.png) ## 2.8 Use Dify as an API Provider @@ -729,15 +729,15 @@ If you are not familiar with IDE concepts, read: If your local environment is not fully configured, do not worry. If you trust your coding assistant (whether [z.ai](http://z.ai) or Trae), you can directly send any issue/errors and it will provide resolution guidance. -![](/zh-cn/stage-2/ai-capabilities/2.1-dify-knowledge-base/images/image78.png) +![](/zh-cn/stage-2/ai-capabilities/dify-knowledge-base/images/image78.png) The right panel is Copilot/Agent interaction window. If not visible, click top-right sidebar icon to open. -![](/zh-cn/stage-2/ai-capabilities/2.1-dify-knowledge-base/images/image79.png) +![](/zh-cn/stage-2/ai-capabilities/dify-knowledge-base/images/image79.png) After opening sidebar, you will see `Builder` option. This is Agent mode. You can roughly treat "Builder" as the "development mode" of [z.ai](http://z.ai): it can help with local environment operations, dependency installs, opening webpages, etc. -![](/zh-cn/stage-2/ai-capabilities/2.1-dify-knowledge-base/images/image80.png) +![](/zh-cn/stage-2/ai-capabilities/dify-knowledge-base/images/image80.png) Inside Builder, there are "Chat" mode and "Builder with MCP" mode. Chat mode mainly interacts with current folder and natural-language model chat. @@ -745,11 +745,11 @@ Chat mode mainly interacts with current folder and natural-language model chat. Builder with MCP gives Agent more tools (for example connecting to other software, retrieving weather, etc.). You can treat MCP as a capability layer that makes external tool invocation easier for models. -![](/zh-cn/stage-2/ai-capabilities/2.1-dify-knowledge-base/images/image81.png) +![](/zh-cn/stage-2/ai-capabilities/dify-knowledge-base/images/image81.png) At the bottom, there is model selection dropdown. You can choose Kimi k2 or GLM. In international Trae, you can select ChatGPT or Claude as well. With fast progress of domestic models, Kimi/Qwen/GLM are now close to Claude 3.5/3.7 for daily dev scenarios. -![](/zh-cn/stage-2/ai-capabilities/2.1-dify-knowledge-base/images/image82.png) +![](/zh-cn/stage-2/ai-capabilities/dify-knowledge-base/images/image82.png) That is a brief Trae intro. Next we reuse operational ideas from [z.ai](http://z.ai) inside Trae. @@ -759,25 +759,25 @@ To build a frontend chat app with Dify API, first obtain Dify API docs and endpo Remember the agent we created? Click top-right `Publish`, then `Publish Update`, then `Access API Reference`. -![](/zh-cn/stage-2/ai-capabilities/2.1-dify-knowledge-base/images/image83.png) +![](/zh-cn/stage-2/ai-capabilities/dify-knowledge-base/images/image83.png) -![](/zh-cn/stage-2/ai-capabilities/2.1-dify-knowledge-base/images/image84.png) +![](/zh-cn/stage-2/ai-capabilities/dify-knowledge-base/images/image84.png) In API docs, find `Send Chat Message`, open it, then copy `Request` and `Response` examples on the right. Why copy these two parts? Because they are core API information. With key + request example + response example, you can ask model to generate invocation code and parse required fields from returned structure. -![](/zh-cn/stage-2/ai-capabilities/2.1-dify-knowledge-base/images/image85.png) +![](/zh-cn/stage-2/ai-capabilities/dify-knowledge-base/images/image85.png) -![](/zh-cn/stage-2/ai-capabilities/2.1-dify-knowledge-base/images/image86.png) +![](/zh-cn/stage-2/ai-capabilities/dify-knowledge-base/images/image86.png) After finding request/response examples, you also need API key. In top-right docs area, find `API key` options. -![](/zh-cn/stage-2/ai-capabilities/2.1-dify-knowledge-base/images/image87.png) +![](/zh-cn/stage-2/ai-capabilities/dify-knowledge-base/images/image87.png) Click `Create new Secret key` to create your own key. -![](/zh-cn/stage-2/ai-capabilities/2.1-dify-knowledge-base/images/image88.png) +![](/zh-cn/stage-2/ai-capabilities/dify-knowledge-base/images/image88.png) Now everything is ready. Send API key + request example + response example to Trae Builder. @@ -847,25 +847,25 @@ curl -X POST 'http://{DIFY_API_URL}/v1/chat-messages' \ } ``` -![](/zh-cn/stage-2/ai-capabilities/2.1-dify-knowledge-base/images/image89.png) +![](/zh-cn/stage-2/ai-capabilities/dify-knowledge-base/images/image89.png) At this stage, generated code may not run perfectly in one shot. You may see strange errors or no responses. If that happens, switch model or copy full error details and ask model to iterate based on feedback. This working style is already close to real development. In daily collaboration with models, you often need to provide more context to solve issues. Besides error messages, you can copy more doc context (for example from "Send message" docs section) and send together for higher-quality fixes. -![](/zh-cn/stage-2/ai-capabilities/2.1-dify-knowledge-base/images/image90.png) +![](/zh-cn/stage-2/ai-capabilities/dify-knowledge-base/images/image90.png) The browser is embedded inside Trae. Click the compass icon at top to open full screen in external browser. -![](/zh-cn/stage-2/ai-capabilities/2.1-dify-knowledge-base/images/image91.png) +![](/zh-cn/stage-2/ai-capabilities/dify-knowledge-base/images/image91.png) If you are lucky, first attempt may already yield a functional interactive frontend page. -![](/zh-cn/stage-2/ai-capabilities/2.1-dify-knowledge-base/images/image92.png) +![](/zh-cn/stage-2/ai-capabilities/dify-knowledge-base/images/image92.png) Because LLMs are stochastic, a single round may work while multi-turn chat fails. So always do multi-round testing to verify stability in conversational scenarios. -![](/zh-cn/stage-2/ai-capabilities/2.1-dify-knowledge-base/images/image93.png) +![](/zh-cn/stage-2/ai-capabilities/dify-knowledge-base/images/image93.png) At this point, you can build a simple Dify knowledge-base agent and use Trae (instead of [z.ai](http://z.ai)) to build an interactive frontend. From now on, Trae will become our primary prototyping tool, gradually replacing [z.ai](http://z.ai). You can try re-implementing the snake game in Trae and compare the experience. Keep going. @@ -959,19 +959,19 @@ In this challenge, make workflow support: - Provide a second attempt when password is wrong (no third attempt). - When user asks to log in again, allow password re-entry. -![](/zh-cn/stage-2/ai-capabilities/2.1-dify-knowledge-base/images/image94.png) +![](/zh-cn/stage-2/ai-capabilities/dify-knowledge-base/images/image94.png) Reference input/output: -![](/zh-cn/stage-2/ai-capabilities/2.1-dify-knowledge-base/images/image95.png) +![](/zh-cn/stage-2/ai-capabilities/dify-knowledge-base/images/image95.png) 3. `Love loop workflow` decryption challenge: -![](/zh-cn/stage-2/ai-capabilities/2.1-dify-knowledge-base/images/image96.png) +![](/zh-cn/stage-2/ai-capabilities/dify-knowledge-base/images/image96.png) Fix current workflow issues so final output looks similar to: -![](/zh-cn/stage-2/ai-capabilities/2.1-dify-knowledge-base/images/image97.png) +![](/zh-cn/stage-2/ai-capabilities/dify-knowledge-base/images/image97.png) If you cannot solve a problem, screenshot and ask a model, or check official docs: [https://docs.dify.ai/en/use-dify/getting-started/quick-start](https://docs.dify.ai/en/use-dify/getting-started/quick-start) @@ -998,7 +998,7 @@ Only refer to this section if you encounter the issue shown below. Otherwise you Sometimes you deploy Dify on your own server where public endpoint is HTTP (not HTTPS). If you request an HTTP-only service, you may see errors like this (enable browser F12 debug info to inspect): -![](/zh-cn/stage-2/ai-capabilities/2.1-dify-knowledge-base/images/image98.png) +![](/zh-cn/stage-2/ai-capabilities/dify-knowledge-base/images/image98.png) Root cause: Dify is deployed on a server that supports HTTP but not HTTPS. HTTPS (HyperText Transfer Protocol Secure) adds SSL/TLS encryption over HTTP, basically a more secure HTTP. diff --git a/docs/en/stage-2/assignments/2.1-fullstack-app/index.md b/docs/en/stage-2/assignments/fullstack-app/index.md similarity index 94% rename from docs/en/stage-2/assignments/2.1-fullstack-app/index.md rename to docs/en/stage-2/assignments/fullstack-app/index.md index 196ec47..4a9cca6 100644 --- a/docs/en/stage-2/assignments/2.1-fullstack-app/index.md +++ b/docs/en/stage-2/assignments/fullstack-app/index.md @@ -197,11 +197,11 @@ Requirements: Review these chapters: -- [Build Your First Modern App - UI Design](../../frontend/2.2-ui-design/) -- [UI Guidelines and Multi-Product Design](../../frontend/2.3-multi-product-ui/) -- [Make Interfaces Beautiful with LLMs and Skills](../../frontend/2.4-llm-skills-beautiful/) -- [From Design Prototype to Project Code](../../frontend/2.6-design-to-code/) -- [Upgrade Your UI with Modern Component Libraries](../../frontend/2.7-modern-component-library/) +- [Build Your First Modern App - UI Design](../../frontend/ui-design/) +- [UI Guidelines and Multi-Product Design](../../frontend/multi-product-ui/) +- [Make Interfaces Beautiful with LLMs and Skills](../../frontend/llm-skills-beautiful/) +- [From Design Prototype to Project Code](../../frontend/design-to-code/) +- [Upgrade Your UI with Modern Component Libraries](../../frontend/modern-component-library/)
@@ -318,9 +318,9 @@ Requirements: Review these chapters: -- [From Database to Supabase](../../backend/2.2-database-supabase/) -- [Backend API Design and Development](../../backend/2.3-ai-interface-code/) -- [Integrate Stripe and Other Billing Systems](../../backend/2.7-stripe-payment/) +- [From Database to Supabase](../../backend/database-supabase/) +- [Backend API Design and Development](../../backend/ai-interface-code/) +- [Integrate Stripe and Other Billing Systems](../../backend/stripe-payment/)
@@ -343,8 +343,8 @@ Push the code to GitHub and deploy it publicly. References: -- [Git and GitHub Workflow](../../backend/2.4-git-workflow/) -- [Ship Your Product Prototype](../../backend/2.5-zeabur-deployment/) +- [Git and GitHub Workflow](../../backend/git-workflow/) +- [Ship Your Product Prototype](../../backend/zeabur-deployment/) ### Step 7: Pre-Deployment Check @@ -415,5 +415,5 @@ That is absolutely strong enough to count as your **first real full-stack portfo ::: tip Next -After finishing this project, continue with [Major Project 2: Online Exam and Management System](../2.2-modern-frontend-trae/) for the next full-stack challenge. +After finishing this project, continue with [Major Project 2: Online Exam and Management System](../modern-frontend-trae/) for the next full-stack challenge. ::: diff --git a/docs/en/stage-2/assignments/2.2-modern-frontend-trae/index.md b/docs/en/stage-2/assignments/modern-frontend-trae/index.md similarity index 100% rename from docs/en/stage-2/assignments/2.2-modern-frontend-trae/index.md rename to docs/en/stage-2/assignments/modern-frontend-trae/index.md diff --git a/docs/en/stage-2/backend/2.3-ai-interface-code/index.md b/docs/en/stage-2/backend/ai-interface-code/index.md similarity index 97% rename from docs/en/stage-2/backend/2.3-ai-interface-code/index.md rename to docs/en/stage-2/backend/ai-interface-code/index.md index 97c7c88..3d2c631 100644 --- a/docs/en/stage-2/backend/2.3-ai-interface-code/index.md +++ b/docs/en/stage-2/backend/ai-interface-code/index.md @@ -9,8 +9,8 @@ In the past, backend developers often wrote hundreds or thousands of lines of ro > 💡 **Prerequisites** > > Before starting this chapter, it helps to understand: -> - [From Database to Supabase](../2.2-database-supabase/) for basic database and data-model concepts -> - [Git and GitHub Workflow](../2.4-git-workflow/) for project collaboration and version control +> - [From Database to Supabase](../database-supabase/) for basic database and data-model concepts +> - [Git and GitHub Workflow](../git-workflow/) for project collaboration and version control > - [What Is the Terminal / Command Line](/en/appendix/2-development-tools/command-line-shell) for project initialization and startup commands # What you will learn @@ -73,7 +73,7 @@ If the prompt is good, the code you get back can already give you a backend app This is the heart of the chapter. When LLM-generated code feels superficial or unsafe, the root cause is usually missing context. **LLMs are not afraid of complex requirements. They are afraid of vague ones.** -Take the `menu_items` insert API from the [database chapter](../2.2-database-supabase/) as an example. +Take the `menu_items` insert API from the [database chapter](../database-supabase/) as an example. ## 3.1 Give the model full context diff --git a/docs/en/stage-2/backend/2.2-database-supabase/index.md b/docs/en/stage-2/backend/database-supabase/index.md similarity index 94% rename from docs/en/stage-2/backend/2.2-database-supabase/index.md rename to docs/en/stage-2/backend/database-supabase/index.md index 7bb1b4b..94276d4 100644 --- a/docs/en/stage-2/backend/2.2-database-supabase/index.md +++ b/docs/en/stage-2/backend/database-supabase/index.md @@ -91,7 +91,7 @@ There is also vector data. After unstructured data (text/images/audio) is proces In real projects, there are many data shapes and many corresponding storage systems: -![](/zh-cn/stage-2/backend/2.2-database-supabase/images/image1.png) +![](/zh-cn/stage-2/backend/database-supabase/images/image1.png) ## 1.2 Why We Need Database @@ -291,7 +291,7 @@ Next, we move from "choosing only a database" to "choosing a complete backend de After understanding Supabase's positioning, let's walk along the Supabase console path and break down each capability and responsibility. -![](/zh-cn/stage-2/backend/2.2-database-supabase/images/image2.png) +![](/zh-cn/stage-2/backend/database-supabase/images/image2.png) After signing in at Supabase and clicking **New project**: @@ -299,17 +299,17 @@ After signing in at Supabase and clicking **New project**: - set DB password - choose region near your target users -![](/zh-cn/stage-2/backend/2.2-database-supabase/images/image3.png) +![](/zh-cn/stage-2/backend/database-supabase/images/image3.png) After creation, the left sidebar shows key modules: Table Editor, SQL Editor, Database, Authentication, and so on. -![](/zh-cn/stage-2/backend/2.2-database-supabase/images/image4.png) +![](/zh-cn/stage-2/backend/database-supabase/images/image4.png) ### Table Editor Table Editor is Supabase's visual data table editor. You can inspect and edit DB data without writing SQL, similar to spreadsheet interaction. -![](/zh-cn/stage-2/backend/2.2-database-supabase/images/image5.png) +![](/zh-cn/stage-2/backend/database-supabase/images/image5.png) The key concept here is **Schema**. @@ -323,13 +323,13 @@ In daily development, most people mainly use: - `public`: default business tables (posts/comments/orders/etc.) - `auth`: authentication tables (for example `auth.users`), usually do not edit built-in auth schema tables manually -![](/zh-cn/stage-2/backend/2.2-database-supabase/images/image6.png)![](/zh-cn/stage-2/backend/2.2-database-supabase/images/image7.png) +![](/zh-cn/stage-2/backend/database-supabase/images/image6.png)![](/zh-cn/stage-2/backend/database-supabase/images/image7.png) ### SQL Editor SQL Editor is the SQL execution console. You can run model-generated SQL directly and inspect results quickly. -![](/zh-cn/stage-2/backend/2.2-database-supabase/images/image8.png) +![](/zh-cn/stage-2/backend/database-supabase/images/image8.png) After executing SQL, you can view new tables in Table Editor (`public` schema). Executed SQL is also saved in the left private history, and can be starred. @@ -337,47 +337,47 @@ After executing SQL, you can view new tables in Table Editor (`public` schema). Database is the management center where you inspect tables and relationships (foreign key constraints) visually. -![](/zh-cn/stage-2/backend/2.2-database-supabase/images/image9.png) +![](/zh-cn/stage-2/backend/database-supabase/images/image9.png) You can also create tables manually in `Database -> Tables`. -![](/zh-cn/stage-2/backend/2.2-database-supabase/images/image10.png) +![](/zh-cn/stage-2/backend/database-supabase/images/image10.png) ### Authentication Authentication manages sign-up/sign-in and permissions. It supports registration, login, password reset, email verification, and OAuth providers (Google/GitHub/others). User data is synced automatically into `auth.users`. -![](/zh-cn/stage-2/backend/2.2-database-supabase/images/image11.png) +![](/zh-cn/stage-2/backend/database-supabase/images/image11.png) Provider options are visible in the Provider panel. By default, email login is enabled. For GitHub/Google login, extra provider config is required. -![](/zh-cn/stage-2/backend/2.2-database-supabase/images/image12.png) +![](/zh-cn/stage-2/backend/database-supabase/images/image12.png) In `Sign In / Providers`, you can configure registration behavior (for example, whether email confirmation is required). -![](/zh-cn/stage-2/backend/2.2-database-supabase/images/image13.png) +![](/zh-cn/stage-2/backend/database-supabase/images/image13.png) You can also use third-party auth systems in `Third Party Auth` (for example Clerk). -![](/zh-cn/stage-2/backend/2.2-database-supabase/images/image14.png) +![](/zh-cn/stage-2/backend/database-supabase/images/image14.png) You can enable rate-limiting policies in `Rate Limits` to control abusive traffic. -![](/zh-cn/stage-2/backend/2.2-database-supabase/images/image15.png) +![](/zh-cn/stage-2/backend/database-supabase/images/image15.png) ### Storage Storage is Supabase file storage and is S3-compatible in concept. It stores files (images/videos/docs/audio), supports public/private access control, and supports permanent/temporary link generation. -![](/zh-cn/stage-2/backend/2.2-database-supabase/images/image16.png) +![](/zh-cn/stage-2/backend/database-supabase/images/image16.png) We cover concrete usage in later project sections. -![](/zh-cn/stage-2/backend/2.2-database-supabase/images/image17.png) +![](/zh-cn/stage-2/backend/database-supabase/images/image17.png) If needed, you can operate via S3-compatible settings. -![](/zh-cn/stage-2/backend/2.2-database-supabase/images/image18.png) +![](/zh-cn/stage-2/backend/database-supabase/images/image18.png) > Amazon Cloud (AWS) is a cloud platform. S3 is AWS's object storage service and has effectively become an industry standard for object storage APIs. > @@ -387,18 +387,18 @@ If needed, you can operate via S3-compatible settings. If you do not want to self-host a full backend, but still need secure server-side logic, use Edge Functions. They are globally distributed server functions managed by Supabase. -![](/zh-cn/stage-2/backend/2.2-database-supabase/images/image19.png) +![](/zh-cn/stage-2/backend/database-supabase/images/image19.png) A core use case is secure API proxying. Never expose sensitive keys (OpenAI/Stripe/etc.) in frontend code. Instead: - frontend calls your Supabase function - function securely uses secrets stored in Supabase -![](/zh-cn/stage-2/backend/2.2-database-supabase/images/image20.png) +![](/zh-cn/stage-2/backend/database-supabase/images/image20.png) Function secrets are injected as environment variables (for example through `Deno.env.get`), so keys are never exposed to browsers. -![](/zh-cn/stage-2/backend/2.2-database-supabase/images/image21.png) +![](/zh-cn/stage-2/backend/database-supabase/images/image21.png) Minimal Edge Function request example: @@ -458,18 +458,18 @@ We will use it in project-based sections later. Project Settings is for deeper resource and parameter configuration. -![](/zh-cn/stage-2/backend/2.2-database-supabase/images/image22.png) +![](/zh-cn/stage-2/backend/database-supabase/images/image22.png) At beginner stage, focus on: 1. **Data API**: your Supabase URL (`https://xxx.supabase.co`) 2. **API Keys**: anon key vs service_role key -![](/zh-cn/stage-2/backend/2.2-database-supabase/images/image23.png) +![](/zh-cn/stage-2/backend/database-supabase/images/image23.png) `anon` is for restricted client access under RLS. `service_role` is high-privilege server key and must never be exposed publicly. -![](/zh-cn/stage-2/backend/2.2-database-supabase/images/image24.png) +![](/zh-cn/stage-2/backend/database-supabase/images/image24.png) ## 2.1 Create Your First SQL Table @@ -480,15 +480,15 @@ There are two common ways to create tables in Supabase: 1. (recommended) generate SQL via LLM and run it in SQL Editor 2. visual creation via `Database -> Tables -> New table` -![](/zh-cn/stage-2/backend/2.2-database-supabase/images/image25.png) +![](/zh-cn/stage-2/backend/database-supabase/images/image25.png) You can define table name and column types in `Columns`. -![](/zh-cn/stage-2/backend/2.2-database-supabase/images/image26.png) +![](/zh-cn/stage-2/backend/database-supabase/images/image26.png) Relational DBs rely on table relationships. Configure relations in `Foreign keys`. -![](/zh-cn/stage-2/backend/2.2-database-supabase/images/image27.png) +![](/zh-cn/stage-2/backend/database-supabase/images/image27.png) Example (student table referencing class table): @@ -520,7 +520,7 @@ Students table: In Supabase, after adding a foreign key, choose referenced table and column directly. -![](/zh-cn/stage-2/backend/2.2-database-supabase/images/image28.png) +![](/zh-cn/stage-2/backend/database-supabase/images/image28.png) ## 2.3 SQL Editor 简介与数据库基本操作 @@ -550,7 +550,7 @@ CREATE TABLE IF NOT EXISTS orders ( After execution, check Table Editor: -![](/zh-cn/stage-2/backend/2.2-database-supabase/images/image29.png) +![](/zh-cn/stage-2/backend/database-supabase/images/image29.png) ### **2.3.2 **`INSERT`** - 填充初始数据** @@ -584,7 +584,7 @@ INSERT INTO orders (user_id, status, amount, details, placed_at, is_paid) VALUES After the script executes successfully, initial data is now inserted into the table. You can refresh Table Editor to see the result, or open a new SQL Editor tab and run `SELECT * FROM orders;` to view it directly: -![](/zh-cn/stage-2/backend/2.2-database-supabase/images/image30.png) +![](/zh-cn/stage-2/backend/database-supabase/images/image30.png) ### **2.3.3 **`SELECT`** - 读取与查询数据** @@ -606,7 +606,7 @@ SELECT id, details -> 'items' AS item_list FROM orders; Example 2 result: -![](/zh-cn/stage-2/backend/2.2-database-supabase/images/image31.png) +![](/zh-cn/stage-2/backend/database-supabase/images/image31.png) Example 3 (paid orders): @@ -708,15 +708,15 @@ Supabase provides `auth.uid()` to reference the current authenticated user id, m You can configure policies in the Supabase RLS UI: -![](/zh-cn/stage-2/backend/2.2-database-supabase/images/image32.png) +![](/zh-cn/stage-2/backend/database-supabase/images/image32.png) -![](/zh-cn/stage-2/backend/2.2-database-supabase/images/image33.png) +![](/zh-cn/stage-2/backend/database-supabase/images/image33.png) -![](/zh-cn/stage-2/backend/2.2-database-supabase/images/image34.png) +![](/zh-cn/stage-2/backend/database-supabase/images/image34.png) In practice, policies are often created in initialization SQL: -![](/zh-cn/stage-2/backend/2.2-database-supabase/images/image35.png) +![](/zh-cn/stage-2/backend/database-supabase/images/image35.png) # 3. The First SQL Application @@ -734,7 +734,7 @@ If you already configured SSH keys, prefer SSH clone: If network/SSH has issues, use **Download ZIP**. -![](/zh-cn/stage-2/backend/2.2-database-supabase/images/image36.png) +![](/zh-cn/stage-2/backend/database-supabase/images/image36.png) After cloning, ask Trae or Claude Code to run a target project directory directly. @@ -825,9 +825,9 @@ export function maybeCreateBrowserClient(): SupabaseClient | null { After creating the database and filling the Supabase link configuration, you can see an interface like the following. You can try CRUD operations on products and observe corresponding table changes in Supabase. -![](/zh-cn/stage-2/backend/2.2-database-supabase/images/image37.png) +![](/zh-cn/stage-2/backend/database-supabase/images/image37.png) -![](/zh-cn/stage-2/backend/2.2-database-supabase/images/image38.png) +![](/zh-cn/stage-2/backend/database-supabase/images/image38.png) ### 📚 Assignment @@ -853,7 +853,7 @@ const { error: err } = await supabaseClient.auth.signUp({ }); ``` -![](/zh-cn/stage-2/backend/2.2-database-supabase/images/image39.png) +![](/zh-cn/stage-2/backend/database-supabase/images/image39.png) After login, Supabase creates session automatically. With RLS, each user only sees their own account data. @@ -861,15 +861,15 @@ Initialize with `init.sql` first (if initialization fails, clean old tables or r After sign-up and email verification, you can enter shop UI: -![](/zh-cn/stage-2/backend/2.2-database-supabase/images/image40.png) +![](/zh-cn/stage-2/backend/database-supabase/images/image40.png) To access admin UI, modify corresponding role field to `admin` in DB: -![](/zh-cn/stage-2/backend/2.2-database-supabase/images/image41.png) +![](/zh-cn/stage-2/backend/database-supabase/images/image41.png) By default, each new email sign-up requires email confirmation. You can disable forced confirmation in `Authentication -> Sign In / Providers -> Confirm email`. -![](/zh-cn/stage-2/backend/2.2-database-supabase/images/image42.png) +![](/zh-cn/stage-2/backend/database-supabase/images/image42.png) ### 📚 Assignment @@ -904,7 +904,7 @@ You can also ask AI to migrate implementation patterns from an existing project Following the SOP above, use `Project5-Supabase-Demos/apps_snakegame` as concrete practice: add leaderboard + user auth. -![](/zh-cn/stage-2/backend/2.2-database-supabase/images/image43.png) +![](/zh-cn/stage-2/backend/database-supabase/images/image43.png) ### 4.2.1 分析项目,识别数据需求 @@ -918,13 +918,13 @@ First, similar to the standardized process above, we can clarify requirements wi You will then get a response similar to: -![](/zh-cn/stage-2/backend/2.2-database-supabase/images/image44.png) +![](/zh-cn/stage-2/backend/database-supabase/images/image44.png) ### 4.2.2 生成 `init.sql` 脚本 Then ask AI to generate `scripts/init.sql` for Supabase initialization: -![](/zh-cn/stage-2/backend/2.2-database-supabase/images/image45.png) +![](/zh-cn/stage-2/backend/database-supabase/images/image45.png) ### 4.2.3 改造项目代码 @@ -945,9 +945,9 @@ Successful result criteria: - users can register and sign in - signed-in users can view leaderboard correctly -![](/zh-cn/stage-2/backend/2.2-database-supabase/images/image46.png) +![](/zh-cn/stage-2/backend/database-supabase/images/image46.png) -![](/zh-cn/stage-2/backend/2.2-database-supabase/images/image47.png) +![](/zh-cn/stage-2/backend/database-supabase/images/image47.png) ### 📚 课程作业 @@ -990,7 +990,7 @@ This section explains full details for Google and GitHub OAuth and password rese Reference project: `Project5-Supabase-Demos/apps/project-burger-shop-auth-advanced-supabase-6` -![](/zh-cn/stage-2/backend/2.2-database-supabase/images/image48.png) +![](/zh-cn/stage-2/backend/database-supabase/images/image48.png) ### 5.2.1 OAuth 流程:第三方登录是如何工作的? @@ -1004,7 +1004,7 @@ Typical flow: 4. Supabase backend exchanges code for access token 5. Supabase fetches profile, creates/links account, and establishes session -![](/zh-cn/stage-2/backend/2.2-database-supabase/images/image49.png) +![](/zh-cn/stage-2/backend/database-supabase/images/image49.png) ### 5.2.2 配置 Google Cloud 获取 Client ID 和 Secret @@ -1025,7 +1025,7 @@ No matter which third-party login method you use, you normally need to configure 13. Select `Web application` for `Application type`. 14. Give it a name, for example `Supabase Auth`. 15. In `Authorized redirect URIs`, click `ADD URI` and fill your Supabase callback URL. You can find this URL in Supabase Dashboard at `Authentication` -> `Providers` -> `Google`. The format is usually `https://.supabase.co/auth/v1/callback`. - ![](/zh-cn/stage-2/backend/2.2-database-supabase/images/image50.png) + ![](/zh-cn/stage-2/backend/database-supabase/images/image50.png) 16. Click `CREATE`. 17. **Get Client ID and Client Secret**: 18. After creation succeeds, a popup shows your **Client ID** and **Client Secret**. Be sure to copy and store them immediately. @@ -1047,7 +1047,7 @@ Similarly, you need to register an OAuth application on GitHub. 7. Click `Register application`. 8. **Get Client ID and Client Secret**: 9. After registration, the page displays your **Client ID**. - ![](/zh-cn/stage-2/backend/2.2-database-supabase/images/image51.png) + ![](/zh-cn/stage-2/backend/database-supabase/images/image51.png) 10. Click `Generate a new client secret` to generate your **Client Secret**. Again, copy and store it immediately. ### 5.2.4 在 Supabase 中配置 Provider @@ -1065,7 +1065,7 @@ Now configure the credentials you obtained in Supabase. 2. Paste the **Client ID** and **Client Secret** from GitHub into the corresponding fields. 3. Click `Save`. -![](/zh-cn/stage-2/backend/2.2-database-supabase/images/image52.png) +![](/zh-cn/stage-2/backend/database-supabase/images/image52.png) At this point, your website can already support third-party account login. You can directly ask AI to use `Project5-Supabase-Demos/apps/project-burger-shop-auth-advanced-supabase-6` as reference and add user login support to your own project, integrating both GitHub and Google authentication with minimal cost. @@ -1086,7 +1086,7 @@ Core flow: You can customize reset templates in: `Authentication -> Email Templates` -![](/zh-cn/stage-2/backend/2.2-database-supabase/images/image53.png) +![](/zh-cn/stage-2/backend/database-supabase/images/image53.png) ## 5.3 Realtime Function @@ -1095,7 +1095,7 @@ Supabase Realtime is one of its strongest capabilities. It is useful for collabo Project: `Project5-Supabase-Demos/apps/project-burger-shop-realtime-orders-3` -![](/zh-cn/stage-2/backend/2.2-database-supabase/images/image54.png) +![](/zh-cn/stage-2/backend/database-supabase/images/image54.png) ### 5.3.1 数据库实时变动 Postgres Changes @@ -1257,9 +1257,9 @@ Project: This project demonstrates avatar upload flow and uses `Uppy` + `Tus` resumable upload against Supabase upload endpoint. -![](/zh-cn/stage-2/backend/2.2-database-supabase/images/image55.png) +![](/zh-cn/stage-2/backend/database-supabase/images/image55.png) -![](/zh-cn/stage-2/backend/2.2-database-supabase/images/image56.png) +![](/zh-cn/stage-2/backend/database-supabase/images/image56.png) ### 5.4.1. Bucket @@ -1346,7 +1346,7 @@ In Supabase, Edge Functions run on Deno + TypeScript and are deployed globally f Project: `Project5-Supabase-Demos/apps/project-burger-shop-edge-function-5` -![](/zh-cn/stage-2/backend/2.2-database-supabase/images/image57.png) +![](/zh-cn/stage-2/backend/database-supabase/images/image57.png) ### 5.5.1 LLM Chat 案例解析 @@ -1389,16 +1389,16 @@ Supabase provides a very user-friendly interface, so you can complete deployment 3. In the left navigation, click the code-like icon and enter `Edge Functions`. 4. **Create a new function**: 5. Click `Create a new function`. - ![](/zh-cn/stage-2/backend/2.2-database-supabase/images/image58.png) + ![](/zh-cn/stage-2/backend/database-supabase/images/image58.png) 6. Name the function, for example `llm-chat`. 7. **Paste code**: - ![](/zh-cn/stage-2/backend/2.2-database-supabase/images/image59.png) + ![](/zh-cn/stage-2/backend/database-supabase/images/image59.png) 8. In the online editor popup, **delete all default placeholder code**. 9. Open your local `llm-chat.ts` file and **copy all content**. 10. **Paste** the copied code into the Supabase online editor. 11. **Configure environment variables (Secrets)**: 1. Find `Secrets` in the sidebar. - ![](/zh-cn/stage-2/backend/2.2-database-supabase/images/image60.png) + ![](/zh-cn/stage-2/backend/database-supabase/images/image60.png) 2. `Name`: enter `OPENAI_API_KEY`. 3. `Value`: paste your own OpenAI API Key. 4. Click `Save`. The secret set here is encrypted and securely injected into the runtime environment of your function. @@ -1421,7 +1421,7 @@ This part explains full integration with Supabase. Project: `project-burger-shop-auth-advanced-clerk-7` -![](/zh-cn/stage-2/backend/2.2-database-supabase/images/image61.png) +![](/zh-cn/stage-2/backend/database-supabase/images/image61.png) ### 5.6.1 创建 Clerk 应用与获取密钥 @@ -1430,15 +1430,15 @@ Before using this project, you need a Clerk account and an application. 1. Register and create: 1. Visit [dashboard.clerk.com](https://dashboard.clerk.com/) and register an account. 2. Click `Create application`. - ![](/zh-cn/stage-2/backend/2.2-database-supabase/images/image62.png) + ![](/zh-cn/stage-2/backend/database-supabase/images/image62.png) 3. Enter your application name (for example, `Burger Shop`). 4. In `How will your users sign in?`, keep `Email`, `Google`, and `GitHub` selected by default. 5. Click `Create application`. 2. Get API keys: 1. After creation, you will be guided to the API Keys page. - ![](/zh-cn/stage-2/backend/2.2-database-supabase/images/image63.png) + ![](/zh-cn/stage-2/backend/database-supabase/images/image63.png) 2. Find the Publishable key (starts with `pk_`) and Secret key (starts with `sk_`). - ![](/zh-cn/stage-2/backend/2.2-database-supabase/images/image64.png) + ![](/zh-cn/stage-2/backend/database-supabase/images/image64.png) 3. Copy them into your `.env.local` file (refer to this project's `.env.example`): ```bash @@ -1607,7 +1607,7 @@ After initializing the Supabase table and function, you still need to enable Web - In Clerk Dashboard -> **Webhooks**, add an Endpoint and fill in the Supabase Edge Function URL. - Check events such as `user.created`, `user.updated`, and `user.deleted`. -![](/zh-cn/stage-2/backend/2.2-database-supabase/images/image65.png) +![](/zh-cn/stage-2/backend/database-supabase/images/image65.png) Once the setup succeeds, you can see different request attempts in `Message Attempts`. Click each one to inspect detailed response payloads. If a webhook call to Edge Function fails, you can quickly identify the cause from the returned details. It is recommended to compare request logs from both Clerk and Supabase to verify each function setting is correct. diff --git a/docs/en/stage-2/backend/2.4-git-workflow/index.md b/docs/en/stage-2/backend/git-workflow/index.md similarity index 88% rename from docs/en/stage-2/backend/2.4-git-workflow/index.md rename to docs/en/stage-2/backend/git-workflow/index.md index e0773e2..2109bfb 100644 --- a/docs/en/stage-2/backend/2.4-git-workflow/index.md +++ b/docs/en/stage-2/backend/git-workflow/index.md @@ -26,15 +26,15 @@ We will briefly walk through installation on the three major operating-system fa 1. Go to the [official Git download page](https://git-scm.com/download/win) and download the installer that matches your system. In most cases, the x64 installer is recommended. 2. Double-click the installer and follow the setup wizard: - ![](/zh-cn/stage-2/backend/2.4-git-workflow/images/image5.png) + ![](/zh-cn/stage-2/backend/git-workflow/images/image5.png) 1. In most cases, keeping the default settings is fine. If you customize them, pay attention to: - **Default editor**: you can keep Vim, or choose Visual Studio Code if you already have it installed. - ![](/zh-cn/stage-2/backend/2.4-git-workflow/images/image6.png) + ![](/zh-cn/stage-2/backend/git-workflow/images/image6.png) - **How Git is used from the command line**: a practical default is the option that adds Git to the command line and third-party software without overcomplicating the system setup. - ![](/zh-cn/stage-2/backend/2.4-git-workflow/images/image7.png) + ![](/zh-cn/stage-2/backend/git-workflow/images/image7.png) 3. After installation, right-click on the desktop. If you see `Git Bash Here`, the installation succeeded. -![](/zh-cn/stage-2/backend/2.4-git-workflow/images/image8.png) +![](/zh-cn/stage-2/backend/git-workflow/images/image8.png) ### macOS @@ -90,18 +90,18 @@ GitHub is a code hosting platform built on top of Git. It provides remote storag GitHub is also the world's largest and most influential open-source community. The idea of open source is that anyone can download and run the source code of a project. That allows people around the world to inspect each other's work, improve it, and build new things on top of it. -![](/zh-cn/stage-2/backend/2.4-git-workflow/images/image9.png) +![](/zh-cn/stage-2/backend/git-workflow/images/image9.png) Large companies often open-source tools and tutorials on GitHub as part of their technical strategy. In the GitHub ecosystem, the number of `stars` a project receives is one of the most visible indicators of trust and influence. -![](/zh-cn/stage-2/backend/2.4-git-workflow/images/image10.png) +![](/zh-cn/stage-2/backend/git-workflow/images/image10.png) In this course, many supporting resources and assignments are also published in GitHub repositories. By learning to upload your own work there, you gradually build the workflow you will use for real application development later. ## Create a GitHub account 1. Visit [GitHub](https://github.com/) and click `Sign up` in the top-right corner. - ![](/zh-cn/stage-2/backend/2.4-git-workflow/images/image11.png) + ![](/zh-cn/stage-2/backend/git-workflow/images/image11.png) 2. Enter your email address, create a password, and complete the verification steps. 3. Confirm your email, and your account is ready. @@ -109,9 +109,9 @@ In this course, many supporting resources and assignments are also published in Next, let's create your first repository, often shortened to `repo`. -![](/zh-cn/stage-2/backend/2.4-git-workflow/images/image12.png)![](/zh-cn/stage-2/backend/2.4-git-workflow/images/image13.png) +![](/zh-cn/stage-2/backend/git-workflow/images/image12.png)![](/zh-cn/stage-2/backend/git-workflow/images/image13.png) -![](/zh-cn/stage-2/backend/2.4-git-workflow/images/image14.png) +![](/zh-cn/stage-2/backend/git-workflow/images/image14.png) When creating a repository, the main fields mean: @@ -127,15 +127,15 @@ When creating a repository, the main fields mean: For your first repository, it is reasonable to check `Add README`, set the visibility to `Private`, and fill in a name and description you like. Then click `Create repository`. -![](/zh-cn/stage-2/backend/2.4-git-workflow/images/image15.png) +![](/zh-cn/stage-2/backend/git-workflow/images/image15.png) You will now have a clean repository, ready for your files. -![](/zh-cn/stage-2/backend/2.4-git-workflow/images/image16.png) +![](/zh-cn/stage-2/backend/git-workflow/images/image16.png) To download a repository, you use `git clone`, which requires the repository URL. You can find that by clicking the green `Code` button. GitHub usually shows both HTTPS and SSH options. -![](/zh-cn/stage-2/backend/2.4-git-workflow/images/image17.png) +![](/zh-cn/stage-2/backend/git-workflow/images/image17.png) In general, HTTPS is fine for temporary downloads or quick testing, but for your own daily development workflow, SSH is usually the better experience. @@ -178,11 +178,11 @@ The core workflow is simple: **generate a key pair → upload the public key to Prompt: `Help me create the SSH key needed for GitHub login. My email is your_email@gmail.com. Please return the public key for me to copy.` - ![](/zh-cn/stage-2/backend/2.4-git-workflow/images/image18.png) + ![](/zh-cn/stage-2/backend/git-workflow/images/image18.png) After entering the prompt, you may still need to press `Enter` in the terminal pane so the command can continue. Once Trae finishes, it will show you the public key to copy. - ![](/zh-cn/stage-2/backend/2.4-git-workflow/images/image19.png) + ![](/zh-cn/stage-2/backend/git-workflow/images/image19.png) 2. **Generate it manually** Open your terminal and run `ssh-keygen -t ed25519 -C "your_email@example.com"` @@ -199,12 +199,12 @@ The core workflow is simple: **generate a key pair → upload the public key to - On Windows, open `C:\Users\\.ssh\id_ed25519.pub` - On macOS/Linux, run `cat ~/.ssh/id_ed25519.pub` 2. In GitHub, go to your avatar → `Settings` → `SSH and GPG keys` → `New SSH key` - ![](/zh-cn/stage-2/backend/2.4-git-workflow/images/image20.png)![](/zh-cn/stage-2/backend/2.4-git-workflow/images/image21.png) + ![](/zh-cn/stage-2/backend/git-workflow/images/image20.png)![](/zh-cn/stage-2/backend/git-workflow/images/image21.png) 3. Enter a title and paste the public key. -![](/zh-cn/stage-2/backend/2.4-git-workflow/images/image22.png) +![](/zh-cn/stage-2/backend/git-workflow/images/image22.png) -![](/zh-cn/stage-2/backend/2.4-git-workflow/images/image23.png) +![](/zh-cn/stage-2/backend/git-workflow/images/image23.png) 3. **Verify the binding** @@ -227,7 +227,7 @@ Now that we have covered Git, GitHub, SSH, and the setup process, you can start You can directly tell Trae which repository URL you want to clone. -![](/zh-cn/stage-2/backend/2.4-git-workflow/images/image24.png) +![](/zh-cn/stage-2/backend/git-workflow/images/image24.png) ## `git pull`: fetch the latest remote updates @@ -245,7 +245,7 @@ After you modify files locally, you can ask Trae to detect the changes and help Prompt: `I finished. Commit and push to the repository AIID-TEST in ./AIID-TEST.` -![](/zh-cn/stage-2/backend/2.4-git-workflow/images/image25.png) +![](/zh-cn/stage-2/backend/git-workflow/images/image25.png) If the push succeeds, you will be able to see the updated content on GitHub immediately. diff --git a/docs/en/stage-2/backend/2.6-modern-cli/index.md b/docs/en/stage-2/backend/modern-cli/index.md similarity index 95% rename from docs/en/stage-2/backend/2.6-modern-cli/index.md rename to docs/en/stage-2/backend/modern-cli/index.md index c87a73a..d9c2788 100644 --- a/docs/en/stage-2/backend/2.6-modern-cli/index.md +++ b/docs/en/stage-2/backend/modern-cli/index.md @@ -8,13 +8,13 @@ Do you still remember the CLI we introduced before? CLI means using pure text co > On Windows, common terminals include Command Prompt (`cmd`) and PowerShell. You can type `cmd` or `powershell` in the Run/Search box to launch them. -![](/zh-cn/stage-2/backend/2.6-modern-cli/images/image1.png)![](/zh-cn/stage-2/backend/2.6-modern-cli/images/image2.png) +![](/zh-cn/stage-2/backend/modern-cli/images/image1.png)![](/zh-cn/stage-2/backend/modern-cli/images/image2.png) The CLI is naturally good for text-command workflows. Among a small group of geeks (programming enthusiasts pursuing extreme efficiency), CLI is even more popular than GUI. They want to complete everything with the keyboard and feel that moving the mouse can slow down coding efficiency. In industry, CLI is also often the most common interface form, because GUI requires the operating system to draw interfaces and manage windows, which demands more computer resources. CLI only needs to pass received commands to the system for execution. So when connecting to large-scale server clusters, we usually interact only through CLI. -![](/zh-cn/stage-2/backend/2.6-modern-cli/images/image3.png) +![](/zh-cn/stage-2/backend/modern-cli/images/image3.png) For many learners with no CLI experience, command-line operations can feel complicated, with too many commands, and even the fear of "accidentally breaking the computer." No need to worry. Remember how, in previous tutorials, we often asked Trae to help with basic operations? We can use exactly the same idea here. We can ask CLI coding tools to perform all CLI operations for us: entering specific folders, searching and processing files, running or copying open-source projects, and so on. The whole process can be completed through conversation with the CLI AI coding tool. @@ -22,7 +22,7 @@ For many learners with no CLI experience, command-line operations can feel compl We can compare CLI AI coding tools to z.ai and Trae that we used before. In a sense, CLI AI coding tools can be seen as a special kind of z.ai: they also only need a simple chat entry, and then they automatically perform the required operations (sometimes you just need to open a browser manually to check the final result). If compared to AI IDEs, CLI AI coding tools can be seen as the Agent module inside an IDE, which is the side chat panel. -![](/zh-cn/stage-2/backend/2.6-modern-cli/images/image4.png)![](/zh-cn/stage-2/backend/2.6-modern-cli/images/image5.png) +![](/zh-cn/stage-2/backend/modern-cli/images/image4.png)![](/zh-cn/stage-2/backend/modern-cli/images/image5.png) However, because different AI IDEs implement agents in different ways, their capability gaps are large, and AI coding quality is often unstable. CLI AI coding tools are usually developed directly by major tech companies, such as Anthropic behind Claude and OpenAI behind ChatGPT. @@ -66,22 +66,22 @@ At the same time, because model versions update very quickly, we recommend prior Claude Code is an AI coding tool developed by Anthropic based on Claude model capabilities. Its primary interaction happens in the terminal, and it can also be used as a VS Code extension. Similar to an agent inside an AI IDE, it can deeply understand a developer's repository and complete end-to-end development tasks through natural language instructions, including code editing, bug fixing, running and fixing tests, managing Git workflows (such as resolving merge conflicts and creating PRs), explaining complex code, and executing terminal commands. -![](/zh-cn/stage-2/backend/2.6-modern-cli/images/image6.png) +![](/zh-cn/stage-2/backend/modern-cli/images/image6.png) Claude Code's main advantages are: very long context windows (it can handle whole files or even small projects), proactively clarifying ambiguous requirements, automatically planning and allocating execution tasks, and deeply understanding and explaining the entire codebase. Compared with ordinary IDE agents, it is better suited for immersive vibe-coding workflows. In actual use, you can ask it through chat to create new projects, perform CLI operations (such as organizing folders, bulk renaming files, deploying open-source projects), and configure development environments (such as installing and debugging Python environments). If you find some code difficult to understand, or a folder structure unclear, you can directly ask Claude Code to generate structured analysis documentation or explain specific parts step by step. -![](/zh-cn/stage-2/backend/2.6-modern-cli/images/image7.png)![](/zh-cn/stage-2/backend/2.6-modern-cli/images/image8.png) +![](/zh-cn/stage-2/backend/modern-cli/images/image7.png)![](/zh-cn/stage-2/backend/modern-cli/images/image8.png) -![](/zh-cn/stage-2/backend/2.6-modern-cli/images/image9.png)![](/zh-cn/stage-2/backend/2.6-modern-cli/images/image10.png) +![](/zh-cn/stage-2/backend/modern-cli/images/image9.png)![](/zh-cn/stage-2/backend/modern-cli/images/image10.png) If you want to systematically learn Claude Code, you can refer to the course jointly launched by Andrew Ng and Anthropic: https://www.bilibili.com/video/BV176t2zSEpr Next, we will learn how to use Claude Code. Because directly using the official Claude Code is often very expensive (as shown below), we will instead use API platforms that are compatible with Claude Code protocol but based on other large models. -![](/zh-cn/stage-2/backend/2.6-modern-cli/images/image11.png) +![](/zh-cn/stage-2/backend/modern-cli/images/image11.png) You need to learn the different options below (it is best to try all of them), and finally choose the one that suits you best as your main path. @@ -95,11 +95,11 @@ Another approach is using the "Claude Code Route" project. It is an open-source GLM (General Language Model) is a series of large language models independently developed by Zhipu AI. GLM-4.6 is currently the latest version in the GLM family. Its core highlight is strong coding performance (benchmarking Claude Sonnet 4 in public benchmarks and real tasks, and considered top-tier domestically). -![](/zh-cn/stage-2/backend/2.6-modern-cli/images/image12.png) +![](/zh-cn/stage-2/backend/modern-cli/images/image12.png) It also extends the context window to 200K, allowing easier handling of long text and large codebases, while strengthening reasoning and tool-calling capabilities, achieving a good balance between performance and cost. -![](/zh-cn/stage-2/backend/2.6-modern-cli/images/image13.png) +![](/zh-cn/stage-2/backend/modern-cli/images/image13.png) Before connecting GLM, we first need to install Claude Code. @@ -160,7 +160,7 @@ please help me configure and start Claude Code You will see output similar to the following: -![](/zh-cn/stage-2/backend/2.6-modern-cli/images/image14.png) +![](/zh-cn/stage-2/backend/modern-cli/images/image14.png) > 💡 What is an environment variable? > @@ -295,11 +295,11 @@ Above we explained how to replace Claude Code's Anthropic interface with the off [Claude Code Router](https://github.com/musistudio/claude-code-router) is an intelligent routing enhancement tool designed specifically for Claude Code. Its core function is helping users distribute AI requests to models across different platforms as needed, with a high degree of customization. It supports access to dozens of platforms including OpenRouter, DeepSeek, Ollama, Gemini, and more. It can also route tasks to specific models by scenario, such as GLM-4.5, Kimi-K2, and Qwen3-Coder. For example, you can route background tasks to local Ollama to save cost, route long text / long code tasks to Gemini-2.5-Pro, and route code explanation to DeepSeek. -![](/zh-cn/stage-2/backend/2.6-modern-cli/images/image16.png) +![](/zh-cn/stage-2/backend/modern-cli/images/image16.png) This tool also provides convenient UI/CLI configuration management and uses converters to adapt API formats from different platforms. It supports automation integration such as GitHub Actions and custom extensions, solving the problems of "one single model cannot cover all scenarios" and "frequent platform switching is troublesome," helping users use AI tools more flexibly and at lower cost. -![](/zh-cn/stage-2/backend/2.6-modern-cli/images/image17.png) +![](/zh-cn/stage-2/backend/modern-cli/images/image17.png) Below is a quick introduction to installing Claude Code Router. The rough steps are as follows (you can also ask Trae to execute them) to prepare the environment: @@ -310,7 +310,7 @@ npm install -g @musistudio/claude-code-router After installation, you need to confirm the `ccr` command is available locally. If you see output similar to the following, installation is successful: -![](/zh-cn/stage-2/backend/2.6-modern-cli/images/image18.png) +![](/zh-cn/stage-2/backend/modern-cli/images/image18.png) Next, there are two ways to initialize and configure models: @@ -319,7 +319,7 @@ Next, there are two ways to initialize and configure models: If you choose CCR UI, you will see an interface similar to this: -![](/zh-cn/stage-2/backend/2.6-modern-cli/images/image19.png) +![](/zh-cn/stage-2/backend/modern-cli/images/image19.png) At this point, click the "Add Provider" button to see the following interface. You need to: @@ -331,21 +331,21 @@ At this point, click the "Add Provider" button to see the following interface. Y (If you scroll downward there are many advanced options, but you can ignore them for now.) -![](/zh-cn/stage-2/backend/2.6-modern-cli/images/image20.png) +![](/zh-cn/stage-2/backend/modern-cli/images/image20.png) Here are configuration examples for DeepSeek and Kimi: -![](/zh-cn/stage-2/backend/2.6-modern-cli/images/image21.png) +![](/zh-cn/stage-2/backend/modern-cli/images/image21.png) -![](/zh-cn/stage-2/backend/2.6-modern-cli/images/image22.png) +![](/zh-cn/stage-2/backend/modern-cli/images/image22.png) After saving model configuration, you also need to specify the default model in the Router area on the right. Select from the dropdown and set it to `kimi` (recommended), then click `Save and Restart` in the top-right corner. -![](/zh-cn/stage-2/backend/2.6-modern-cli/images/image23.png) +![](/zh-cn/stage-2/backend/modern-cli/images/image23.png) After that, simply run `ccr code` in terminal to start Claude Code workflow through Claude Code Router. -![](/zh-cn/stage-2/backend/2.6-modern-cli/images/image24.png) +![](/zh-cn/stage-2/backend/modern-cli/images/image24.png) ::: @@ -417,7 +417,7 @@ If you are curious why Claude Code performs better than Trae or Cursor agent too The overall implementation style of other CLI AI coding tools is broadly similar. -![](/zh-cn/stage-2/backend/2.6-modern-cli/images/image25.png) +![](/zh-cn/stage-2/backend/modern-cli/images/image25.png) Claude Code decomposes coding tasks into a continuous "perceive - think - act - verify" loop and invokes different tools in the loop to complete work. It imitates human developer workflow: continuously "write code -> run -> inspect result -> improve again." Internally, a main task loop continuously executes steps. In each cycle, Claude can call different tools, such as reading/writing files, executing commands, and searching code, then decide next actions based on real tool outputs. @@ -430,9 +430,9 @@ Several key characteristics are worth noting: ### Codex -![](/zh-cn/stage-2/backend/2.6-modern-cli/images/image26.png) +![](/zh-cn/stage-2/backend/modern-cli/images/image26.png) -![](/zh-cn/stage-2/backend/2.6-modern-cli/images/image27.png) +![](/zh-cn/stage-2/backend/modern-cli/images/image27.png) Similar to Claude Code, Codex is an AI collaborative coding tool developed by OpenAI. You can think of it as the "OpenAI version of Claude Code." Its biggest advantage is efficient adaptation to GPT-5. @@ -448,9 +448,9 @@ npm i -g @openai/codex If you directly use the official OpenAI entry for Codex, setup is very simple. Once you have OpenAI subscription access or corresponding API quota, you only need to run `codex` in command line and follow the prompts to complete login. -![](/zh-cn/stage-2/backend/2.6-modern-cli/images/image28.png) +![](/zh-cn/stage-2/backend/modern-cli/images/image28.png) -![](/zh-cn/stage-2/backend/2.6-modern-cli/images/image29.png) +![](/zh-cn/stage-2/backend/modern-cli/images/image29.png) #### Use Relayed OpenAI API as the Backend @@ -465,7 +465,7 @@ One thing to note: after obtaining token quota, we still need to configure the A In key-group settings, make sure you choose the item specifically for Codex. -![](/zh-cn/stage-2/backend/2.6-modern-cli/images/image30.png) +![](/zh-cn/stage-2/backend/modern-cli/images/image30.png) Next, we need to fill the key you obtained into the prompt below, then give the entire prompt to Trae so it can complete the whole configuration process for you: @@ -679,7 +679,7 @@ If I want to run my own local Dify, I only need to throw this link to Claude Cod After receiving your request, Claude Code will automatically complete a series of operations, including pulling code from GitHub, configuring runtime environments, and starting the project. If any step fails or startup status is abnormal, you only need minor manual handling based on prompts. Beyond Dify, you can also ask Claude Code to deploy most common open-source GitHub projects for you. You just need one chat box and the time to drink a cup of coffee ☕️. -![](/zh-cn/stage-2/backend/2.6-modern-cli/images/image31.png) +![](/zh-cn/stage-2/backend/modern-cli/images/image31.png) ### Explain Code and Write Documentation diff --git a/docs/en/stage-2/backend/2.7-stripe-payment/index.md b/docs/en/stage-2/backend/stripe-payment/index.md similarity index 100% rename from docs/en/stage-2/backend/2.7-stripe-payment/index.md rename to docs/en/stage-2/backend/stripe-payment/index.md diff --git a/docs/en/stage-2/backend/2.5-zeabur-deployment/index.md b/docs/en/stage-2/backend/zeabur-deployment/index.md similarity index 87% rename from docs/en/stage-2/backend/2.5-zeabur-deployment/index.md rename to docs/en/stage-2/backend/zeabur-deployment/index.md index 6ed8a83..3861b94 100644 --- a/docs/en/stage-2/backend/2.5-zeabur-deployment/index.md +++ b/docs/en/stage-2/backend/zeabur-deployment/index.md @@ -8,7 +8,7 @@ Before we begin, let's clarify what deployment actually is. For any website to be visited by external users, it must have a publicly reachable network address. That can be an IP address such as `123.45.67.89`, or a domain such as [google.com](https://google.com/). But the address alone is not enough. Your code, such as HTML, CSS, JavaScript, or React/Vue projects, as well as images and video assets, must live on a server that stays online 24/7 and can answer incoming requests. -![](/zh-cn/stage-2/backend/2.5-zeabur-deployment/images/image1.png) +![](/zh-cn/stage-2/backend/zeabur-deployment/images/image1.png) Image source: https://www.hostinger.com/tutorials/what-is-cloud-hosting @@ -20,7 +20,7 @@ If you deploy everything manually, a project usually involves many steps: 1. **Prepare a server** You first need to buy or rent a cloud server from a provider such as Alibaba Cloud, Tencent Cloud, or AWS EC2. Then you choose its region, CPU, memory, and storage, and learn how to connect to it remotely, often through SSH. - ![](/zh-cn/stage-2/backend/2.5-zeabur-deployment/images/image2.png) + ![](/zh-cn/stage-2/backend/zeabur-deployment/images/image2.png) 2. **Configure the runtime environment** Web apps only run under the correct environment. A Node.js project needs Node installed. A Python project needs Python and its dependencies. If the versions do not match, the app may fail to start. @@ -28,7 +28,7 @@ If you deploy everything manually, a project usually involves many steps: 3. **Upload your files** You need to move your local code and assets to the server, often via Git or file-transfer tools. Large projects can make this step frustrating if uploads break halfway through. -![](/zh-cn/stage-2/backend/2.5-zeabur-deployment/images/image3.png) +![](/zh-cn/stage-2/backend/zeabur-deployment/images/image3.png) 4. **Start the service and test it** After upload, you need to start the app and check whether the assigned address works. If not, the problem may be a firewall-blocked port, or it may be an application bug. In that case, you need to inspect logs. @@ -46,7 +46,7 @@ Platforms such as CloudBase, Vercel, Netlify, and Zeabur exist to eliminate much In many cases, you just connect a GitHub repository or upload your code, and the platform does the rest. -![](/zh-cn/stage-2/backend/2.5-zeabur-deployment/images/image4.png) +![](/zh-cn/stage-2/backend/zeabur-deployment/images/image4.png) --- @@ -316,7 +316,7 @@ In earlier chapters, we already touched on Dify briefly. Now we can launch a ful First, open the [console page](https://zeabur.com/projects): -![](/zh-cn/stage-2/backend/2.5-zeabur-deployment/images/image5.png) +![](/zh-cn/stage-2/backend/zeabur-deployment/images/image5.png) In that interface, you will see a set of service blocks. At the top are options such as `Agent`, `Servers`, `Docs`, and `Templates`: @@ -329,17 +329,17 @@ In that interface, you will see a set of service blocks. At the top are options In the upper-right corner, you can also see your balance. By default, Zeabur usually gives you a small monthly free quota, roughly around 5 USD worth of usage. -![](/zh-cn/stage-2/backend/2.5-zeabur-deployment/images/image6.png) +![](/zh-cn/stage-2/backend/zeabur-deployment/images/image6.png) You can click the balance to inspect daily usage: -![](/zh-cn/stage-2/backend/2.5-zeabur-deployment/images/image7.png) +![](/zh-cn/stage-2/backend/zeabur-deployment/images/image7.png) Now let's create a Dify service. Start by clicking `New Project` on the [console homepage](https://zeabur.com/projects): -![](/zh-cn/stage-2/backend/2.5-zeabur-deployment/images/image8.png) +![](/zh-cn/stage-2/backend/zeabur-deployment/images/image8.png) Zeabur supports several ways to create a service: @@ -347,44 +347,44 @@ Zeabur supports several ways to create a service: Connect your GitHub account and deploy directly from a repository. 2. **Template** Start from a built-in app template such as Dify or n8n. - ![](/zh-cn/stage-2/backend/2.5-zeabur-deployment/images/image9.png) + ![](/zh-cn/stage-2/backend/zeabur-deployment/images/image9.png) 3. **Databases** Deploy databases such as MySQL or MongoDB. - ![](/zh-cn/stage-2/backend/2.5-zeabur-deployment/images/image10.png) + ![](/zh-cn/stage-2/backend/zeabur-deployment/images/image10.png) 4. **Functions** Deploy JavaScript or Python functions. - ![](/zh-cn/stage-2/backend/2.5-zeabur-deployment/images/image11.png) - ![](/zh-cn/stage-2/backend/2.5-zeabur-deployment/images/image12.png) + ![](/zh-cn/stage-2/backend/zeabur-deployment/images/image11.png) + ![](/zh-cn/stage-2/backend/zeabur-deployment/images/image12.png) 5. **Local Project** Upload a local folder and let Zeabur detect how to run it. - ![](/zh-cn/stage-2/backend/2.5-zeabur-deployment/images/image13.png) + ![](/zh-cn/stage-2/backend/zeabur-deployment/images/image13.png) 6. **Docker Image** Deploy from an already built Docker image. - ![](/zh-cn/stage-2/backend/2.5-zeabur-deployment/images/image14.png) + ![](/zh-cn/stage-2/backend/zeabur-deployment/images/image14.png) 7. **Cursor** Deploy directly from a project you are editing in Cursor. If you want to deploy Dify, the easiest path is **Template**. Search for `dify`, choose a version you like, and continue. -![](/zh-cn/stage-2/backend/2.5-zeabur-deployment/images/image15.png) +![](/zh-cn/stage-2/backend/zeabur-deployment/images/image15.png) Then choose any project name. Zeabur will generate a temporary domain based on that name. -![](/zh-cn/stage-2/backend/2.5-zeabur-deployment/images/image16.png) +![](/zh-cn/stage-2/backend/zeabur-deployment/images/image16.png) After creation, you will see multiple services starting one after another. Dify is not a single program, but rather a group of coordinated services, so you need to wait until they are all running. In many setups, you can click the main Dify app to get the access address. In this example, however, the final entry point is exposed through `nginx`, so you need to open the `nginx` service and find the public service address there. -![](/zh-cn/stage-2/backend/2.5-zeabur-deployment/images/image17.png) +![](/zh-cn/stage-2/backend/zeabur-deployment/images/image17.png) After waiting a bit, you should see the Dify login screen. Register an account with your email and password, and your own Dify service is ready. -![](/zh-cn/stage-2/backend/2.5-zeabur-deployment/images/image18.png) +![](/zh-cn/stage-2/backend/zeabur-deployment/images/image18.png) You can also launch `n8n` in a similar way if you want another AI workflow tool: -![](/zh-cn/stage-2/backend/2.5-zeabur-deployment/images/image19.png)![](/zh-cn/stage-2/backend/2.5-zeabur-deployment/images/image20.png) +![](/zh-cn/stage-2/backend/zeabur-deployment/images/image19.png)![](/zh-cn/stage-2/backend/zeabur-deployment/images/image20.png) ## Deploy a Snake game with Zeabur and Trae @@ -392,24 +392,24 @@ To explore Zeabur's more advanced usage, let's deploy something simpler first: a ### Deploy an HTML-based version -![](/zh-cn/stage-2/backend/2.5-zeabur-deployment/images/image23.png) +![](/zh-cn/stage-2/backend/zeabur-deployment/images/image23.png) Trae can generate a browser-based Snake game from plain HTML very easily. Once the project is created locally, you can upload the whole folder to Zeabur using the local-project deployment method described above. -![](/zh-cn/stage-2/backend/2.5-zeabur-deployment/images/image24.png)![](/zh-cn/stage-2/backend/2.5-zeabur-deployment/images/image25.png)![](/zh-cn/stage-2/backend/2.5-zeabur-deployment/images/image26.png) +![](/zh-cn/stage-2/backend/zeabur-deployment/images/image24.png)![](/zh-cn/stage-2/backend/zeabur-deployment/images/image25.png)![](/zh-cn/stage-2/backend/zeabur-deployment/images/image26.png) After deployment, you will enter the service details page: -![](/zh-cn/stage-2/backend/2.5-zeabur-deployment/images/image27.png) +![](/zh-cn/stage-2/backend/zeabur-deployment/images/image27.png) Click `Network` on the left, find `Public Address`, and click `Generate Domain` to create a public URL. -![](/zh-cn/stage-2/backend/2.5-zeabur-deployment/images/image28.png) -![](/zh-cn/stage-2/backend/2.5-zeabur-deployment/images/image29.png) +![](/zh-cn/stage-2/backend/zeabur-deployment/images/image28.png) +![](/zh-cn/stage-2/backend/zeabur-deployment/images/image29.png) Once that address is generated, opening it in the browser will let you play your Snake game publicly: -![](/zh-cn/stage-2/backend/2.5-zeabur-deployment/images/image30.png) +![](/zh-cn/stage-2/backend/zeabur-deployment/images/image30.png) This same method works well for other static HTML-based web apps too. @@ -417,7 +417,7 @@ This same method works well for other static HTML-based web apps too. Now let's deploy a React app instead of a plain HTML app. Compared with static HTML, React is a more modern and component-based frontend framework, and it is common in production applications. -![](/zh-cn/stage-2/backend/2.5-zeabur-deployment/images/image31.png) +![](/zh-cn/stage-2/backend/zeabur-deployment/images/image31.png) #### Refactor into a React architecture @@ -425,7 +425,7 @@ In Trae, you can simply say: `Help me refactor this code into a React architecture.` -![](/zh-cn/stage-2/backend/2.5-zeabur-deployment/images/image32.png) +![](/zh-cn/stage-2/backend/zeabur-deployment/images/image32.png) However, React apps are a bit more demanding to deploy because they rely on a build toolchain and a more structured project layout. @@ -462,13 +462,13 @@ The easiest way is simply to ask Trae: Trae can modify the relevant configuration for you. After that, rebuild the project and upload it to Zeabur again. -![](/zh-cn/stage-2/backend/2.5-zeabur-deployment/images/image33.png) -![](/zh-cn/stage-2/backend/2.5-zeabur-deployment/images/image34.png) +![](/zh-cn/stage-2/backend/zeabur-deployment/images/image33.png) +![](/zh-cn/stage-2/backend/zeabur-deployment/images/image34.png) Once you configure the public network address just as you did for the HTML project, the React app can also be served successfully. -![](/zh-cn/stage-2/backend/2.5-zeabur-deployment/images/image35.png) -![](/zh-cn/stage-2/backend/2.5-zeabur-deployment/images/image36.png) +![](/zh-cn/stage-2/backend/zeabur-deployment/images/image35.png) +![](/zh-cn/stage-2/backend/zeabur-deployment/images/image36.png) The same idea applies to any other app that needs a port adjustment before deployment. @@ -480,11 +480,11 @@ Because server resources cost money, you should always get in the habit of stopp Open the project's `Settings`: -![](/zh-cn/stage-2/backend/2.5-zeabur-deployment/images/image21.png) +![](/zh-cn/stage-2/backend/zeabur-deployment/images/image21.png) Scroll to the bottom, and you will see controls like the following: -![](/zh-cn/stage-2/backend/2.5-zeabur-deployment/images/image22.png) +![](/zh-cn/stage-2/backend/zeabur-deployment/images/image22.png) You can: diff --git a/docs/en/stage-2/frontend/2.6-design-to-code/index.md b/docs/en/stage-2/frontend/design-to-code/index.md similarity index 94% rename from docs/en/stage-2/frontend/2.6-design-to-code/index.md rename to docs/en/stage-2/frontend/design-to-code/index.md index dfa56a1..575c903 100644 --- a/docs/en/stage-2/frontend/2.6-design-to-code/index.md +++ b/docs/en/stage-2/frontend/design-to-code/index.md @@ -21,7 +21,7 @@ In practice, there are three common paths: This chapter walks through all three so you can choose the one that fits your project. ::: tip Prerequisite -Before starting this chapter, it is helpful to first read [Figma and MasterGo Basics](../2.1-figma-mastergo/). +Before starting this chapter, it is helpful to first read [Figma and MasterGo Basics](../figma-mastergo/). ::: --- @@ -51,7 +51,7 @@ Models with vision capabilities are naturally suited to turning images into code - Match colors and font sizes as closely as possible ``` -![](/zh-cn/stage-2/frontend/2.6-design-to-code/images/image42.png) +![](/zh-cn/stage-2/frontend/design-to-code/images/image42.png) 4. **Save the generated code** - Ask the model to return complete HTML @@ -81,7 +81,7 @@ MasterGo also provides strong AI page generation features and can generate usabl In the top toolbar of the MasterGo editor, you can find the AI tool entry: -![](/zh-cn/stage-2/frontend/2.6-design-to-code/images/image47.png) +![](/zh-cn/stage-2/frontend/design-to-code/images/image47.png) #### Generation flow @@ -91,15 +91,15 @@ In the top toolbar of the MasterGo editor, you can find the AI tool entry: 2. **Inspect the generated result** -![](/zh-cn/stage-2/frontend/2.6-design-to-code/images/image48.png) +![](/zh-cn/stage-2/frontend/design-to-code/images/image48.png) -![](/zh-cn/stage-2/frontend/2.6-design-to-code/images/image49.png) +![](/zh-cn/stage-2/frontend/design-to-code/images/image49.png) 3. **Get the code** - Click the blue `Insert to canvas` button if you want to edit the result visually - Or click the `Code` button on the right to copy the implementation locally -![](/zh-cn/stage-2/frontend/2.6-design-to-code/images/image50.png) +![](/zh-cn/stage-2/frontend/design-to-code/images/image50.png) --- @@ -129,25 +129,25 @@ To use the full Figma Make experience, you usually need Figma Pro. Students can - Upload the design you want to recreate - Add a prompt describing what you want -![](/zh-cn/stage-2/frontend/2.6-design-to-code/images/image43.png) +![](/zh-cn/stage-2/frontend/design-to-code/images/image43.png) 3. **Check the result** - After a short wait, you will see the rendered result - Click the play button in the upper right to preview it fullscreen -![](/zh-cn/stage-2/frontend/2.6-design-to-code/images/image44.png) +![](/zh-cn/stage-2/frontend/design-to-code/images/image44.png) 4. **Fine-tune the details** - Click the editor icon in the upper right - Go back into the familiar Figma editor and make detailed adjustments -![](/zh-cn/stage-2/frontend/2.6-design-to-code/images/image45.png) +![](/zh-cn/stage-2/frontend/design-to-code/images/image45.png) 5. **Export the code** - Once the result looks good, export the code - You can even connect it directly to GitHub -![](/zh-cn/stage-2/frontend/2.6-design-to-code/images/image46.png) +![](/zh-cn/stage-2/frontend/design-to-code/images/image46.png) ### 3.2 Export code with plugins @@ -366,8 +366,8 @@ In this chapter, you learned the three core paths from design prototype to code: ## References -- [Figma and MasterGo Basics](../2.1-figma-mastergo/) -- [Let's Build Hogwarts Portraits](../2.5-hogwarts-portraits/) +- [Figma and MasterGo Basics](../figma-mastergo/) +- [Let's Build Hogwarts Portraits](../hogwarts-portraits/) - [MCP Official Documentation](https://modelcontextprotocol.io/) - [Figma Make Documentation](https://help.figma.com/hc/en-us/sections/360007453634-Figma-Make) - [MasterGo AI Tutorials](https://mastergo.com/tutorials) diff --git a/docs/en/stage-2/frontend/2.1-figma-mastergo/index.md b/docs/en/stage-2/frontend/figma-mastergo/index.md similarity index 87% rename from docs/en/stage-2/frontend/2.1-figma-mastergo/index.md rename to docs/en/stage-2/frontend/figma-mastergo/index.md index 428ea1e..67e1b39 100644 --- a/docs/en/stage-2/frontend/2.1-figma-mastergo/index.md +++ b/docs/en/stage-2/frontend/figma-mastergo/index.md @@ -16,7 +16,7 @@ If you jump straight into implementation or ask AI to generate a full frontend p From a collaboration standpoint, design tools also reduce coordination cost. Designers, product managers, and developers no longer need to imagine the same screen from vague explanations or abstract code. Everyone can discuss versioning, requirement changes, and feedback around a visible, annotatable, iterative canvas. Modern design tools are no longer just drawing software either. They can generate part of the code, manage design systems and component libraries, and automate repetitive work such as alignment, annotation, exporting, and style changes. -![](/zh-cn/stage-2/frontend/2.1-figma-mastergo/images/image8.png) +![](/zh-cn/stage-2/frontend/figma-mastergo/images/image8.png) ### 1.1 The evolution of frontend design tools @@ -26,41 +26,41 @@ In this chapter, we will focus on two representative modern design tools: Figma ## 1.2 How this toolchain emerged -![](/zh-cn/stage-2/frontend/2.1-figma-mastergo/images/image9.png) +![](/zh-cn/stage-2/frontend/figma-mastergo/images/image9.png) Before dedicated interface tools existed, UI design was largely handled by "general-purpose" design tools such as Photoshop. Designers built entire interfaces locally using layered PSD files, then handed those heavy source files to frontend engineers. To recreate the design accurately, frontend engineers had to do three tedious but essential jobs manually. The first was **asset slicing**: extracting buttons, icons, logos, backgrounds, and other visual elements one by one from a PSD file, then exporting them as PNG or JPG files the web could actually load. -![](/zh-cn/stage-2/frontend/2.1-figma-mastergo/images/image10.png) +![](/zh-cn/stage-2/frontend/figma-mastergo/images/image10.png) The second was **measuring dimensions**: manually checking widths, heights, and spacing between elements to ensure everything matched the design pixel by pixel. -![](/zh-cn/stage-2/frontend/2.1-figma-mastergo/images/image11.png) +![](/zh-cn/stage-2/frontend/figma-mastergo/images/image11.png) The third was **reading annotations by hand**: pulling out the "invisible but required" design parameters such as font size, font weight, line height, RGB or HEX colors, shadows, and so on. -![](/zh-cn/stage-2/frontend/2.1-figma-mastergo/images/image12.png) +![](/zh-cn/stage-2/frontend/figma-mastergo/images/image12.png) Only after that did actual frontend implementation begin. Whether the stack is plain HTML/CSS/JS or frameworks like Vue and React, the core process is similar. The frontend rebuilds the page around containers, based on the hierarchy and semantics of the design. A container is a layout boundary that organizes child elements without directly being the final content itself. Structural blocks such as top navbars, sidebars, article lists, and footers rely on containers; inside each block, smaller containers arrange finer elements such as titles, descriptions, timestamps, or thumbnails. -![](/zh-cn/stage-2/frontend/2.1-figma-mastergo/images/image13.png) +![](/zh-cn/stage-2/frontend/figma-mastergo/images/image13.png) In modern frontend frameworks, these structural blocks are typically implemented as **components**. A component is a reusable interface unit with clear boundaries. It includes both layout containers and interaction logic. Any repeated piece of design, such as a consistent button style or a reusable article card, can be abstracted into a component so it can be reused across different pages while keeping layout and styling consistent. The styling layer then restores the visual appearance. Exported image assets become `` tags or background images. Measured dimensions become CSS properties such as `width`, `height`, `margin`, `padding`, and `line-height`. Typography, color, shadow, border radius, and hover or active states become CSS, CSS Modules, CSS-in-JS, or Tailwind rules. At this point, exported assets and annotations provide the visual parameters, while components and structural blocks provide the code organization that makes the interface maintainable and reusable. -![](/zh-cn/stage-2/frontend/2.1-figma-mastergo/images/image14.png) +![](/zh-cn/stage-2/frontend/figma-mastergo/images/image14.png) But the local-file workflow was fundamentally inefficient. Versions were sent through email or cloud drives, old and new drafts were easy to confuse, and collaboration required a lot of manual coordination. As mobile interfaces became more complex and iteration speed increased, Photoshop's "do everything" model became too heavy. Sketch appeared in this phase. It focused on UI work itself, introduced Symbols for highly reusable elements such as buttons and form controls, and paired well with tools like Zeplin for automatic annotations and style snippets. Sketch brought component thinking into design workflows. Still, it remained a desktop tool built around local files, so real-time collaboration never became native. -![](/zh-cn/stage-2/frontend/2.1-figma-mastergo/images/image15.png) +![](/zh-cn/stage-2/frontend/figma-mastergo/images/image15.png) Figma truly changed the game. Starting in 2016, it unified UI design, prototyping, comments, and version history in the browser, with multi-user cursors, online comments, timeline history, and shareable links. -![](/zh-cn/stage-2/frontend/2.1-figma-mastergo/images/image16.png) +![](/zh-cn/stage-2/frontend/figma-mastergo/images/image16.png) From that point on, interface design was no longer scattered across separate machines. It became a shared online canvas that updated in real time. Once that happened, the boundary between design and frontend code became easier to blur through automation and AI. @@ -80,7 +80,7 @@ You can also look at Figma's site-building examples: https://help.figma.com/hc/en-us/sections/35895585621655-Figma-Sites-collection -![](/zh-cn/stage-2/frontend/2.1-figma-mastergo/images/image17.png) +![](/zh-cn/stage-2/frontend/figma-mastergo/images/image17.png) On the left is project creation and resource management. In the top-right area, you will see several common entry points. `Make` lets AI generate a rough interface draft from one sentence. `Design` is the main workspace where you build app and web interfaces, components, and prototypes. `FigJam` works like a team whiteboard for notes, flows, and early discussions. `Buzz` is for brand-scale asset production. `Site` is for publishing designs as accessible websites or documentation pages. @@ -99,7 +99,7 @@ This interface is roughly divided into three areas: - The right side is the properties panel where you change shape, color, and style details. - The toolbar lets you switch between selection, shapes, text, comments, and plugins. After selecting a tool, you can press `Esc` to return to the default pointer. -![](/zh-cn/stage-2/frontend/2.1-figma-mastergo/images/image18.png) +![](/zh-cn/stage-2/frontend/figma-mastergo/images/image18.png) ### 2.2 Create your first Frame @@ -111,7 +111,7 @@ Before placing elements, we need a clear page boundary. In Figma, that boundary This Frame becomes the container for one complete screen. Your title, text, buttons, and images should all live inside it instead of floating freely on the canvas. Working inside a Frame helps later with scrolling, responsiveness, exporting, and prototyping. -![](/zh-cn/stage-2/frontend/2.1-figma-mastergo/images/image19.png) +![](/zh-cn/stage-2/frontend/figma-mastergo/images/image19.png) ### 2.3 Add text and basic elements inside the Frame @@ -121,19 +121,19 @@ Now that we have a container, let's place the most basic interface elements: a t 2. Add one line of supporting text under the title. Use a smaller font size and slightly larger line height so it reads more comfortably. 3. Sketch out a button: Use the rectangle tool to draw something around `200 x 48`, give it a noticeable fill color, and add some border radius. - ![](/zh-cn/stage-2/frontend/2.1-figma-mastergo/images/image20.png) + ![](/zh-cn/stage-2/frontend/figma-mastergo/images/image20.png) 4. Add button text on top, such as `Get Started`, then select both the rectangle and the text and align them horizontally and vertically. 5. Add a larger light-gray rectangle beside or below the button as a placeholder image area. At this point, you already have a very rough but structurally complete homepage draft: a title, a piece of body text, a button, and a main display area. -![](/zh-cn/stage-2/frontend/2.1-figma-mastergo/images/image21.png) +![](/zh-cn/stage-2/frontend/figma-mastergo/images/image21.png) ### 2.4 Use Auto Layout to organize elements If all elements are positioned manually, the page becomes messy very quickly. One of Figma's most important concepts is **Auto Layout**, which turns a group of elements into a rule-based container. -![](/zh-cn/stage-2/frontend/2.1-figma-mastergo/images/image22.png) +![](/zh-cn/stage-2/frontend/figma-mastergo/images/image22.png) Select the main title, subtitle, and button together, then click **Add Auto layout** in the right panel. @@ -143,13 +143,13 @@ Those elements are now wrapped inside a container, and you can adjust several us - The spacing between elements - The padding between the content block and the edge of the container -![](/zh-cn/stage-2/frontend/2.1-figma-mastergo/images/image23.png) +![](/zh-cn/stage-2/frontend/figma-mastergo/images/image23.png) You can use Auto Layout inside the button as well. That gives you a button whose width adjusts automatically when the text changes. Select the button background and button text, add Auto Layout, and turn them into a button container. Then set both width and height to **Hug contents**. Once you do that, the text stays centered and the button width grows or shrinks with the text. -![](/zh-cn/stage-2/frontend/2.1-figma-mastergo/images/image24.png) +![](/zh-cn/stage-2/frontend/figma-mastergo/images/image24.png) ### 2.5 Turn the button into a reusable component @@ -159,15 +159,15 @@ Starting from the button that already has Auto Layout: 1. Select the entire button container. 2. Right-click and choose **Create component**. - ![](/zh-cn/stage-2/frontend/2.1-figma-mastergo/images/image25.png) + ![](/zh-cn/stage-2/frontend/figma-mastergo/images/image25.png) The button is now promoted from a set of ordinary layers to a component master. When you need the same button style somewhere else, you can drag it out from the Assets panel. -![](/zh-cn/stage-2/frontend/2.1-figma-mastergo/images/image26.png) +![](/zh-cn/stage-2/frontend/figma-mastergo/images/image26.png) Every inserted button is now a synchronized instance of that master. If you later change the master's color, corner radius, or spacing, all instances update together. -![](/zh-cn/stage-2/frontend/2.1-figma-mastergo/images/image27.png) +![](/zh-cn/stage-2/frontend/figma-mastergo/images/image27.png) At this point, you already understand the basic usage of Figma. You do not need to master every function on day one. Just build your first simple page, get comfortable with the core operations above, and explore more capabilities over time. @@ -184,7 +184,7 @@ https://mastergo.com/tutorials/12?%E5%85%A8%E7%A8%8B%E9%AB%98%E8%83%BD%EF%BC%8CM 1. **Enter the MasterGo workspace** 1. Open the MasterGo website and sign in. 2. After entering, you will see a homepage similar to a file list or project list, where your design files are managed. - ![](/zh-cn/stage-2/frontend/2.1-figma-mastergo/images/image28.png) + ![](/zh-cn/stage-2/frontend/figma-mastergo/images/image28.png) 2. **Create a new file** 1. Click the `+ Design File` button in the top-right corner, or choose to import files such as Figma files. @@ -193,7 +193,7 @@ https://mastergo.com/tutorials/12?%E5%85%A8%E7%A8%8B%E9%AB%98%E8%83%BD%EF%BC%8CM 3. **Understand the major interface regions** Once you know Figma, MasterGo feels very similar. The main areas are: - ![](/zh-cn/stage-2/frontend/2.1-figma-mastergo/images/image29.png) + ![](/zh-cn/stage-2/frontend/figma-mastergo/images/image29.png) 1. The top toolbar: file location and name on the left, common tool buttons in the middle, and online collaborators, sharing, zoom, and preview controls on the right. 2. The left panel: layers and assets, including the page list and the structure of the current page. 3. The central canvas: the workspace where Frames, components, and graphics are actually placed and arranged. @@ -216,50 +216,50 @@ Before placing content, we need a page container to define the boundary and size 1. Find the Frame in the layer panel. 2. Double-click the name and rename it to something like `My First Page`. -![](/zh-cn/stage-2/frontend/2.1-figma-mastergo/images/image30.png) +![](/zh-cn/stage-2/frontend/figma-mastergo/images/image30.png) ### 3.3 Build content on the artboard Once you have a container, you can build a similar page using the same ideas we already used in Figma. You can even try copying text elements from the Figma artboard directly into MasterGo. -![](/zh-cn/stage-2/frontend/2.1-figma-mastergo/images/image31.png) +![](/zh-cn/stage-2/frontend/figma-mastergo/images/image31.png) One thing worth noting is that Auto Layout behaves a little differently. In MasterGo, if you want button width to expand or shrink with the text, you first need to create a container or component around the rectangle element, as shown below: -![](/zh-cn/stage-2/frontend/2.1-figma-mastergo/images/image32.png) +![](/zh-cn/stage-2/frontend/figma-mastergo/images/image32.png) After creating the container, put the button background and text into that shared container, then enable Auto Layout from the right-side panel. That lets the button width respond to the text length successfully. -![](/zh-cn/stage-2/frontend/2.1-figma-mastergo/images/image33.png) +![](/zh-cn/stage-2/frontend/figma-mastergo/images/image33.png) -![](/zh-cn/stage-2/frontend/2.1-figma-mastergo/images/image34.png) +![](/zh-cn/stage-2/frontend/figma-mastergo/images/image34.png) ### 3.4 AI-generated pages -![](/zh-cn/stage-2/frontend/2.1-figma-mastergo/images/image35.png) +![](/zh-cn/stage-2/frontend/figma-mastergo/images/image35.png) One especially interesting feature in MasterGo is AI page generation. You can enter a sentence or provide a reference image, and MasterGo can generate editable components and code for you. You can write the prompt in either Chinese or English. The system will return a clearly structured page draft based on your request. -![](/zh-cn/stage-2/frontend/2.1-figma-mastergo/images/image36.png) +![](/zh-cn/stage-2/frontend/figma-mastergo/images/image36.png) -![](/zh-cn/stage-2/frontend/2.1-figma-mastergo/images/image37.png) +![](/zh-cn/stage-2/frontend/figma-mastergo/images/image37.png) Once the design document is generated, click to start generation and wait briefly for the rendered result: -![](/zh-cn/stage-2/frontend/2.1-figma-mastergo/images/image38.png) +![](/zh-cn/stage-2/frontend/figma-mastergo/images/image38.png) At this point, you have two options: - Click the blue button to insert the generated result directly into the canvas - Open the code preview and get the code for the full current page -![](/zh-cn/stage-2/frontend/2.1-figma-mastergo/images/image39.png) +![](/zh-cn/stage-2/frontend/figma-mastergo/images/image39.png) -![](/zh-cn/stage-2/frontend/2.1-figma-mastergo/images/image40.png) +![](/zh-cn/stage-2/frontend/figma-mastergo/images/image40.png) After inserting the result into the canvas, you can further refine the overall layout and element details such as typography, colors, and spacing until the final result matches your expectations. -![](/zh-cn/stage-2/frontend/2.1-figma-mastergo/images/image41.png) +![](/zh-cn/stage-2/frontend/figma-mastergo/images/image41.png) --- @@ -270,7 +270,7 @@ In this chapter, you learned the basic operations of both Figma and MasterGo and **How do you convert these design drafts into frontend code that actually runs in the browser?** ::: tip Next Tutorial -For the detailed workflow, continue with [From Design Prototype to Project Code](../2.6-design-to-code/). You will learn: +For the detailed workflow, continue with [From Design Prototype to Project Code](../design-to-code/). You will learn: - **Direct multimodal AI conversion**: send screenshots of your design to AI and generate HTML or React code directly - **Figma Make**: use Figma's official AI tooling to recreate a design precisely and export code @@ -301,7 +301,7 @@ Now that you know the basics of modern frontend design tools, you can try: - Designing a personal portfolio page for yourself - Designing prototypes for your next project -- Continuing to [From Design Prototype to Project Code](../2.6-design-to-code/) to turn designs into runnable code +- Continuing to [From Design Prototype to Project Code](../design-to-code/) to turn designs into runnable code -If you are working through the [Let's Build Hogwarts Portraits](../2.5-hogwarts-portraits/) project, you can start by designing the interface prototype, then export code and combine it with AI conversation features. +If you are working through the [Let's Build Hogwarts Portraits](../hogwarts-portraits/) project, you can start by designing the interface prototype, then export code and combine it with AI conversation features. ::: diff --git a/docs/en/stage-2/frontend/2.5-hogwarts-portraits/index.md b/docs/en/stage-2/frontend/hogwarts-portraits/index.md similarity index 95% rename from docs/en/stage-2/frontend/2.5-hogwarts-portraits/index.md rename to docs/en/stage-2/frontend/hogwarts-portraits/index.md index ceca5fc..0934944 100644 --- a/docs/en/stage-2/frontend/2.5-hogwarts-portraits/index.md +++ b/docs/en/stage-2/frontend/hogwarts-portraits/index.md @@ -17,7 +17,7 @@ If any of these still feel unclear, go back to the previous lesson or ask in the This chapter's project is **Hogwarts Portraits**. As the name suggests, it is inspired by the magical portraits in Hogwarts that seem to come alive. Our goal is to use AI to create an interactive magical portrait experience. Talking to the portrait should feel like talking to the character directly: it should preserve conversational memory and also know the character's background and history. Through this project, you will integrate the AI agent and workflow concepts you learned earlier into a real product interface. -![](/zh-cn/stage-2/frontend/2.5-hogwarts-portraits/images/image1.png) +![](/zh-cn/stage-2/frontend/hogwarts-portraits/images/image1.png) To really build Hogwarts Portraits, we need to create a frontend interface that matches the feeling of a magical portrait. That means touching modern frontend design tools, learning how to combine design and code, and turning a sketch on a canvas into a real webpage. @@ -42,7 +42,7 @@ What kind of "magical portrait" are we actually trying to build? Put simply, we want to recreate the feeling of the living portraits in the Harry Potter world. The portrait should no longer be a static image hanging on a wall. Instead, it should be a person-like character you can talk to, and it should change expression or "mood" depending on the conversation. -![](/zh-cn/stage-2/frontend/2.5-hogwarts-portraits/images/image2.png) +![](/zh-cn/stage-2/frontend/hogwarts-portraits/images/image2.png) To make the portrait feel less like a generic chatbot and more like a "real person," we need to solve two things. @@ -52,7 +52,7 @@ The second is **speech style**. Knowledge alone is not enough. We also want the On top of the dialogue itself, we also want the character's emotions to be visible. To do that, we can create an emotion score. Dify can be configured to output not only a textual answer, but also a "mood score" or emotion label. Once the frontend receives that signal, it can render different portrait images based on the score. A high score might map to a happy portrait, while a low score might map to a sad or angry one. In that way, the portrait becomes something that visually changes with the conversation instead of remaining a static image. -![](/zh-cn/stage-2/frontend/2.5-hogwarts-portraits/images/image3.png) +![](/zh-cn/stage-2/frontend/hogwarts-portraits/images/image3.png) The character can be a real-world celebrity, a historical person, an anime or game character, or even an original character you create from scratch. The page itself does not need to be very complicated, but a few key elements are essential: @@ -90,7 +90,7 @@ For the portrait visuals, directly using public images of a real person may not This tutorial uses [Lovart](https://www.lovart.ai/home), an AI design agent that supports end-to-end workflows from concept to asset delivery. With Lovart, you can generate a whole set of emotional portrait variations and save them for later use. -![](/zh-cn/stage-2/frontend/2.5-hogwarts-portraits/images/image4.png) +![](/zh-cn/stage-2/frontend/hogwarts-portraits/images/image4.png) Once all of that is ready, you can start designing the overall page. Ideally, the visual style should feel strongly tied to the character. @@ -104,7 +104,7 @@ At the prototype level, you can start with something simple. As described above, In this example, the right side is designed like an X-style social panel instead of a traditional biography area, but you can replace that region with any feature that better fits the character. -![](/zh-cn/stage-2/frontend/2.5-hogwarts-portraits/images/image5.png) +![](/zh-cn/stage-2/frontend/hogwarts-portraits/images/image5.png) At the most basic level, you can even sketch the first page prototype in PowerPoint. In the example, a magical frame image was used, and the page is arranged horizontally: @@ -112,11 +112,11 @@ At the most basic level, you can even sketch the first page prototype in PowerPo - center: portrait area - far right: X-style panel -![](/zh-cn/stage-2/frontend/2.5-hogwarts-portraits/images/image6.png) +![](/zh-cn/stage-2/frontend/hogwarts-portraits/images/image6.png) Once that rough prototype exists, you can ask an LLM to turn it into a real frontend design and then into actual code. -![](/zh-cn/stage-2/frontend/2.5-hogwarts-portraits/images/image7.png) +![](/zh-cn/stage-2/frontend/hogwarts-portraits/images/image7.png) Of course, in real frontend work we usually do not use PowerPoint for interface design. We use better prototyping tools and proper frontend design tools instead. @@ -125,7 +125,7 @@ Of course, in real frontend work we usually do not use PowerPoint for interface # 2. Design the interface with Figma and MasterGo ::: tip Prerequisite -Before this section, it is recommended that you first complete [Figma and MasterGo Basics](../2.1-figma-mastergo/), including: +Before this section, it is recommended that you first complete [Figma and MasterGo Basics](../figma-mastergo/), including: - creating Design files and Frames - using Auto Layout for adaptive structure - exporting code from design tools @@ -199,11 +199,11 @@ By this point, you should already have HTML or React prototype code from the des That is often enough to get a first testable version running, although you should expect errors at this stage. Be patient and keep debugging until the basic interactions work. -![](/zh-cn/stage-2/frontend/2.5-hogwarts-portraits/images/image51.png) +![](/zh-cn/stage-2/frontend/hogwarts-portraits/images/image51.png) One important point: all secret keys should be stored in environment variables instead of being hardcoded. That includes your Dify API credentials. Later, when you deploy the project publicly, you can define those environment variables directly on the deployment platform. Another option is to let the model build a settings panel in the app itself so the variables are saved only in the current page context and are not exposed publicly. -![](/zh-cn/stage-2/frontend/2.5-hogwarts-portraits/images/image52.png) +![](/zh-cn/stage-2/frontend/hogwarts-portraits/images/image52.png) ## 3.2 Design the Dify workflow and connect the API @@ -217,7 +217,7 @@ You can model your Dify workflow after the example project. In our example: In many cases, the magical portrait only needs the chat area and the emotional portrait itself. The X-style social region is included here mainly to demonstrate that you can add extra behavior tailored to the character. -![](/zh-cn/stage-2/frontend/2.5-hogwarts-portraits/images/image53.png) +![](/zh-cn/stage-2/frontend/hogwarts-portraits/images/image53.png) You can put your role background information into the knowledge-base node and define the response behavior in the `RESPONSE` node. A simple default response prompt might look like this: @@ -366,16 +366,16 @@ Congratulations, you have now completed the development version of your Hogwarts The next step is to upload it to GitHub and deploy it publicly so other people can access it. For GitHub, review: -[What Is GitHub](/en/stage-2/backend/2.4-git-workflow/) +[What Is GitHub](/en/stage-2/backend/git-workflow/) For deployment with Zeabur, review: -[How to Deploy a Web App](/en/stage-2/backend/2.5-zeabur-deployment/) +[How to Deploy a Web App](/en/stage-2/backend/zeabur-deployment/) If building the entire Hogwarts Portraits project from scratch feels too difficult, you can start by modifying an existing implementation. The official codebase for this lesson is: https://github.com/THU-SIGS-AIID/Project4-Hogwarts-Portraits -![](/zh-cn/stage-2/frontend/2.5-hogwarts-portraits/images/image54.png) +![](/zh-cn/stage-2/frontend/hogwarts-portraits/images/image54.png) # 4. Try different design styles @@ -394,7 +394,7 @@ For example: The example below shows a Chinese classical poet reinterpretation of the same interface. The portrait image was left unchanged, while the surrounding visual system was redesigned. -![](/zh-cn/stage-2/frontend/2.5-hogwarts-portraits/images/image55.png) +![](/zh-cn/stage-2/frontend/hogwarts-portraits/images/image55.png) Do not feel constrained by the exact layout used earlier in the chapter. You can reshape the portrait page to better match the habits and personality of the role you are portraying. That is what makes the final application more interesting. diff --git a/docs/en/stage-2/frontend/2.4-llm-skills-beautiful/index.md b/docs/en/stage-2/frontend/llm-skills-beautiful/index.md similarity index 100% rename from docs/en/stage-2/frontend/2.4-llm-skills-beautiful/index.md rename to docs/en/stage-2/frontend/llm-skills-beautiful/index.md diff --git a/docs/en/stage-2/frontend/2.0-lovart-assets/index.md b/docs/en/stage-2/frontend/lovart-assets/index.md similarity index 92% rename from docs/en/stage-2/frontend/2.0-lovart-assets/index.md rename to docs/en/stage-2/frontend/lovart-assets/index.md index c38723c..9bdf17d 100644 --- a/docs/en/stage-2/frontend/2.0-lovart-assets/index.md +++ b/docs/en/stage-2/frontend/lovart-assets/index.md @@ -1,7 +1,7 @@ # Starting from NanoBanana: Build Your Own Asset Production Agent @@ -18,11 +18,11 @@ Mainstream large models now already support image generation and editing. These To keep the process as simple as possible, this tutorial uses a model with stable image generation and editing capabilities as the example: NanoBanana. It is an image generation model from Google. Its formal name is **Gemini 3.1 Flash Image Preview**. It supports direct image generation from natural language, and also supports editing based on existing images. -![](/zh-cn/stage-2/frontend/2.0-lovart-assets/images/image1.png) +![](/zh-cn/stage-2/frontend/lovart-assets/images/image1.png) In terms of core capability, it is not fundamentally different from other models you may have heard of (such as GPT-4o, Claude, Qwen, Midjourney, and others): **you provide the description, and the model generates the result.** -![](/zh-cn/stage-2/frontend/2.0-lovart-assets/images/image2.png)![](/zh-cn/stage-2/frontend/2.0-lovart-assets/images/image3.png)![](/zh-cn/stage-2/frontend/2.0-lovart-assets/images/image4.png) +![](/zh-cn/stage-2/frontend/lovart-assets/images/image2.png)![](/zh-cn/stage-2/frontend/lovart-assets/images/image3.png)![](/zh-cn/stage-2/frontend/lovart-assets/images/image4.png) You can think of it as a "brush." In this chapter we care about only one thing: 👉 **can this brush draw its first stroke in your hands?** @@ -35,15 +35,15 @@ Before we start, you only need to complete these three steps: 1. Create a new folder in Trae -![](/zh-cn/stage-2/frontend/2.0-lovart-assets/images/image5.png) +![](/zh-cn/stage-2/frontend/lovart-assets/images/image5.png) 2. Create a new Python file -![](/zh-cn/stage-2/frontend/2.0-lovart-assets/images/image6.png) +![](/zh-cn/stage-2/frontend/lovart-assets/images/image6.png) -![](/zh-cn/stage-2/frontend/2.0-lovart-assets/images/image7.png) +![](/zh-cn/stage-2/frontend/lovart-assets/images/image7.png) -![](/zh-cn/stage-2/frontend/2.0-lovart-assets/images/image8.png) +![](/zh-cn/stage-2/frontend/lovart-assets/images/image8.png) 3. Paste the full code below @@ -267,7 +267,7 @@ if __name__ == "__main__": When Trae indicates successful execution, click the local link it provides (usually `http://127.0.0.1:7860`). -![](/zh-cn/stage-2/frontend/2.0-lovart-assets/images/image9.png) +![](/zh-cn/stage-2/frontend/lovart-assets/images/image9.png) If everything is correct, you will see a working AI drawing interface. @@ -281,7 +281,7 @@ This interface looks simple, but it already includes two of the most important c * **Submit button:** click to send instructions and start generation. * **Right side: display area (** **Output** Zone) - this is where results appear. -![](/zh-cn/stage-2/frontend/2.0-lovart-assets/images/image10.png) +![](/zh-cn/stage-2/frontend/lovart-assets/images/image10.png) Now we can try generating your first image. @@ -301,7 +301,7 @@ After running the code, the flow can be summarized in three steps: After a few seconds, you will see generated results locally. Because model generation is stochastic, the same prompt can produce different outputs. You can generate multiple times and choose the image you prefer. -![](/zh-cn/stage-2/frontend/2.0-lovart-assets/images/image11.png)![](/zh-cn/stage-2/frontend/2.0-lovart-assets/images/image12.png) +![](/zh-cn/stage-2/frontend/lovart-assets/images/image11.png)![](/zh-cn/stage-2/frontend/lovart-assets/images/image12.png) You can also enrich your prompt with more constraints and descriptions. For example, the prompt below tends to generate a more distinctive result: @@ -310,11 +310,11 @@ You can also enrich your prompt with more constraints and descriptions. For exam (一个超写实的带水珠的新鲜红苹果特写,放在深色粗糙木桌上。电影级戏剧光效,轮廓光,浅景深,背景虚化,8k分辨率,微距摄影。) ``` -![](/zh-cn/stage-2/frontend/2.0-lovart-assets/images/image13.png) +![](/zh-cn/stage-2/frontend/lovart-assets/images/image13.png) Click download in the Output Image area to save the image locally. -![](/zh-cn/stage-2/frontend/2.0-lovart-assets/images/image14.png) +![](/zh-cn/stage-2/frontend/lovart-assets/images/image14.png) ### 1.3 Common Material-Generation Scenarios for Image Models @@ -340,7 +340,7 @@ This category is about efficiency. When you need to fill visual blanks in design (一套 3D 天气图标,毛玻璃风格,磨砂质感,柔和渐变色,影棚光,等轴视图) -![](/zh-cn/stage-2/frontend/2.0-lovart-assets/images/image15.png) +![](/zh-cn/stage-2/frontend/lovart-assets/images/image15.png) 2. ##### Generate Logos @@ -353,7 +353,7 @@ This category is about efficiency. When you need to fill visual blanks in design (极简矢量 Logo,结合咖啡杯与代码符号,扁平设计,纯黑线条) -![](/zh-cn/stage-2/frontend/2.0-lovart-assets/images/image16.png) +![](/zh-cn/stage-2/frontend/lovart-assets/images/image16.png) 3. ##### Generate Website User Avatars @@ -366,7 +366,7 @@ This category is about efficiency. When you need to fill visual blanks in design (友好的年轻科技从业者,3D Memoji 风格,黏土渲染) -![](/zh-cn/stage-2/frontend/2.0-lovart-assets/images/image17.png) +![](/zh-cn/stage-2/frontend/lovart-assets/images/image17.png) 4. ##### Generate Article Illustrations @@ -379,7 +379,7 @@ This category is about efficiency. When you need to fill visual blanks in design (远程办公主题扁平插画,企业孟菲斯风格) -![](/zh-cn/stage-2/frontend/2.0-lovart-assets/images/image18.png) +![](/zh-cn/stage-2/frontend/lovart-assets/images/image18.png) #### 2) Reference-Image Generation: Keep Visual Consistency @@ -393,7 +393,7 @@ In game development, UI consistency is very important. Suppose you already have 1. Save the existing blue "PLAY" button image -![](/zh-cn/stage-2/frontend/2.0-lovart-assets/images/image19.png) +![](/zh-cn/stage-2/frontend/lovart-assets/images/image19.png) 2. Drag it into the **Input**** Image** area as the reference master 3. Keep style descriptions in the prompt unchanged and only modify the subject content @@ -408,7 +408,7 @@ With this flow, you can get different functions in the same style by only changi (胶囊形游戏 UI 按钮,白色暂停图标,蓝色果冻质感) -![](/zh-cn/stage-2/frontend/2.0-lovart-assets/images/image20.png) +![](/zh-cn/stage-2/frontend/lovart-assets/images/image20.png) **Variant B: Settings Button (complex icon)** @@ -416,7 +416,7 @@ With this flow, you can get different functions in the same style by only changi (胶囊形游戏 UI 按钮,白色齿轮图标,蓝色果冻质感) -![](/zh-cn/stage-2/frontend/2.0-lovart-assets/images/image21.png) +![](/zh-cn/stage-2/frontend/lovart-assets/images/image21.png) **Variant C: Replay Button (shape variation)** @@ -426,7 +426,7 @@ If you need to change the button shape, describe that shape directly in the prom (圆形游戏 UI 按钮,循环箭头图标,蓝色果冻质感) -![](/zh-cn/stage-2/frontend/2.0-lovart-assets/images/image22.png) +![](/zh-cn/stage-2/frontend/lovart-assets/images/image22.png) With this set of operations, you can not only change button function and icon, but also button shape, while keeping high consistency in material, color, and lighting. This is exactly the core value of large models in design-asset scaling scenarios. @@ -446,9 +446,9 @@ At this point, we need to introduce an **AI Agent**. This section uses **Lovart* Lovart is an agent-based web design tool. Compared with ordinary image generation tools, it adds one extra layer of "thinking and planning" before generation. -![](/zh-cn/stage-2/frontend/2.0-lovart-assets/images/image23.png) +![](/zh-cn/stage-2/frontend/lovart-assets/images/image23.png) -![](/zh-cn/stage-2/frontend/2.0-lovart-assets/images/image24.png) +![](/zh-cn/stage-2/frontend/lovart-assets/images/image24.png) After entering Lovart, you mainly need to understand the following controls: @@ -458,7 +458,7 @@ Click the cube icon below the input box to view currently available generation m To stay consistent with earlier examples, this section still uses NanoBanana as the underlying generation model. -![](/zh-cn/stage-2/frontend/2.0-lovart-assets/images/image25.png) +![](/zh-cn/stage-2/frontend/lovart-assets/images/image25.png) #### Thinking Mode @@ -467,9 +467,9 @@ This is Lovart's core switch: * **Fast Mode (⚡):** close to native API behavior, fast response, suitable for single images with clear instructions * **Thinking Mode (💡):** agent mode, where AI first decomposes requirements and rewrites prompts, then generates -![](/zh-cn/stage-2/frontend/2.0-lovart-assets/images/image26.png) +![](/zh-cn/stage-2/frontend/lovart-assets/images/image26.png) -![](/zh-cn/stage-2/frontend/2.0-lovart-assets/images/image27.png) +![](/zh-cn/stage-2/frontend/lovart-assets/images/image27.png) #### Internet Capability @@ -499,11 +499,11 @@ You need to think through character settings and emotional states yourself, and AI does not draw immediately. It first searches online for relevant programmer-duck references, then outputs a decomposed plan, automatically creates scenarios such as Debug, Coffee Break, Panic, and generates multiple visual descriptions. -![](/zh-cn/stage-2/frontend/2.0-lovart-assets/images/image28.png)![](/zh-cn/stage-2/frontend/2.0-lovart-assets/images/image29.png) +![](/zh-cn/stage-2/frontend/lovart-assets/images/image28.png)![](/zh-cn/stage-2/frontend/lovart-assets/images/image29.png) At this step, AI shifts from "executor" to "planner." After AI analyzes the requirement, you can see programmer-duck images with multiple styles and contents on the Lovart canvas and start selecting your preferred style. -![](/zh-cn/stage-2/frontend/2.0-lovart-assets/images/image30.png) +![](/zh-cn/stage-2/frontend/lovart-assets/images/image30.png) #### Step 2: Consistency (Reference-Based Visual Anchoring) @@ -514,13 +514,13 @@ In Lovart, images are not only outputs. They are also inputs for follow-up gener * Choose your favorite "standard duck" from drafts and click the image on the canvas * The image automatically appears in the dialogue area as a reference -![](/zh-cn/stage-2/frontend/2.0-lovart-assets/images/image31.png) +![](/zh-cn/stage-2/frontend/lovart-assets/images/image31.png) * Input a new action (such as happy) and generate The generated result will inherit color palette, proportions, and detail characteristics from the master reference. -![](/zh-cn/stage-2/frontend/2.0-lovart-assets/images/image32.png) +![](/zh-cn/stage-2/frontend/lovart-assets/images/image32.png) ##### Local Reference / Multi-Image Composition @@ -530,11 +530,11 @@ Besides using full images as references, Lovart also supports: Click the left tab on the canvas, choose "Mark," and annotate the local region in the target image. That part is automatically synced into the dialogue box. For example, we can change only the background color here. -![](/zh-cn/stage-2/frontend/2.0-lovart-assets/images/image33.png) +![](/zh-cn/stage-2/frontend/lovart-assets/images/image33.png) -![](/zh-cn/stage-2/frontend/2.0-lovart-assets/images/image34.png) +![](/zh-cn/stage-2/frontend/lovart-assets/images/image34.png) -![](/zh-cn/stage-2/frontend/2.0-lovart-assets/images/image35.png) +![](/zh-cn/stage-2/frontend/lovart-assets/images/image35.png) You can see the newly generated image only changes the background color, which matches our requirement. @@ -544,9 +544,9 @@ For example: you can keep the main character from image A, while replacing only Using programmer ducks as an example, we can keep the duck from the first image and replace the subject element in the second image. -![](/zh-cn/stage-2/frontend/2.0-lovart-assets/images/image36.png) +![](/zh-cn/stage-2/frontend/lovart-assets/images/image36.png) -![](/zh-cn/stage-2/frontend/2.0-lovart-assets/images/image37.png) +![](/zh-cn/stage-2/frontend/lovart-assets/images/image37.png) The final effect is also very strong. You can try other combinations too. @@ -554,15 +554,15 @@ The final effect is also very strong. You can try other combinations too. After generation, you can directly execute operations such as upscale, background removal, and erasing. -![](/zh-cn/stage-2/frontend/2.0-lovart-assets/images/image38.png) +![](/zh-cn/stage-2/frontend/lovart-assets/images/image38.png) -![](/zh-cn/stage-2/frontend/2.0-lovart-assets/images/image39.png) +![](/zh-cn/stage-2/frontend/lovart-assets/images/image39.png) These are not simple filters. They are results from the agent orchestrating different tools automatically. After style direction is confirmed, you can quickly generate a full set of sticker images. -![](/zh-cn/stage-2/frontend/2.0-lovart-assets/images/image40.png) +![](/zh-cn/stage-2/frontend/lovart-assets/images/image40.png) What we finally get is production-ready assets that can be delivered directly, not just one showcase image. @@ -573,7 +573,7 @@ Lovart uses a subscription model. Different plans correspond to different usage This tutorial does not recommend or compare any specific plan. If you need it in actual use, choose paid upgrades based on your own situation. Currently, payment methods include **Alipay** and others. -![](/zh-cn/stage-2/frontend/2.0-lovart-assets/images/image41.png) +![](/zh-cn/stage-2/frontend/lovart-assets/images/image41.png) #### Summary @@ -595,7 +595,7 @@ Image generation models are better at short and clear visual descriptions. But w In essence, image models have "execution" capability but lack an analysis-and-selection process for long text. -![](/zh-cn/stage-2/frontend/2.0-lovart-assets/images/image42.png) +![](/zh-cn/stage-2/frontend/lovart-assets/images/image42.png) ### 3.2 Solution: Use an Agent to Split "Understanding" and "Execution" @@ -606,7 +606,7 @@ This agent has only one core objective: **make the final generated image match t The full flow can be summarized as: **long-text input -> language-model understanding and intent judgment -> generation of suitable visual prompt -> image-model execution -> output image** -![](/zh-cn/stage-2/frontend/2.0-lovart-assets/images/image43.png) +![](/zh-cn/stage-2/frontend/lovart-assets/images/image43.png) How can our agent understand user intent? @@ -623,7 +623,7 @@ In this agent, role division can be summarized in four points: 4. **Gradio and backend APIs as application carrier** They connect UI, model invocation, and result display to ensure the full agent can run stably as a complete web app. -![](/zh-cn/stage-2/frontend/2.0-lovart-assets/images/image44.png) +![](/zh-cn/stage-2/frontend/lovart-assets/images/image44.png) ### 3.3 Practical Preparation: Obtain APIs @@ -638,13 +638,13 @@ Directly reuse the API Key and API URL already configured in Chapter 1. No addit We need a large language model to handle the "thinking layer." This tutorial uses model services provided by SiliconFlow: [https://cloud.siliconflow.cn](https://cloud.siliconflow.cn/) -![](/zh-cn/stage-2/frontend/2.0-lovart-assets/images/image45.png) +![](/zh-cn/stage-2/frontend/lovart-assets/images/image45.png) SiliconFlow provides interfaces compatible with OpenAI API conventions, so it can be called conveniently via standard network requests. Here we use the free `Qwen2.5-7B-Instruct` model. Everything needed for invocation is already included in the prompt below. Before you start, you only need to register an account and create an API Key on the official site. -![](/zh-cn/stage-2/frontend/2.0-lovart-assets/images/image46.png) +![](/zh-cn/stage-2/frontend/lovart-assets/images/image46.png) -![](/zh-cn/stage-2/frontend/2.0-lovart-assets/images/image47.png) +![](/zh-cn/stage-2/frontend/lovart-assets/images/image47.png) This key will be used for later model calls. @@ -652,7 +652,7 @@ This key will be used for later model calls. In this experiment we mainly use Trae to help write code. The tutorial uses `Gemini-3-Pro-Preview`. The overall approach is: create a new project, copy the full prompt below into the dialogue box, replace API keys step by step, run code, and complete testing. -![](/zh-cn/stage-2/frontend/2.0-lovart-assets/images/image48.png) +![](/zh-cn/stage-2/frontend/lovart-assets/images/image48.png) #### Step 1️⃣: Gradio Blocks Base Framework and UI Layout @@ -696,7 +696,7 @@ result_image:gr.Image,标签「生成结果」,type=pil,height=300,初 After opening `http://127.0.0.1:7860` in the browser, you can see Trae generated the page according to requirements. It is generally aligned, and we can move on to the next step. -![](/zh-cn/stage-2/frontend/2.0-lovart-assets/images/image49.png) +![](/zh-cn/stage-2/frontend/lovart-assets/images/image49.png) #### Step 2️⃣: LLM Intent Recognition Module (SiliconFlow API) @@ -757,7 +757,7 @@ Refresh `http://127.0.0.1:7860` and test whether it correctly detects all three 1. Meaningless content: try inputting "你好", "谢谢", and so on. It should be recognized correctly. -![](/zh-cn/stage-2/frontend/2.0-lovart-assets/images/image50.png) +![](/zh-cn/stage-2/frontend/lovart-assets/images/image50.png) 2. Article/long text: here we use a paragraph about AI generated by Doubao. You can also test with your own paper paragraph. @@ -771,11 +771,11 @@ Refresh `http://127.0.0.1:7860` and test whether it correctly detects all three This is also detected successfully. -![](/zh-cn/stage-2/frontend/2.0-lovart-assets/images/image51.png) +![](/zh-cn/stage-2/frontend/lovart-assets/images/image51.png) 3. Direct drawing instruction: here we input "我要画一只猫", and it is also correctly detected. -![](/zh-cn/stage-2/frontend/2.0-lovart-assets/images/image52.png) +![](/zh-cn/stage-2/frontend/lovart-assets/images/image52.png) At this point, we have successfully completed step 2: intent recognition. @@ -854,11 +854,11 @@ It is worth noting that the default System Prompt we preset for prompt generatio If you want to switch to other preset templates, you can modify the earlier prompt or directly modify it through Trae dialogue. -![](/zh-cn/stage-2/frontend/2.0-lovart-assets/images/image53.png) +![](/zh-cn/stage-2/frontend/lovart-assets/images/image53.png) Besides changing underlying code, we can also edit quickly on the webpage. For example, I added one line, "add 'Pic Prompt' at the beginning." You can see the new generated prompt also starts with it. This design is for quickly adjusting the system prompt for generation, so we can switch styles fast. -![](/zh-cn/stage-2/frontend/2.0-lovart-assets/images/image54.png) +![](/zh-cn/stage-2/frontend/lovart-assets/images/image54.png) #### Step 4️⃣: NanoBanana Text-to-Image / Image-to-Image Module @@ -919,21 +919,21 @@ Markdown 格式 完整可运行代码,替换 LLM_API_KEY 和 NANOBANANA_API_KEY 即可直接运行,全流程可用,分支逻辑严格匹配实战版。 ``` -![](/zh-cn/stage-2/frontend/2.0-lovart-assets/images/image55.png) +![](/zh-cn/stage-2/frontend/lovart-assets/images/image55.png) So exciting. We finally generated the first image of this agent. Looking closely, the generated image matches both our text and prompt. At this point, you have basically implemented your own agent. -![](/zh-cn/stage-2/frontend/2.0-lovart-assets/images/image56.png) +![](/zh-cn/stage-2/frontend/lovart-assets/images/image56.png) We also added image-to-image. Upload an image you like, and AI will automatically borrow style cues. -![](/zh-cn/stage-2/frontend/2.0-lovart-assets/images/image57.png) +![](/zh-cn/stage-2/frontend/lovart-assets/images/image57.png) It is also worth mentioning that prompts generated in earlier steps can be edited directly on the webpage, and generation always uses the final prompt at click time. Even if I change it here to "a cute cat," the final output will be just a cute kitten. ## Chapter 4: Summary -![](/zh-cn/stage-2/frontend/2.0-lovart-assets/images/image58.png) +![](/zh-cn/stage-2/frontend/lovart-assets/images/image58.png) **Whew, finally finished.** Honestly, when I finished the last line, I exhaled deeply myself, and you followed the full path to here. Running through this full workflow is already impressive by itself. It means you really put your hands on the keyboard and completed things step by step. Bravo. diff --git a/docs/en/stage-2/frontend/2.7-modern-component-library/index.md b/docs/en/stage-2/frontend/modern-component-library/index.md similarity index 100% rename from docs/en/stage-2/frontend/2.7-modern-component-library/index.md rename to docs/en/stage-2/frontend/modern-component-library/index.md diff --git a/docs/en/stage-2/frontend/2.3-multi-product-ui/index.md b/docs/en/stage-2/frontend/multi-product-ui/index.md similarity index 100% rename from docs/en/stage-2/frontend/2.3-multi-product-ui/index.md rename to docs/en/stage-2/frontend/multi-product-ui/index.md diff --git a/docs/en/stage-2/frontend/2.2-ui-design/index.md b/docs/en/stage-2/frontend/ui-design/index.md similarity index 100% rename from docs/en/stage-2/frontend/2.2-ui-design/index.md rename to docs/en/stage-2/frontend/ui-design/index.md diff --git a/docs/en/stage-2/index.md b/docs/en/stage-2/index.md index 4f7def3..9806875 100644 --- a/docs/en/stage-2/index.md +++ b/docs/en/stage-2/index.md @@ -9,42 +9,42 @@ Welcome to the **Junior Developer** stage! Here, you will go deeper into full-st Master modern frontend development and learn how to use design tools, component libraries, and AI-native UI workflows: @@ -56,32 +56,32 @@ Master modern frontend development and learn how to use design tools, component Learn API design, database management, and application deployment strategies: @@ -93,12 +93,12 @@ Learn API design, database management, and application deployment strategies: Consolidate your full-stack development skills through hands-on projects: @@ -108,7 +108,7 @@ Consolidate your full-stack development skills through hands-on projects: ### AI Capabilities Extension diff --git a/docs/en/stage-3/ai-advanced/3.a2-langgraph-advanced-rag/index.md b/docs/en/stage-3/ai-advanced/langgraph-advanced-rag/index.md similarity index 100% rename from docs/en/stage-3/ai-advanced/3.a2-langgraph-advanced-rag/index.md rename to docs/en/stage-3/ai-advanced/langgraph-advanced-rag/index.md diff --git a/docs/en/stage-3/ai-advanced/3.a1-rag-introduction/index.md b/docs/en/stage-3/ai-advanced/rag-introduction/index.md similarity index 98% rename from docs/en/stage-3/ai-advanced/3.a1-rag-introduction/index.md rename to docs/en/stage-3/ai-advanced/rag-introduction/index.md index fa4ebf7..cfb0957 100644 --- a/docs/en/stage-3/ai-advanced/3.a1-rag-introduction/index.md +++ b/docs/en/stage-3/ai-advanced/rag-introduction/index.md @@ -26,7 +26,7 @@ After completing this tutorial, you will build a systematic beginner-level under Retrieval-Augmented Generation (RAG) is one of the most important technical approaches in generative AI today. Its basic idea is simple: before asking a large model to generate an answer, the system first retrieves information related to the user's question from an external knowledge base, and then passes both the retrieved information and the original question to the model so the model can answer on top of real materials. That external knowledge base can be an enterprise's internal policies, process documents, and product knowledge, or an industry database, regulatory corpus, standards library, and so on. -![](../../../../zh-cn/stage-3/ai-advanced/3.a1-rag-introduction/images/image1.png) +![](../../../../zh-cn/stage-3/ai-advanced/rag-introduction/images/image1.png) At this point, a natural question appears: if large models can already "answer questions directly," why add another layer called Retrieval-Augmented Generation? Especially now that context windows are getting larger and larger, it can seem as if simply handing all relevant material to the model ought to solve most needs. @@ -36,7 +36,7 @@ The real difference is that "being able to produce an answer" and "being able to Even as context windows keep expanding, the idea of dumping all documents into the context at once is still impractical in real systems. The central contradiction shows up in two places: 2. Inference cost is strongly positively correlated with context length. The longer the context, the more inference cost rises, almost linearly and sometimes even superlinearly. For a single call, 8K tokens and 200K tokens live in completely different price and latency ranges, and long context has a much higher cost threshold. - ![](../../../../zh-cn/stage-3/ai-advanced/3.a1-rag-introduction/images/image2.png) + ![](../../../../zh-cn/stage-3/ai-advanced/rag-introduction/images/image2.png) > In meaning, context is the background information and conversation history the model "refers to" when answering a question. In technical terms, it is the total token sequence fed into the model for one inference, such as system and user instructions, message history, and retrieved passages. > @@ -76,7 +76,7 @@ The core idea of RAG, Retrieval-Augmented Generation, is to let a large model an In a typical RAG system, the user's question is not sent directly to the large model. Instead, a retrieval module first finds the most relevant document passages from the enterprise knowledge base, then combines those passages with the original question into a complete context, and finally gives that to the model to generate an answer. This "retrieve first, generate second" pattern allows the model to reason from real reference material instead of only guessing from what it remembers in its parameters. We can look at a typical case: -![](../../../../zh-cn/stage-3/ai-advanced/3.a1-rag-introduction/images/image3.png) +![](../../../../zh-cn/stage-3/ai-advanced/rag-introduction/images/image3.png) 1. Indexing stage @@ -299,7 +299,7 @@ The roots of RAG can be traced back to the DrQA framework in 2017, which first a Broadly speaking, the evolution of RAG can be divided into three stages: -![](../../../../zh-cn/stage-3/ai-advanced/3.a1-rag-introduction/images/image4.png) +![](../../../../zh-cn/stage-3/ai-advanced/rag-introduction/images/image4.png) ## 4.1 First-Generation RAG: Naive RAG @@ -418,11 +418,11 @@ MTEB provides a unified and objective evaluation framework for many embedding mo [HuggingFace MTEB Leaderboard](https://huggingface.co/spaces/mteb/leaderboard) -![](../../../../zh-cn/stage-3/ai-advanced/3.a1-rag-introduction/images/image5.png) +![](../../../../zh-cn/stage-3/ai-advanced/rag-introduction/images/image5.png) Although there are many models on the leaderboard, you do not need to master all of them. In practice, choosing the embedding model bundled by a major model provider, or using a cloud-served model that many people have already validated, is usually a safe choice. You can also filter the leaderboard by category or language in the sidebar: -![](../../../../zh-cn/stage-3/ai-advanced/3.a1-rag-introduction/images/image6.png) +![](../../../../zh-cn/stage-3/ai-advanced/rag-introduction/images/image6.png) When filtering embedding models, two parameters matter especially because they directly affect RAG performance: dimension and context length. @@ -651,7 +651,7 @@ For most enterprises, because business scenarios are unique, the final answer is If resources are limited and you need a fast baseline, public benchmarks are still a useful starting point. As of 2025, many public benchmarks exist for both general and vertical scenarios: -![](../../../../zh-cn/stage-3/ai-advanced/3.a1-rag-introduction/images/image7.png) +![](../../../../zh-cn/stage-3/ai-advanced/rag-introduction/images/image7.png) When choosing among them, first clarify the goal. Are you establishing a baseline, or validating the system before launch? Then check whether the benchmark covers the scenarios and difficulty profile you care about. For time-sensitive domains such as news or finance, make sure the benchmark includes time-sensitive tests. @@ -669,7 +669,7 @@ Hugging Face provides a semantic-cache implementation built on top of the Chroma [https://huggingface.co/learn/cookbook/semantic_cache_chroma_vector_database](https://huggingface.co/learn/cookbook/semantic_cache_chroma_vector_database) -![](../../../../zh-cn/stage-3/ai-advanced/3.a1-rag-introduction/images/image8.png) +![](../../../../zh-cn/stage-3/ai-advanced/rag-introduction/images/image8.png) Background: Most tutorial RAG systems are built for single-user testing. But once deployed to production, the system may receive dozens or thousands of repeated queries, for example support users repeatedly asking how refunds work. If every repeated query still triggers vector retrieval and an LLM call, latency and cost rise quickly. A semantic cache layer can sharply reduce pressure on the original data sources while preserving answer quality. @@ -685,7 +685,7 @@ Another Hugging Face tutorial shows how to use the Unstructured library to build [https://huggingface.co/learn/cookbook/rag_with_unstructured_data](https://huggingface.co/learn/cookbook/rag_with_unstructured_data) -![](../../../../zh-cn/stage-3/ai-advanced/3.a1-rag-introduction/images/image9.png) +![](../../../../zh-cn/stage-3/ai-advanced/rag-introduction/images/image9.png) Background: In enterprise scenarios, knowledge is often scattered across PDFs, PowerPoint decks, EPUBs, HTML pages, and many other formats. Traditional preprocessing methods either support only one format or lose crucial structural information such as tables and title hierarchy during conversion. That makes it difficult for the RAG system to understand and retrieve the content correctly. @@ -718,7 +718,7 @@ The EasyRAG project in an AIOps RAG competition focused on QA for operations sce [http://blog.csdn.net/hustyichi/article/details/143323746](http://blog.csdn.net/hustyichi/article/details/143323746) -![](../../../../zh-cn/stage-3/ai-advanced/3.a1-rag-introduction/images/image10.png) +![](../../../../zh-cn/stage-3/ai-advanced/rag-introduction/images/image10.png) Background: Operations engineers often need to read technical documents that include not only text but also monitoring charts, system architecture diagrams, and performance curves. For example, when diagnosing a system problem, the answer to "What should I do when CPU utilization exceeds 80 percent?" may be scattered between text descriptions and monitoring graphs. Traditional text-only RAG cannot understand chart trends and values, so answers remain incomplete. @@ -737,7 +737,7 @@ The winning solution in the KDD Cup 2024 Meta RAG challenge showed how to integr - [https://blog.csdn.net/m0_59164520/article/details/143694213](https://blog.csdn.net/m0_59164520/article/details/143694213) - https://arxiv.org/pdf/2410.00005 -![](../../../../zh-cn/stage-3/ai-advanced/3.a1-rag-introduction/images/image11.png) +![](../../../../zh-cn/stage-3/ai-advanced/rag-introduction/images/image11.png) Background: Task 1 required retrieval summarization from five web pages. Task 2 added a mock API representing a structured knowledge graph, enabling direct access to things like movie databases and entity relationships. Task 3 raised the difficulty by using fifty web pages plus the mock API to answer more complex queries, such as identifying Nolan-directed films with box office greater than 500 million dollars. Every query had to finish within 30 seconds. @@ -772,7 +772,7 @@ Related research: - [https://arxiv.org/pdf/2502.11371](https://arxiv.org/pdf/2502.11371) - https://arxiv.org/pdf/2404.16130 -![](../../../../zh-cn/stage-3/ai-advanced/3.a1-rag-introduction/images/image12.png) +![](../../../../zh-cn/stage-3/ai-advanced/rag-introduction/images/image12.png) Traditional RAG works by finding text passages similar to the question, which is like picking out the few paragraphs that look most relevant from a pile of material. That works well for direct fact lookup. But if a question requires connecting multiple documents and combining different clues, performance drops. @@ -788,7 +788,7 @@ Related research: - https://arxiv.org/pdf/2502.08826 -![](../../../../zh-cn/stage-3/ai-advanced/3.a1-rag-introduction/images/image13.png) +![](../../../../zh-cn/stage-3/ai-advanced/rag-introduction/images/image13.png) Real-world data is never only text. Engineers diagnosing server failures need to look at temperature curves, device screenshots, and logs together. Doctors making diagnoses need CT or MRI images, test reports, and electronic medical records at the same time. Traditional text RAG can at best retrieve phrases such as "temperature anomaly" or "suspected lung nodule," but it struggles to connect those descriptions to the actual chart trend or image lesion shape, and it cannot reverse-search documents or knowledge from images, audio, or video. @@ -804,7 +804,7 @@ Related introduction: - https://jina.ai/news/late-chunking-in-long-context-embedding-models/ -![](../../../../zh-cn/stage-3/ai-advanced/3.a1-rag-introduction/images/image14.png) +![](../../../../zh-cn/stage-3/ai-advanced/rag-introduction/images/image14.png) Imagine reading a Wikipedia article about Berlin. Traditional RAG would first cut it into independent paragraphs and then embed each chunk. If the first sentence says "Berlin is the capital of Germany," later phrases such as "the city" or "its population" lose their connection to Berlin once separated. A query such as "What is the population of Berlin?" may then fail because the term Berlin and the population information never appeared inside the same chunk. This problem becomes even worse for long documents. In a 200-page insurance contract, the definition of a deductible may appear on page 5 while the conditions under which it applies appear on page 30. Fixed-length chunking can split these related pieces into dozens of isolated chunks, and experiments show that semantic similarity can collapse sharply when that happens. @@ -828,7 +828,7 @@ RAG has developed from a retrieval-augmented generation tool into a key part of Under this paradigm, the role of RAG changes fundamentally. It is no longer only a passive provider of external knowledge. Instead, it becomes the core processing unit that supports intelligent behavior under the agent's active planning, goal direction, and self-reflection. This fusion gives the overall system goal orientation, iterative optimization, and autonomous decision-making, greatly deepening the quality of human-AI interaction. Agentic RAG can understand complex tasks, decompose them, plan retrieval strategies, and evaluate the quality of initial results to decide whether deeper exploration is needed. -![](../../../../zh-cn/stage-3/ai-advanced/3.a1-rag-introduction/images/image15.png) +![](../../../../zh-cn/stage-3/ai-advanced/rag-introduction/images/image15.png) The key to this capability is a multi-layered active loop. Faced with a complex query, the agent first analyzes the nature of the problem, breaks it into subproblems, and designs precise retrieval strategies for each subproblem. After receiving initial results, it evaluates them, judges whether the information is complete and relevant, identifies knowledge gaps, and dynamically generates more precise new queries. This iterative process often includes multi-hop retrieval, where one round of results reveals new directions for the next round, producing a knowledge exploration chain similar to how a human researcher works. diff --git a/docs/en/stage-3/core-skills/basics/index.md b/docs/en/stage-3/core-skills/basics/index.md index 4b8d0b2..7c54122 100644 --- a/docs/en/stage-3/core-skills/basics/index.md +++ b/docs/en/stage-3/core-skills/basics/index.md @@ -85,7 +85,7 @@ Due to network reasons, users in mainland China may not be able to directly acce **Recommended approach**: let an AI Agent help you configure. You only need to provide provider config information (API endpoint, key, etc.), and AI can set environment variables correctly. -**See detailed setup guide:** [How to install claudecode and configure environment variables](/en/stage-2/backend/2.6-modern-cli/) +**See detailed setup guide:** [How to install claudecode and configure environment variables](/en/stage-2/backend/modern-cli/) ::: diff --git a/docs/en/stage-3/core-skills/workflow/index.md b/docs/en/stage-3/core-skills/workflow/index.md index 738e08e..859faef 100644 --- a/docs/en/stage-3/core-skills/workflow/index.md +++ b/docs/en/stage-3/core-skills/workflow/index.md @@ -15,8 +15,8 @@ In this lesson, we will learn how to build a systematic AI-assisted development > > Before studying this section, it is recommended that you first understand: > - [AI IDE Basics](../../stage-1/ai-ide/) - master the basic use of AI IDEs -> - [Git and GitHub Workflow](../../stage-2/backend/2.4-git-workflow/) - understand code version management -> - [Using Large Models to Help Write API Code](../../stage-2/backend/2.3-ai-interface-code/) - understand the basic concept of AI-assisted development +> - [Git and GitHub Workflow](../../stage-2/backend/git-workflow/) - understand code version management +> - [Using Large Models to Help Write API Code](../../stage-2/backend/ai-interface-code/) - understand the basic concept of AI-assisted development ::: info 📚 What you will learn diff --git a/docs/en/stage-3/cross-platform/3.5-android-app/index.md b/docs/en/stage-3/cross-platform/android-app/index.md similarity index 88% rename from docs/en/stage-3/cross-platform/3.5-android-app/index.md rename to docs/en/stage-3/cross-platform/android-app/index.md index 2283b9a..aa7345f 100644 --- a/docs/en/stage-3/cross-platform/3.5-android-app/index.md +++ b/docs/en/stage-3/cross-platform/android-app/index.md @@ -15,7 +15,7 @@ For this tutorial, you should at least have: An Android App is a native application that runs on the Android operating system. Unlike mini programs, it does not depend on a host like WeChat. It runs directly at the system level. It has its own home-screen icon, launches quickly, feels smooth, and can deeply access system-level features such as Bluetooth, sensors, and background services. -![](../../../../zh-cn/stage-3/cross-platform/3.5-android-app/images/image1.png) +![](../../../../zh-cn/stage-3/cross-platform/android-app/images/image1.png) ## 1.2 Android App Development @@ -32,7 +32,7 @@ In real development, there is more than one way to build Android apps. We will n **The first way: Native Development** This is Google's official and recommended route. You directly use **Kotlin** and **Jetpack Compose** to develop. Its advantage is the best performance and full access to phone hardware. -![](../../../../zh-cn/stage-3/cross-platform/3.5-android-app/images/image2.png)![](../../../../zh-cn/stage-3/cross-platform/3.5-android-app/images/image3.png) +![](../../../../zh-cn/stage-3/cross-platform/android-app/images/image2.png)![](../../../../zh-cn/stage-3/cross-platform/android-app/images/image3.png) **The second way: Cross-Platform Development** For example Flutter or React Native. The core idea is "write one codebase and generate both Android and iOS apps." @@ -43,7 +43,7 @@ In essence, this is wrapping a webpage inside an app shell. This is fast to deve **This tutorial's choice: native development (** **Kotlin + Compose)** combined with AI tools for coding. The reason is simple: native Jetpack Compose code has a very clear structure and is highly suitable for AI to understand and generate. We do not need to handwrite code from scratch. Instead, we guide Trae with natural language to generate high-quality native code. -![](../../../../zh-cn/stage-3/cross-platform/3.5-android-app/images/image4.png) +![](../../../../zh-cn/stage-3/cross-platform/android-app/images/image4.png) ## 1.4 Android App Development Steps Covered in This Tutorial @@ -73,7 +73,7 @@ Trae is our main battlefield for **Vibe Coding**. You can think of it simply as Visit the official website [https://www.trae.cn](https://www.trae.cn), download the version matching your computer system (Windows or Mac), and install it just like ordinary software by double-clicking the installer and following the prompts. Once this tool is ready, in later practice we will stop staring at boring code windows and instead open the project here and tell AI what to build using natural language. -![](../../../../zh-cn/stage-3/cross-platform/3.5-android-app/images/image5.png) +![](../../../../zh-cn/stage-3/cross-platform/android-app/images/image5.png) ## 2.3 Download Android Studio @@ -83,7 +83,7 @@ We need Android Studio to provide the Android SDK and emulator required for runn Although modern versions of Android Studio have greatly simplified configuration, it still depends on the **JDK (Java Development Kit)** under the hood. If this is your first time doing development, or if you encounter errors related to environment variables or SDK configuration during installation, do not panic. You can refer to this detailed setup guide: [Android Studio2024版本安装环境SDK、Gradle配置](https://blog.csdn.net/keiraee/article/details/142321644?ops_request_misc=elastic_search_misc&request_id=a2b858d1f665095c53afa9114ad8864d&biz_id=0&utm_medium=distribute.pc_search_result.none-task-blog-2~all~top_positive~default-2-142321644-null-null.142^v102^pc_search_result_base4&utm_term=android%20studio%E5%AE%89%E8%A3%85%E5%8F%8A%E9%85%8D%E7%BD%AE&spm=1018.2226.3001.4187) -![](../../../../zh-cn/stage-3/cross-platform/3.5-android-app/images/image6.png) +![](../../../../zh-cn/stage-3/cross-platform/android-app/images/image6.png) ## 2.4 Create a New Project @@ -93,7 +93,7 @@ Open Android Studio and click **New Project** on the welcome screen. In the template list, select **Empty Activity** (notice the Jetpack Compose icon on it). -![](../../../../zh-cn/stage-3/cross-platform/3.5-android-app/images/image7.png)![](../../../../zh-cn/stage-3/cross-platform/3.5-android-app/images/image8.png) +![](../../../../zh-cn/stage-3/cross-platform/android-app/images/image7.png)![](../../../../zh-cn/stage-3/cross-platform/android-app/images/image8.png) **Step 2: Fill in project configuration** @@ -107,7 +107,7 @@ Then you will see a configuration form. Fill it roughly as follows and keep the | **Minimum SDK** | API 30 | Covers over 90% of active devices while balancing compatibility and features | | **Language** | Kotlin (recommended) | Kotlin is Google's officially recommended language, cleaner and safer | -![](../../../../zh-cn/stage-3/cross-platform/3.5-android-app/images/image9.png) +![](../../../../zh-cn/stage-3/cross-platform/android-app/images/image9.png) **Step 3: Wait for project build** @@ -127,7 +127,7 @@ By default, Android Studio connects to overseas servers, so downloading build to If the bottom-right status bar of Android Studio is currently showing a progress bar like `Gradle Building...`, pause the ongoing dependency download first to avoid file conflicts. -![](../../../../zh-cn/stage-3/cross-platform/3.5-android-app/images/image10.png) +![](../../../../zh-cn/stage-3/cross-platform/android-app/images/image10.png) 2. **Speed up Gradle download** @@ -139,13 +139,13 @@ distributionUrl=https\://mirrors.cloud.tencent.com/gradle/gradle-8.7-bin.zip Be careful: you only need to replace `services.gradle.org/distributions` with `mirrors.cloud.tencent.com/gradle`. Do not change anything else. -![](../../../../zh-cn/stage-3/cross-platform/3.5-android-app/images/image11.png) +![](../../../../zh-cn/stage-3/cross-platform/android-app/images/image11.png) 3. **Speed up dependency repository download** Then, open `settings.gradle.kts` in the project root, and replace the content inside the `repositories` block with the following: -![](../../../../zh-cn/stage-3/cross-platform/3.5-android-app/images/image12.png) +![](../../../../zh-cn/stage-3/cross-platform/android-app/images/image12.png) Replace the highlighted section with this code (latest source list as of 2025-02-21): @@ -165,13 +165,13 @@ Replace the highlighted section with this code (latest source list as of 2025-02 It should then look like the screenshot below: -![](../../../../zh-cn/stage-3/cross-platform/3.5-android-app/images/image13.png) +![](../../../../zh-cn/stage-3/cross-platform/android-app/images/image13.png) 4. **Save and apply changes** At this point, save the file and click `Try Again` in the top-right corner. Android Studio will re-run the download. Wait a few minutes. When the console shows `BUILD SUCCESSFUL`, it means the environment setup is fully complete and we are ready to start coding. -![](../../../../zh-cn/stage-3/cross-platform/3.5-android-app/images/image14.png) +![](../../../../zh-cn/stage-3/cross-platform/android-app/images/image14.png) ## 2.6 Understand the Project Structure @@ -231,7 +231,7 @@ After sending it, Trae will begin analyzing your project structure. A few second 2. We can directly see which parts of the code were rewritten 3. If we are not satisfied with the result, we can roll back to the previous version -![](../../../../zh-cn/stage-3/cross-platform/3.5-android-app/images/image15.png) +![](../../../../zh-cn/stage-3/cross-platform/android-app/images/image15.png) ## 3.2 Run and Preview (Emulator Debugging) @@ -245,27 +245,27 @@ Back in Android Studio, find and click **Device Manager** in the right toolbar. In the panel, click **Add a new device**, then choose **Create Virtual Device** to enter the device selection window. -![](../../../../zh-cn/stage-3/cross-platform/3.5-android-app/images/image16.png) +![](../../../../zh-cn/stage-3/cross-platform/android-app/images/image16.png) -![](../../../../zh-cn/stage-3/cross-platform/3.5-android-app/images/image17.png) +![](../../../../zh-cn/stage-3/cross-platform/android-app/images/image17.png) In the hardware selection window, choose **Phone** and then **Smart Phone** (medium screen size), or any other device profile you prefer such as Pixel, then click **Next**. -![](../../../../zh-cn/stage-3/cross-platform/3.5-android-app/images/image18.png) +![](../../../../zh-cn/stage-3/cross-platform/android-app/images/image18.png) **Step 2: Configure the system image** In the **System Image** dialog, select **API 36.1**. If it has not been downloaded yet, click **Download** first, then select it after download is complete, and click **Finish**. -![](../../../../zh-cn/stage-3/cross-platform/3.5-android-app/images/image19.png) +![](../../../../zh-cn/stage-3/cross-platform/android-app/images/image19.png) **Step 3: Start the emulator** After successful creation, your new phone will appear in the device manager list. Click the **triangle play button** on the right. After a short wait, a phone-shaped window will pop up - this is your Android emulator. -![](../../../../zh-cn/stage-3/cross-platform/3.5-android-app/images/image20.png) +![](../../../../zh-cn/stage-3/cross-platform/android-app/images/image20.png) -![](../../../../zh-cn/stage-3/cross-platform/3.5-android-app/images/image21.png) +![](../../../../zh-cn/stage-3/cross-platform/android-app/images/image21.png) **Step 4: Run the app** @@ -273,9 +273,9 @@ Now comes the magic moment. Make sure the emulator has started and is showing th Within seconds, you should see the emulator screen light up, showing a white wooden fish graphic in the center with the text "Merit: 0" above it. Try tapping it and see whether the number increases and the animation works. This is your first Android app. -![](../../../../zh-cn/stage-3/cross-platform/3.5-android-app/images/image22.png) +![](../../../../zh-cn/stage-3/cross-platform/android-app/images/image22.png) -![](../../../../zh-cn/stage-3/cross-platform/3.5-android-app/images/image23.png) +![](../../../../zh-cn/stage-3/cross-platform/android-app/images/image23.png) ## 3.3 Optimization Iteration (Add Assets and Sound) @@ -291,12 +291,12 @@ You need one wooden fish image (`png`) and one knock sound effect (`mp3`). Here are the image and sound assets I found for you. If it is inconvenient for you to search for your own, you can directly use them. -![](../../../../zh-cn/stage-3/cross-platform/3.5-android-app/images/image24.png) +![](../../../../zh-cn/stage-3/cross-platform/android-app/images/image24.png) Knock sound download link: https://www.aigei.com/s?q=%E6%9C%A8%E9%B1%BC&type=sound Choose the first 1-second sound effect. -![](../../../../zh-cn/stage-3/cross-platform/3.5-android-app/images/image25.png) +![](../../../../zh-cn/stage-3/cross-platform/android-app/images/image25.png) **Step 2: Send the iteration instruction** @@ -309,15 +309,15 @@ I have added the assets. The image path is res/drawable/white_muyu.png and the s 3. When tapped, show a temporary "+1" text above the wooden fish, then let it float upward and disappear (like floating score text in games). ``` -![](../../../../zh-cn/stage-3/cross-platform/3.5-android-app/images/image26.png) +![](../../../../zh-cn/stage-3/cross-platform/android-app/images/image26.png) **Step 3: Verify the result** After Trae finishes modifying the code, return to Android Studio and click the green Run button again (Re-run) to restart the emulator. At this point, your app will feel transformed. Try tapping continuously - you should hear a crisp "tok tok" sound and see the floating "Merit +1" text jumping out. This completes the key transition from "demo" to "product." -![](../../../../zh-cn/stage-3/cross-platform/3.5-android-app/images/image27.png) +![](../../../../zh-cn/stage-3/cross-platform/android-app/images/image27.png) -![](../../../../zh-cn/stage-3/cross-platform/3.5-android-app/images/image28.png) +![](../../../../zh-cn/stage-3/cross-platform/android-app/images/image28.png) ## 3.4 What If Bugs Appear? (Debugging Loop with AI) @@ -351,9 +351,9 @@ Requirements: Please directly provide the updated MainActivity.kt code. ``` -![](../../../../zh-cn/stage-3/cross-platform/3.5-android-app/images/image29.png) +![](../../../../zh-cn/stage-3/cross-platform/android-app/images/image29.png) -![](../../../../zh-cn/stage-3/cross-platform/3.5-android-app/images/image30.png) +![](../../../../zh-cn/stage-3/cross-platform/android-app/images/image30.png) ## 3.5 Final Result Showcase @@ -385,7 +385,7 @@ Make sure the new state (text and number) correctly affects the animation. Please directly provide the full updated MainActivity.kt while keeping the previous sound and animation logic unchanged. ``` -![](../../../../zh-cn/stage-3/cross-platform/3.5-android-app/images/image31.png) +![](../../../../zh-cn/stage-3/cross-platform/android-app/images/image31.png) # 4 Real-device Debugging and Polishing @@ -404,7 +404,7 @@ This is the most convenient method on Android 11 and above. 2. Open **Developer options** and enable **Wireless debugging**. 3. Tap **Wireless debugging** to enter details, then choose **Pair device with QR code**. Your phone will open a scanner view. -![](../../../../zh-cn/stage-3/cross-platform/3.5-android-app/images/image32.png)![](../../../../zh-cn/stage-3/cross-platform/3.5-android-app/images/image33.png) +![](../../../../zh-cn/stage-3/cross-platform/android-app/images/image32.png)![](../../../../zh-cn/stage-3/cross-platform/android-app/images/image33.png) **Step 2: Pair on the computer** @@ -412,7 +412,7 @@ This is the most convenient method on Android 11 and above. 2. Choose **Pair Devices Using Wi-Fi** from the dropdown. 3. A QR code will pop up on screen. -![](../../../../zh-cn/stage-3/cross-platform/3.5-android-app/images/image34.png) +![](../../../../zh-cn/stage-3/cross-platform/android-app/images/image34.png) **Step 3: Scan to connect** @@ -420,11 +420,11 @@ This is the most convenient method on Android 11 and above. 2. Both the phone and computer should show "pairing successful." 3. At this point, Android Studio's top device bar will automatically display your phone model (for example `Google Pixel 8`). -![](../../../../zh-cn/stage-3/cross-platform/3.5-android-app/images/image35.png) +![](../../../../zh-cn/stage-3/cross-platform/android-app/images/image35.png) 4. Run the app by clicking ▶️ Run -![](../../../../zh-cn/stage-3/cross-platform/3.5-android-app/images/image36.png) +![](../../../../zh-cn/stage-3/cross-platform/android-app/images/image36.png) ## 4.2 USB Wired Debugging @@ -438,9 +438,9 @@ Mac users can skip this step, because macOS usually recognizes the phone directl 2. Switch to the **SDK Tools** tab 3. Check **Google USB Driver** and click **Apply** to download and install it -![](../../../../zh-cn/stage-3/cross-platform/3.5-android-app/images/image37.png)![](../../../../zh-cn/stage-3/cross-platform/3.5-android-app/images/image38.png) +![](../../../../zh-cn/stage-3/cross-platform/android-app/images/image37.png)![](../../../../zh-cn/stage-3/cross-platform/android-app/images/image38.png) -![](../../../../zh-cn/stage-3/cross-platform/3.5-android-app/images/image39.png) +![](../../../../zh-cn/stage-3/cross-platform/android-app/images/image39.png) ### 4.2.2 Download the Same SDK Version as Your Real Device @@ -448,7 +448,7 @@ Mac users can skip this step, because macOS usually recognizes the phone directl Using an OPPO phone as an example: open Settings -> About phone -> check Android version (in the example it is Android 12). -![](../../../../zh-cn/stage-3/cross-platform/3.5-android-app/images/image40.png) +![](../../../../zh-cn/stage-3/cross-platform/android-app/images/image40.png) **Step 2: Download that Android platform version in Android Studio** @@ -456,19 +456,19 @@ Using an OPPO phone as an example: open Settings -> About phone -> check Android 2. Stay in the default **SDK Platforms** tab 3. Select Android 12.0 and click Apply to download -![](../../../../zh-cn/stage-3/cross-platform/3.5-android-app/images/image41.png) +![](../../../../zh-cn/stage-3/cross-platform/android-app/images/image41.png) ### 4.2.3 Enable Developer Mode on the Phone Open your phone settings, go into developer options, and turn on **USB debugging**. -![](../../../../zh-cn/stage-3/cross-platform/3.5-android-app/images/image42.png) +![](../../../../zh-cn/stage-3/cross-platform/android-app/images/image42.png) ### 4.2.4 Install the USB Driver Authorization on the Phone At this point, pick up your phone. It should show an important security dialog: "Allow USB debugging?" Make sure to check **Always allow** and then tap **Allow** or **OK**. This is the key authorization that gives the computer control for debugging. -![](../../../../zh-cn/stage-3/cross-platform/3.5-android-app/images/image43.png) +![](../../../../zh-cn/stage-3/cross-platform/android-app/images/image43.png) ### 4.2.5 Run the App on the Phone @@ -478,7 +478,7 @@ At this point, pick up your phone. It should show an important security dialog: Now try tapping the wooden fish on your phone and feel the real vibration motor response. This is the full Vibe Coding experience. -![](../../../../zh-cn/stage-3/cross-platform/3.5-android-app/images/image44.png)![](../../../../zh-cn/stage-3/cross-platform/3.5-android-app/images/image45.png)![](../../../../zh-cn/stage-3/cross-platform/3.5-android-app/images/image46.png) +![](../../../../zh-cn/stage-3/cross-platform/android-app/images/image44.png)![](../../../../zh-cn/stage-3/cross-platform/android-app/images/image45.png)![](../../../../zh-cn/stage-3/cross-platform/android-app/images/image46.png) # 5 Package the App as APK @@ -490,15 +490,15 @@ If you only want to share the app with friends for a quick try, or send it to te **The steps are very simple:** in the top menu of Android Studio, find `Build`, hover over `Generate App Bundles or APKs`, and click `Generate APKs` from the submenu. -![](../../../../zh-cn/stage-3/cross-platform/3.5-android-app/images/image47.png) +![](../../../../zh-cn/stage-3/cross-platform/android-app/images/image47.png) Wait about 5 seconds depending on project size. In the bottom-right console area of Android Studio, a prompt will appear. Click the blue `locate` link and the output folder will open automatically. The file named `app-debug.apk` is the package we want. You can directly send it through WeChat or QQ to any Android phone, and the recipient can install and use it. Note that debug is not a release version. -![](../../../../zh-cn/stage-3/cross-platform/3.5-android-app/images/image48.png) +![](../../../../zh-cn/stage-3/cross-platform/android-app/images/image48.png) -![](../../../../zh-cn/stage-3/cross-platform/3.5-android-app/images/image49.png) +![](../../../../zh-cn/stage-3/cross-platform/android-app/images/image49.png) ## 5.2 Package the Release Version @@ -519,19 +519,19 @@ In the top menu, select `Build`, then click `Generate Signed Bundle / APK`. In t - APK: standard install package, can be installed directly _For demonstration, we choose APK first and click Next._ -![](../../../../zh-cn/stage-3/cross-platform/3.5-android-app/images/image50.png)![](../../../../zh-cn/stage-3/cross-platform/3.5-android-app/images/image51.png) +![](../../../../zh-cn/stage-3/cross-platform/android-app/images/image50.png)![](../../../../zh-cn/stage-3/cross-platform/android-app/images/image51.png) **Step 2: Create a digital key (KeyStore)** This is where beginners get stuck most often. Because this is your first release packaging, you need to create a new **keystore**. Click **Create new** below `Key store path`. -![](../../../../zh-cn/stage-3/cross-platform/3.5-android-app/images/image52.png) +![](../../../../zh-cn/stage-3/cross-platform/android-app/images/image52.png) In the popup, fill in the required information, similar to registering an account. We strongly recommend that the keystore password and key alias password be **the same**, and that you **write them down carefully**. If you lose this password, your app can never be updated again in the future. After finishing, click OK. You will return to the previous screen, and the key information you just filled in will already be populated automatically. -![](../../../../zh-cn/stage-3/cross-platform/3.5-android-app/images/image53.png)![](../../../../zh-cn/stage-3/cross-platform/3.5-android-app/images/image54.png) +![](../../../../zh-cn/stage-3/cross-platform/android-app/images/image53.png)![](../../../../zh-cn/stage-3/cross-platform/android-app/images/image54.png) **Step 3: Generate the formal package** @@ -539,9 +539,9 @@ Click Next, choose **release** under Build Variants, and finally click **Create* After a short wait, Android Studio will again show a "Generate Signed APK" success prompt in the bottom-right corner. Click **locate**, and this time you will see the digitally signed formal package in the folder (usually named `app-release.apk`). This file is the final product you deliver as a developer. -![](../../../../zh-cn/stage-3/cross-platform/3.5-android-app/images/image55.png) +![](../../../../zh-cn/stage-3/cross-platform/android-app/images/image55.png) -![](../../../../zh-cn/stage-3/cross-platform/3.5-android-app/images/image56.png)![](../../../../zh-cn/stage-3/cross-platform/3.5-android-app/images/image57.png) +![](../../../../zh-cn/stage-3/cross-platform/android-app/images/image56.png)![](../../../../zh-cn/stage-3/cross-platform/android-app/images/image57.png) # 6 Official Release to App Stores / Markets @@ -557,7 +557,7 @@ Before registering an account, there is one very important thing you must know: At present, almost all major domestic app stores (Huawei, Xiaomi, OV, MyApp, etc.) **require** a *Software Copyright Registration Certificate* for submission. -![](../../../../zh-cn/stage-3/cross-platform/3.5-android-app/images/image58.png)![](../../../../zh-cn/stage-3/cross-platform/3.5-android-app/images/image59.png) +![](../../../../zh-cn/stage-3/cross-platform/android-app/images/image58.png)![](../../../../zh-cn/stage-3/cross-platform/android-app/images/image59.png) - **What is it?** It is a legal document proving that the app belongs to you. - **Cost to obtain it**: you need to apply through the copyright bureau. Doing it yourself usually takes 2-3 months; using an agency for faster processing may cost from several hundred to over a thousand RMB. @@ -598,9 +598,9 @@ Gionee Developer Alliance: https://open.appgionee.com **Using Tencent MyApp as an example:** visit the Tencent Open Platform and click register. It is recommended to log in directly with a QQ account. Note that once a QQ account is bound, it is difficult to unbind, so it is better to use a dedicated work QQ account. Follow the prompts, choose "Individual Developer" or "Enterprise Developer," upload your ID photos, and complete face verification. After passing verification, click **Create App** to start. -![](../../../../zh-cn/stage-3/cross-platform/3.5-android-app/images/image60.png)![](../../../../zh-cn/stage-3/cross-platform/3.5-android-app/images/image61.png) +![](../../../../zh-cn/stage-3/cross-platform/android-app/images/image60.png)![](../../../../zh-cn/stage-3/cross-platform/android-app/images/image61.png) -![](../../../../zh-cn/stage-3/cross-platform/3.5-android-app/images/image62.png) +![](../../../../zh-cn/stage-3/cross-platform/android-app/images/image62.png) ### 6.1.3 Submission Flow and Required Materials @@ -629,7 +629,7 @@ If you do not want to deal with the complexity of software copyright certificate - **Reliable network access**: you need to be able to access Google Play Console smoothly - **Formal installation package**: note that Google Play requires the **.aab** (Android App Bundle) format, not APK. In Android Studio, choose Android App Bundle during packaging. The steps are almost identical to packaging APK. -![](../../../../zh-cn/stage-3/cross-platform/3.5-android-app/images/image63.png) +![](../../../../zh-cn/stage-3/cross-platform/android-app/images/image63.png) ### 6.2.2 Google Play Console Release Process (Overview) @@ -652,7 +652,7 @@ This is the user's first impression. You need to upload the prepared app **icon* Under the `Production` menu, click `Create new release`, upload your `.aab` file, save, and submit for review. Google Play review is usually fast (1-3 days). Once approved, your app can be downloaded worldwide. -![](../../../../zh-cn/stage-3/cross-platform/3.5-android-app/images/image64.png) +![](../../../../zh-cn/stage-3/cross-platform/android-app/images/image64.png) _If you have already completed developer account registration, this video tutorial can guide you through the rest of the process:_ [Android应用上传GooglePlay谷歌市场全流程教程](https://www.bilibili.com/video/BV16REQzGEnk/?share_source=weixin&vd_source=b42f227a4f2d413fbde18499d83227cf) @@ -668,7 +668,7 @@ If this tutorial helped you feel that "building an app is not actually that hard I am really looking forward to your next creation. Keep going! -![](../../../../zh-cn/stage-3/cross-platform/3.5-android-app/images/image65.png) +![](../../../../zh-cn/stage-3/cross-platform/android-app/images/image65.png) **_Hope you have fun in the world of Android development!_** diff --git a/docs/en/stage-3/cross-platform/3.9-browser-ai-extension/index.md b/docs/en/stage-3/cross-platform/browser-ai-extension/index.md similarity index 92% rename from docs/en/stage-3/cross-platform/3.9-browser-ai-extension/index.md rename to docs/en/stage-3/cross-platform/browser-ai-extension/index.md index 0a1b627..8e6423f 100644 --- a/docs/en/stage-3/cross-platform/3.9-browser-ai-extension/index.md +++ b/docs/en/stage-3/cross-platform/browser-ai-extension/index.md @@ -16,9 +16,9 @@ You have definitely used browser extensions before: ad blockers, translation too Imagine this: you open a 5,000-word technical blog post, click the extension button once, and a few seconds later a concise Chinese summary appears in the side panel. That is exactly what we are going to build. -![placeholder: A preview image showing a long article webpage on the left and an AI-generated summary displayed in the Chrome side panel on the right](../../../../zh-cn/stage-3/cross-platform/3.9-browser-ai-extension/images/image1.png) +![placeholder: A preview image showing a long article webpage on the left and an AI-generated summary displayed in the Chrome side panel on the right](../../../../zh-cn/stage-3/cross-platform/browser-ai-extension/images/image1.png) - + ## 1.2 The Basic Architecture of a Chrome Extension @@ -44,8 +44,8 @@ User clicks the extension icon -> Service Worker sends the summary back to the side panel for display ``` -![placeholder: An architecture flowchart showing how Content Script, Service Worker, and Side Panel pass messages to each other](../../../../zh-cn/stage-3/cross-platform/3.9-browser-ai-extension/images/image2.png) - +![placeholder: An architecture flowchart showing how Content Script, Service Worker, and Side Panel pass messages to each other](../../../../zh-cn/stage-3/cross-platform/browser-ai-extension/images/image2.png) + ## 1.3 Two AI Options: Cloud API vs Built-in Browser AI @@ -150,8 +150,8 @@ This is the most important file in a Chrome extension. It tells the browser what * `scripting`: lets the extension inject scripts into pages to read content * `sidePanel`: lets the extension use Chrome side panel API -![placeholder: Screenshot of manifest.json in the editor](../../../../zh-cn/stage-3/cross-platform/3.9-browser-ai-extension/images/image2b.png) - +![placeholder: Screenshot of manifest.json in the editor](../../../../zh-cn/stage-3/cross-platform/browser-ai-extension/images/image2b.png) + ## 2.3 Prepare Icons @@ -174,9 +174,9 @@ Before writing code, let us first load this "empty shell" extension into Chrome, You will see the extension appear in the list, and its icon will show up in the Chrome toolbar. -![placeholder: Screenshot of Chrome extensions page showing how to enable developer mode and load an extension](../../../../zh-cn/stage-3/cross-platform/3.9-browser-ai-extension/images/image3.png) +![placeholder: Screenshot of Chrome extensions page showing how to enable developer mode and load an extension](../../../../zh-cn/stage-3/cross-platform/browser-ai-extension/images/image3.png) - + > **Tip**: after every code change, go back to `chrome://extensions/` and click the **refresh button (🔄)** on the extension card to update it. @@ -273,8 +273,8 @@ async function handleSummarize(tabId) { } ``` -![](../../../../zh-cn/stage-3/cross-platform/3.9-browser-ai-extension/images/image4.png) - +![](../../../../zh-cn/stage-3/cross-platform/browser-ai-extension/images/image4.png) + ## 3.3 Side Panel UI: Show Summary Result @@ -304,9 +304,9 @@ sidepanel.js: - Use navigator.clipboard.writeText in the "Copy" button to copy text ``` -![placeholder: Screenshot of side panel UI showing three states: summary button, loading state, and summary result](../../../../zh-cn/stage-3/cross-platform/3.9-browser-ai-extension/images/image5.png) +![placeholder: Screenshot of side panel UI showing three states: summary button, loading state, and summary result](../../../../zh-cn/stage-3/cross-platform/browser-ai-extension/images/image5.png) - + ## 3.4 Settings Page: Configure API Key @@ -324,10 +324,10 @@ Please help me write options.html and options.js: > **Security reminder**: the API Key is stored in `chrome.storage.local` and only kept on the local device. But if you want to publish this extension to the Chrome Web Store for others to use, a safer approach is to build a backend proxy server so the API Key is not exposed directly on the client side. -![placeholder: Screenshot of settings page showing provider selection and API Key input p1](../../../../zh-cn/stage-3/cross-platform/3.9-browser-ai-extension/images/image6-1.png) -![placeholder: Screenshot of settings page showing provider selection and API Key input p2](../../../../zh-cn/stage-3/cross-platform/3.9-browser-ai-extension/images/image6-2.png) -![placeholder: Screenshot of settings page showing provider selection and API Key input p3](../../../../zh-cn/stage-3/cross-platform/3.9-browser-ai-extension/images/image6-3.png) - +![placeholder: Screenshot of settings page showing provider selection and API Key input p1](../../../../zh-cn/stage-3/cross-platform/browser-ai-extension/images/image6-1.png) +![placeholder: Screenshot of settings page showing provider selection and API Key input p2](../../../../zh-cn/stage-3/cross-platform/browser-ai-extension/images/image6-2.png) +![placeholder: Screenshot of settings page showing provider selection and API Key input p3](../../../../zh-cn/stage-3/cross-platform/browser-ai-extension/images/image6-3.png) + # Chapter 4: Use Chrome Built-in AI (No API Key Needed) @@ -346,8 +346,8 @@ Enter `chrome://flags` in Chrome address bar, search for the flag related to Sum * In Chrome 138-144, it was renamed to Summarization API for Gemini Nano. * In Chrome 145+, Summarization API for Gemini Nano was removed, and its summarization function was integrated into Prompt API for Gemini Nano. -![placeholder: Screenshot of chrome://flags showing the Summarization API switch](../../../../zh-cn/stage-3/cross-platform/3.9-browser-ai-extension/images/image7.png) - +![placeholder: Screenshot of chrome://flags showing the Summarization API switch](../../../../zh-cn/stage-3/cross-platform/browser-ai-extension/images/image7.png) + ## 4.2 Use Summarizer API @@ -399,8 +399,8 @@ Please help me modify options.html and options.js: 3. Show the API Key input when OpenAI or Claude is selected ``` -![placeholder: Screenshot of updated settings page showing three AI provider options, with API Key input hidden when Chrome built-in AI is selected](../../../../zh-cn/stage-3/cross-platform/3.9-browser-ai-extension/images/image8.png) - +![placeholder: Screenshot of updated settings page showing three AI provider options, with API Key input hidden when Chrome built-in AI is selected](../../../../zh-cn/stage-3/cross-platform/browser-ai-extension/images/image8.png) + # Chapter 5: Testing and Debugging @@ -425,8 +425,8 @@ Debugging Chrome extensions is a bit different from debugging normal webpages: 3. Select your extension name 4. Then you can see `console` output from the Content Script -![placeholder: Screenshot of Chrome DevTools showing how to choose different execution contexts to debug different extension components](../../../../zh-cn/stage-3/cross-platform/3.9-browser-ai-extension/images/image9.png) - +![placeholder: Screenshot of Chrome DevTools showing how to choose different execution contexts to debug different extension components](../../../../zh-cn/stage-3/cross-platform/browser-ai-extension/images/image9.png) + ## 5.2 Common Troubleshooting @@ -463,10 +463,10 @@ If you want to share the extension with others, you can publish it to the Chrome Google will review submitted extensions, which usually takes several business days. The fewer permissions you request and the clearer your description is, the faster the review usually goes. -![placeholder: Screenshot of Chrome Web Store Developer Dashboard showing extension upload and metadata form](../../../../zh-cn/stage-3/cross-platform/3.9-browser-ai-extension/images/image10.png) -![placeholder: Screenshot of Chrome Web Store Developer Dashboard showing extension upload and metadata form p2](../../../../zh-cn/stage-3/cross-platform/3.9-browser-ai-extension/images/image10-1.png) +![placeholder: Screenshot of Chrome Web Store Developer Dashboard showing extension upload and metadata form](../../../../zh-cn/stage-3/cross-platform/browser-ai-extension/images/image10.png) +![placeholder: Screenshot of Chrome Web Store Developer Dashboard showing extension upload and metadata form p2](../../../../zh-cn/stage-3/cross-platform/browser-ai-extension/images/image10-1.png) - + # Chapter 7: Final Notes diff --git a/docs/en/stage-3/cross-platform/3.1-choose-platform/index.md b/docs/en/stage-3/cross-platform/choose-platform/index.md similarity index 98% rename from docs/en/stage-3/cross-platform/3.1-choose-platform/index.md rename to docs/en/stage-3/cross-platform/choose-platform/index.md index 222539f..22375f2 100644 --- a/docs/en/stage-3/cross-platform/3.1-choose-platform/index.md +++ b/docs/en/stage-3/cross-platform/choose-platform/index.md @@ -493,42 +493,42 @@ Based on the analysis above, you should now have a preliminary answer to "which diff --git a/docs/en/stage-3/cross-platform/3.10-electron-voice-to-text/index.md b/docs/en/stage-3/cross-platform/electron-voice-to-text/index.md similarity index 96% rename from docs/en/stage-3/cross-platform/3.10-electron-voice-to-text/index.md rename to docs/en/stage-3/cross-platform/electron-voice-to-text/index.md index b20fad3..9300943 100644 --- a/docs/en/stage-3/cross-platform/3.10-electron-voice-to-text/index.md +++ b/docs/en/stage-3/cross-platform/electron-voice-to-text/index.md @@ -20,7 +20,7 @@ Electron is an open-source framework that lets you use **HTML + CSS + JavaScript **One-sentence understanding**: Electron = an "invisible Chrome browser" + Node.js system capabilities. - + ## 1.2 Core Electron Architecture @@ -47,7 +47,7 @@ An Electron app consists of two process types. Understanding them is the key to They communicate through **IPC (Inter-Process Communication)**, like making a phone call: the renderer says "I want to start recording," and the main process receives that request and calls the system microphone. - + ## 1.3 What Are We Building? @@ -69,7 +69,7 @@ In this tutorial, we will build a **Speech-to-Text** desktop app. Its functional | Model Size | No download required | tiny model 75MB, large model 3GB | | Best For | Fast onboarding, lightweight usage | Privacy-focused, offline usage, long-term high-frequency usage | - + ## 1.4 Important Note: Web Speech API Is Not Available in Electron @@ -130,7 +130,7 @@ Please help me start the Electron development server by running npm start After a few seconds, a desktop window appears. This is your Electron app. Even though it only shows a default welcome page now, it is already a real desktop program. - + ## 2.3 Understand IPC (Inter-Process Communication) @@ -174,7 +174,7 @@ ipcMain.handle('transcribe-audio', async (event, audioData) => { }) ``` - + # Chapter 3: Implement Recording @@ -237,7 +237,7 @@ async function startRecording() { } ``` - + ## 3.2 Handle Microphone Permissions @@ -319,7 +319,7 @@ async function transcribeWithWhisper(audioBuffer, apiKey) { } ``` - + ## 4.3 Add a Settings UI @@ -336,7 +336,7 @@ Please help me add a settings panel in index.html: 4. Close panel when clicking outside ``` - + # Chapter 5: Option B - Local Recognition (whisper.cpp) @@ -406,7 +406,7 @@ async function transcribeWithLocal(audioBuffer) { } ``` - + ## 5.3 Good News for Apple Silicon Users @@ -435,7 +435,7 @@ This command automatically generates installers for your current operating syste Build outputs are in the `out/make/` directory. - + ## 6.2 App Size Optimization diff --git a/docs/en/stage-3/cross-platform/3.6-ios-app/index.md b/docs/en/stage-3/cross-platform/ios-app/index.md similarity index 88% rename from docs/en/stage-3/cross-platform/3.6-ios-app/index.md rename to docs/en/stage-3/cross-platform/ios-app/index.md index c6ad589..26e4caa 100644 --- a/docs/en/stage-3/cross-platform/3.6-ios-app/index.md +++ b/docs/en/stage-3/cross-platform/ios-app/index.md @@ -12,13 +12,13 @@ For this tutorial, you should at least have: 4. Trae installed and opened 5. A usable Apple ID -![](../../../../zh-cn/stage-3/cross-platform/3.6-ios-app/images/image1.png) +![](../../../../zh-cn/stage-3/cross-platform/ios-app/images/image1.png) ### 1.1 iOS App An iOS App is a native application running on the iPhone operating system. It launches quickly, feels smooth, and can deeply use system features such as notifications, camera, and local storage. -![](../../../../zh-cn/stage-3/cross-platform/3.6-ios-app/images/image2.png) +![](../../../../zh-cn/stage-3/cross-platform/ios-app/images/image2.png) ### 1.2 iOS App Development @@ -35,15 +35,15 @@ In real development, there is more than one way to build an iOS App. We will not The first way is Apple's official native approach: create a project in Xcode and use Swift and SwiftUI to build the interface and logic. -![](../../../../zh-cn/stage-3/cross-platform/3.6-ios-app/images/image3.png) +![](../../../../zh-cn/stage-3/cross-platform/ios-app/images/image3.png) The second way is to use cross-platform frameworks, such as React Native and Flutter, and adapt one codebase to multiple platforms. -![](../../../../zh-cn/stage-3/cross-platform/3.6-ios-app/images/image4.png) +![](../../../../zh-cn/stage-3/cross-platform/ios-app/images/image4.png) Based on the approaches above, this tutorial chooses: **native SwiftUI development as the foundation, with AI tools doing the majority of the coding work**. -![](../../../../zh-cn/stage-3/cross-platform/3.6-ios-app/images/image5.png) +![](../../../../zh-cn/stage-3/cross-platform/ios-app/images/image5.png) ### 1.4 iOS App Development Steps Covered in This Tutorial (High-Level Preview) @@ -51,7 +51,7 @@ The sample app used in this tutorial is **FridgeChef**. The user enters the ingredients currently available in the fridge, and the app uses a real AI API to generate a feasible recipe, then saves the result locally for later review. This example fully covers the core parts of a real iOS application, including UI input and display, network requests, data parsing, local storage, and final installation and running on a real device. -![](../../../../zh-cn/stage-3/cross-platform/3.6-ios-app/images/image6.png) +![](../../../../zh-cn/stage-3/cross-platform/ios-app/images/image6.png) - The overall idea from prototype to native app @@ -85,7 +85,7 @@ iOS apps can only be developed and compiled on macOS. This is a hard requirement To ensure Xcode can be installed and used normally, it is recommended that you update macOS to a relatively recent official version first. You can check and update from **System Settings -> General -> Software Update**. -![](../../../../zh-cn/stage-3/cross-platform/3.6-ios-app/images/image7.png) +![](../../../../zh-cn/stage-3/cross-platform/ios-app/images/image7.png) #### 2.1.2 Real iPhone Device @@ -93,7 +93,7 @@ In addition to the Mac, this tutorial also requires a real iPhone for verifying To keep the debugging process smooth, the iPhone should also run a relatively recent iOS version. You can check and update from **Settings -> General -> Software Update**. -![](../../../../zh-cn/stage-3/cross-platform/3.6-ios-app/images/image8.png) +![](../../../../zh-cn/stage-3/cross-platform/ios-app/images/image8.png) Later in development, this iPhone will be connected to the Mac by cable for real-device debugging. @@ -109,7 +109,7 @@ Steps: 4. Turn it on, then restart the device as prompted 5. After restart, unlock the device and confirm enabling developer mode -![](../../../../zh-cn/stage-3/cross-platform/3.6-ios-app/images/image9.png) +![](../../../../zh-cn/stage-3/cross-platform/ios-app/images/image9.png) If your iPhone has never been connected to Xcode or other development tools before, you may find that **Developer Mode** does not appear under **Privacy & Security**. This is not a system issue - it simply means developer mode has not yet been triggered. @@ -122,7 +122,7 @@ In that case, you can make it appear by following these steps: After completing the above steps, developer mode only needs to be enabled once. Future real-device debugging with Xcode will not require repeating this configuration. -![](../../../../zh-cn/stage-3/cross-platform/3.6-ios-app/images/image10.png) +![](../../../../zh-cn/stage-3/cross-platform/ios-app/images/image10.png) ### 2.2 Required Software @@ -132,17 +132,17 @@ After devices and systems are ready, you still need to install the software used Xcode is Apple's official development tool for iOS. In this tutorial, it is mainly used to create iOS projects, compile Swift / SwiftUI code, and run the app on the simulator or a real device. -![](../../../../zh-cn/stage-3/cross-platform/3.6-ios-app/images/image11.png) +![](../../../../zh-cn/stage-3/cross-platform/ios-app/images/image11.png) Xcode can be found and installed directly from the App Store. After installation, when you open it for the first time, you will see the welcome screen. Later project creation starts from there. -![](../../../../zh-cn/stage-3/cross-platform/3.6-ios-app/images/image12.png) +![](../../../../zh-cn/stage-3/cross-platform/ios-app/images/image12.png) #### 2.2.2 Trae Trae is the main environment where development work is performed in this tutorial. You will place the whole iOS project into Trae and collaborate with AI through dialog to complete development. -![](../../../../zh-cn/stage-3/cross-platform/3.6-ios-app/images/image13.png) +![](../../../../zh-cn/stage-3/cross-platform/ios-app/images/image13.png) ### 2.3 Apple ID and Development Debugging Notes @@ -168,7 +168,7 @@ If all of these are ready, you can continue and create your first iOS app. Open Xcode. On the welcome screen, choose to create a new project. -![](../../../../zh-cn/stage-3/cross-platform/3.6-ios-app/images/image14.png) +![](../../../../zh-cn/stage-3/cross-platform/ios-app/images/image14.png) Click **Create new project** to enter the project template selection screen. @@ -179,7 +179,7 @@ On the template selection screen, use the following configuration: 1. Platform: iOS 2. Application type: App -![](../../../../zh-cn/stage-3/cross-platform/3.6-ios-app/images/image15.png) +![](../../../../zh-cn/stage-3/cross-platform/ios-app/images/image15.png) Click **Next** to enter the project information configuration screen. @@ -195,17 +195,17 @@ On the project information screen, just fill in the basic settings: 6. Storage: choose Core Data (for later saving recipe history) 7. Leave the other options at default -![](../../../../zh-cn/stage-3/cross-platform/3.6-ios-app/images/image16.png) +![](../../../../zh-cn/stage-3/cross-platform/ios-app/images/image16.png) Click **Next** and choose the project storage location. -![](../../../../zh-cn/stage-3/cross-platform/3.6-ios-app/images/image17.png) +![](../../../../zh-cn/stage-3/cross-platform/ios-app/images/image17.png) ### 3.4 Recognize the Project Structure After Creation After the project is created, Xcode will automatically open the workspace. At this point, you do not need to understand every file. You only need to recognize a few key parts. -![](../../../../zh-cn/stage-3/cross-platform/3.6-ios-app/images/image18.png) +![](../../../../zh-cn/stage-3/cross-platform/ios-app/images/image18.png) In the default project, you will see: @@ -221,13 +221,13 @@ Before changing any code, run the original project directly. In the top toolbar of Xcode, keep the default iPhone simulator selected, then click the **Run** button on the top left. -![](../../../../zh-cn/stage-3/cross-platform/3.6-ios-app/images/image19.png) +![](../../../../zh-cn/stage-3/cross-platform/ios-app/images/image19.png) -![](../../../../zh-cn/stage-3/cross-platform/3.6-ios-app/images/image20.png) +![](../../../../zh-cn/stage-3/cross-platform/ios-app/images/image20.png) If everything is normal, the simulator will show a blank app that can start successfully. The first compilation may take a relatively long time. In later chapters, we reduce waiting time by using HTML prototypes first. -![](../../../../zh-cn/stage-3/cross-platform/3.6-ios-app/images/image21.png) +![](../../../../zh-cn/stage-3/cross-platform/ios-app/images/image21.png) To stop the app, click **Stop** next to the Run button. @@ -247,7 +247,7 @@ Starting from the next section, the main development work will gradually move in What you need to do is simple: **open the iOS project folder you just created in Trae.** -![](../../../../zh-cn/stage-3/cross-platform/3.6-ios-app/images/image22.png) +![](../../../../zh-cn/stage-3/cross-platform/ios-app/images/image22.png) ## Chapter 4: AI-Assisted Development Practice - Build FridgeChef from Scratch @@ -289,7 +289,7 @@ Please help me organize this into a clear, structured REQUIREMENTS.md document f After generation, quickly read through the document and confirm whether the function points match your expectations. -![](../../../../zh-cn/stage-3/cross-platform/3.6-ios-app/images/image23.png) +![](../../../../zh-cn/stage-3/cross-platform/ios-app/images/image23.png) ### 4.2 Stage Two: Visual Prototype @@ -320,7 +320,7 @@ Please generate a single-file index.html and simulate an iPhone screen ratio aro After generation, find `index.html` in the file list and open it directly in a browser. -![](../../../../zh-cn/stage-3/cross-platform/3.6-ios-app/images/image24.png) +![](../../../../zh-cn/stage-3/cross-platform/ios-app/images/image24.png) At this stage, the point is not whether every detail is perfect. The point is whether **the page structure is reasonable, the main elements are complete, and the overall direction is correct.** @@ -351,22 +351,22 @@ Requirements: After it finishes, open Xcode and run the simulator. You will see an iOS app that already has a complete visual structure. -![](../../../../zh-cn/stage-3/cross-platform/3.6-ios-app/images/image25.png) +![](../../../../zh-cn/stage-3/cross-platform/ios-app/images/image25.png) ### 4.4 Stage Four: Connect the AI API Once the interface is done, the app is still only a display layer. Next we need to connect real AI capability. In this tutorial we use the large-model service provided by **SiliconFlow**: [https://cloud.siliconflow.cn](https://cloud.siliconflow.cn/) -![](../../../../zh-cn/stage-3/cross-platform/3.6-ios-app/images/image26.png) +![](../../../../zh-cn/stage-3/cross-platform/ios-app/images/image26.png) SiliconFlow provides an API compatible with the OpenAI API specification, so it is very convenient to call from an iOS project using standard network requests. -![](../../../../zh-cn/stage-3/cross-platform/3.6-ios-app/images/image27.png) +![](../../../../zh-cn/stage-3/cross-platform/ios-app/images/image27.png) Before starting, you need to register an account on the site and create an API Key. -![](../../../../zh-cn/stage-3/cross-platform/3.6-ios-app/images/image28.png) +![](../../../../zh-cn/stage-3/cross-platform/ios-app/images/image28.png) This Key will be used for later model calls. @@ -401,7 +401,7 @@ To let the app remember the recipes it has generated, we need to bring in local 1. Open `FridgeChef.xcdatamodeld` 2. Create a new Entity named `RecipeEntity` -![](../../../../zh-cn/stage-3/cross-platform/3.6-ios-app/images/image29.png) +![](../../../../zh-cn/stage-3/cross-platform/ios-app/images/image29.png) 3. Add the following attributes: 1. `id`: **UUID** @@ -412,7 +412,7 @@ To let the app remember the recipes it has generated, we need to bring in local 6. `timestamp`: **Date** 7. `colorIndex`: **Integer 16** - ![](../../../../zh-cn/stage-3/cross-platform/3.6-ios-app/images/image30.png) + ![](../../../../zh-cn/stage-3/cross-platform/ios-app/images/image30.png) **Step 2: let AI write the logic code** @@ -434,7 +434,7 @@ Please complete the following tasks: The final step is to prepare a proper icon for the app. Here we use **Lovart** to generate the icon asset: [https://www.lovart.ai/zh](https://www.lovart.ai/zh) -![](../../../../zh-cn/stage-3/cross-platform/3.6-ios-app/images/image31.png)![](../../../../zh-cn/stage-3/cross-platform/3.6-ios-app/images/image32.png) +![](../../../../zh-cn/stage-3/cross-platform/ios-app/images/image31.png)![](../../../../zh-cn/stage-3/cross-platform/ios-app/images/image32.png) 📋 **Prompt to copy into Lovart:** @@ -448,15 +448,15 @@ Negative Prompt: Text, realistic details, 3D render, complex background After generation, crop the image to 1024x1024 and drag it into `Assets.xcassets` -> `AppIcon` in Xcode. -![](../../../../zh-cn/stage-3/cross-platform/3.6-ios-app/images/image33.png) +![](../../../../zh-cn/stage-3/cross-platform/ios-app/images/image33.png) -![](../../../../zh-cn/stage-3/cross-platform/3.6-ios-app/images/image34.png) +![](../../../../zh-cn/stage-3/cross-platform/ios-app/images/image34.png) -![](../../../../zh-cn/stage-3/cross-platform/3.6-ios-app/images/image35.png) +![](../../../../zh-cn/stage-3/cross-platform/ios-app/images/image35.png) Run the app again, and you will now see a complete, recognizable, real iOS application. -![](../../../../zh-cn/stage-3/cross-platform/3.6-ios-app/images/image36.png) +![](../../../../zh-cn/stage-3/cross-platform/ios-app/images/image36.png) ### 4.7 Stage Seven: Advanced Experience Upgrade @@ -486,7 +486,7 @@ Please generate the full code so I can preview it in a browser. After it is generated, open this HTML file in a browser. -![](../../../../zh-cn/stage-3/cross-platform/3.6-ios-app/images/image37.png) +![](../../../../zh-cn/stage-3/cross-platform/ios-app/images/image37.png) Once the HTML version is finalized, you can begin modifying the iOS project. @@ -520,7 +520,7 @@ Click Run in Xcode again. If everything works, you should see: - the visual style has changed significantly - the overall app quality feels noticeably upgraded -![](../../../../zh-cn/stage-3/cross-platform/3.6-ios-app/images/image38.png) +![](../../../../zh-cn/stage-3/cross-platform/ios-app/images/image38.png) ## Chapter 5: Running, Debugging, and Error Handling @@ -537,17 +537,17 @@ In the top-left of Xcode, select the run device and keep the default iPhone simu Connect your iPhone to the Mac using a cable. -![](../../../../zh-cn/stage-3/cross-platform/3.6-ios-app/images/image39.png) +![](../../../../zh-cn/stage-3/cross-platform/ios-app/images/image39.png) When connecting for the first time, the phone will show **Trust This Computer?** Tap trust and enter the unlock passcode. -![](../../../../zh-cn/stage-3/cross-platform/3.6-ios-app/images/image40.png) +![](../../../../zh-cn/stage-3/cross-platform/ios-app/images/image40.png) In Xcode's device list, select your iPhone, then click **Run** again. At this point, you should be able to see the **FridgeChef** icon on your phone's home screen, and open and use it normally. -![](../../../../zh-cn/stage-3/cross-platform/3.6-ios-app/images/image41.png) +![](../../../../zh-cn/stage-3/cross-platform/ios-app/images/image41.png) This step marks the completion of one full iOS development closed loop. @@ -566,7 +566,7 @@ Common issues usually come from these categories: 4. **Logic errors** The app does not crash, but the behavior is wrong - for example, buttons not responding or data not refreshing. -![](../../../../zh-cn/stage-3/cross-platform/3.6-ios-app/images/image42.png) +![](../../../../zh-cn/stage-3/cross-platform/ios-app/images/image42.png) When any error appears, you only need to **copy the full error message exactly as it is into Trae's chat box.** With awareness of the project context, Trae can help you do the debugging. @@ -608,7 +608,7 @@ Errors during real-device debugging are very common. These problems are usually `"Device Locked"` - Or you already tapped Trust, but Xcode still remains stuck -![](../../../../zh-cn/stage-3/cross-platform/3.6-ios-app/images/image43.png) +![](../../../../zh-cn/stage-3/cross-platform/ios-app/images/image43.png) **Cause:** @@ -633,7 +633,7 @@ Errors during real-device debugging are very common. These problems are usually - The system shows **Untrusted Developer** -![](../../../../zh-cn/stage-3/cross-platform/3.6-ios-app/images/image44.png) +![](../../../../zh-cn/stage-3/cross-platform/ios-app/images/image44.png) **Cause:** @@ -647,7 +647,7 @@ This is an iOS security mechanism. Debug apps installed with a personal Apple ID 4. Under **Developer App**, find your Apple ID 5. Tap **Trust**, then confirm again -![](../../../../zh-cn/stage-3/cross-platform/3.6-ios-app/images/image45.png) +![](../../../../zh-cn/stage-3/cross-platform/ios-app/images/image45.png) After that, return to the home screen and tap the app again. It should now run normally. @@ -657,7 +657,7 @@ In this tutorial, what we mainly completed is the full closed loop for a **perso If you want to go further and formally publish the app to the **Apple App Store** so that all users can download and use it, then you need to enter a more formal release process. Since that process involves a paid developer account, review rules, and compliance requirements, and is not the main practical focus of this tutorial, the following content is only provided as an **overall reference and roadmap**. -![](../../../../zh-cn/stage-3/cross-platform/3.6-ios-app/images/image46.png) +![](../../../../zh-cn/stage-3/cross-platform/ios-app/images/image46.png) > The following content references Apple's official review requirements and public experience discussions (including original Zhihu sharing). Links are listed below. If any link becomes unavailable, you can search by title or keyword to find the original source. @@ -725,7 +725,7 @@ The following content references Apple's official documentation and public exper ## Chapter 7: Summary -![](../../../../zh-cn/stage-3/cross-platform/3.6-ios-app/images/image47.png) +![](../../../../zh-cn/stage-3/cross-platform/ios-app/images/image47.png) Congrats! At this point, you have personally walked through the complete iOS app development process from 0 to 1. From setting up the environment, running the project, and then gradually landing interface, functionality, data, and real-device testing, all the key stages have been completed smoothly. More importantly, you did not get here by memorizing Swift syntax - you handed most of the implementation to AI. No matter what your background is, every attempt like this makes you more fluent, and you will realize that iOS development is not as difficult as it once seemed. Even if you could not write a single line of code before, you can still build your own app. diff --git a/docs/en/stage-3/cross-platform/3.11-nft-minting/index.md b/docs/en/stage-3/cross-platform/nft-minting/index.md similarity index 95% rename from docs/en/stage-3/cross-platform/3.11-nft-minting/index.md rename to docs/en/stage-3/cross-platform/nft-minting/index.md index 45119a3..8dd60fb 100644 --- a/docs/en/stage-3/cross-platform/3.11-nft-minting/index.md +++ b/docs/en/stage-3/cross-platform/nft-minting/index.md @@ -26,7 +26,7 @@ You can understand an NFT as a **"certificate of collection in the digital world The core value of NFTs is: **they use blockchain technology to prove "this digital item belongs to you," and that proof is public, transparent, and tamper-resistant.** - + ## 1.2 What Is a Smart Contract? @@ -81,7 +81,7 @@ MetaMask is the most popular Ethereum wallet. It is a browser extension that let 4. Choose **"Create a new wallet"** and set a password 5. **Important**: keep your recovery phrase (12 words) safe. Losing a test wallet is fine, but good habits matter - + ## 2.2 Switch to Sepolia Testnet @@ -101,7 +101,7 @@ If you do not see Sepolia, click **"Add network"** and add manually: | Currency Symbol | SepoliaETH | | Block Explorer | `https://sepolia.etherscan.io` | - + ## 2.3 Claim Free Test ETH @@ -119,7 +119,7 @@ Visit any faucet below and input your wallet address to claim free Sepolia ETH: After claiming successfully, return to MetaMask and your balance should change from 0 to 0.1 ETH (it may take a few seconds). - + # Chapter 3: Write and Deploy NFT Smart Contract (4 Minutes) @@ -131,7 +131,7 @@ Open: **https://remix.ethereum.org/** You will see a VS Code-like interface: file explorer on the left, code editor in the middle, and compile/deploy panel on the right. - + ## 3.2 Create Contract File @@ -175,7 +175,7 @@ contract MySimpleNFT is ERC721 { > **What is ERC721?** It is the NFT standard on Ethereum, defining basic NFT capabilities (transfer, owner query, etc.). OpenZeppelin provides a security-audited implementation, so we can inherit directly instead of building from scratch. - + ## 3.3 Compile the Contract @@ -186,7 +186,7 @@ contract MySimpleNFT is ERC721 { > If there is an error, check whether Solidity version matches and OpenZeppelin import path is correct. Remix automatically downloads OpenZeppelin dependencies from npm. - + ## 3.4 Deploy Contract to Sepolia Testnet @@ -201,7 +201,7 @@ contract MySimpleNFT is ERC721 { After a few seconds, when deployment succeeds, the **"Deployed Contracts"** section below will show your contract address. **Copy and save this address**; you will need it later. - + # Chapter 4: Mint NFT and Verify Result (4 Minutes) @@ -218,7 +218,7 @@ Congratulations! You just minted NFT #0, and it now belongs to your wallet addre You can continue clicking "mint" to create more. Token IDs auto-increment each time (#1, #2, #3...). - + ## 4.2 Verify Mint Result @@ -237,7 +237,7 @@ You can also call **"ownerOf"**, input `0` (token ID), and it returns your walle On Etherscan, every mint transaction has complete records: who minted, when minted, and token ID. This is the charm of blockchain being "public, transparent, and tamper-resistant." - + # Chapter 5: Advanced - Add an Image to NFT (Optional) @@ -262,7 +262,7 @@ IPFS is a decentralized file storage network. Unlike regular cloud storage, file Your image URI is: `ipfs://yourCID` - + ## 5.3 Create Metadata JSON @@ -325,7 +325,7 @@ contract MyNFTWithImage is ERC721, ERC721URIStorage { After deployment, call `mint` and pass your metadata URI (for example `ipfs://QmAbc.../metadata.json`). Then your minted NFT will include image and description. - + # Chapter 6: Final Notes diff --git a/docs/en/stage-3/cross-platform/3.8-pwa-local-app/index.md b/docs/en/stage-3/cross-platform/pwa-local-app/index.md similarity index 99% rename from docs/en/stage-3/cross-platform/3.8-pwa-local-app/index.md rename to docs/en/stage-3/cross-platform/pwa-local-app/index.md index 8df6b43..7cff381 100644 --- a/docs/en/stage-3/cross-platform/3.8-pwa-local-app/index.md +++ b/docs/en/stage-3/cross-platform/pwa-local-app/index.md @@ -35,7 +35,7 @@ An ordinary website needs to download HTML, CSS, and JS files from the server ev **One-sentence summary**: a PWA is "a webpage that can store its own files" - it has the lightness of a website (no installation required, auto-updating) and the experience of a native app (offline support, installable to desktop/home screen). - + ## 1.2 Why Choose PWA? diff --git a/docs/en/stage-3/cross-platform/3.13-qt-industrial-hmi/index.md b/docs/en/stage-3/cross-platform/qt-industrial-hmi/index.md similarity index 97% rename from docs/en/stage-3/cross-platform/3.13-qt-industrial-hmi/index.md rename to docs/en/stage-3/cross-platform/qt-industrial-hmi/index.md index 5304ff4..de87db6 100644 --- a/docs/en/stage-3/cross-platform/3.13-qt-industrial-hmi/index.md +++ b/docs/en/stage-3/cross-platform/qt-industrial-hmi/index.md @@ -54,7 +54,7 @@ Control room Factory site └──────────┘ └──────────┘ ``` - + ## 1.2 What Is Modbus Protocol? @@ -98,7 +98,7 @@ We will build a **Pump Monitoring HMI System** simulating real factory pump pres | Fault log | Record all alarm events in database for history queries | | Manual control | One-click start/stop pump (write lower-computer register) | - + ## 1.5 Tutorial Roadmap @@ -128,7 +128,7 @@ Qt provides a free open-source version, enough for this tutorial. > **Tip**: if Qt is already installed but missing Serial Bus or Charts, rerun Qt Maintenance Tool and add components. - + ## 2.2 Install Modbus Slave: Your "Virtual Pump" @@ -151,7 +151,7 @@ Modbus Slave is a free Modbus slave simulator. It can simulate an industrial dev Now Modbus Slave is your "24/7 virtual pump." Keep the window open; it will continuously respond to read/write requests. - + > **Dynamic simulation tip**: Modbus Slave supports auto increment/random changes. Right-click register value and choose "Auto increment" or "Random" to simulate realistic sensor fluctuations. @@ -263,7 +263,7 @@ private: #endif // MAINWINDOW_H ``` - + ## 3.3 Build Modbus TCP Connection @@ -378,7 +378,7 @@ readPressure() triggered by timer -> parse register values and update UI ``` - + # Chapter 4: Draw Real-time Pressure Trend (3 Minutes) @@ -468,7 +468,7 @@ updateChart(pressure); Now run the program. You will see a blue line updating in real time, one point per second, always showing latest 60 seconds. If you modify register values in Modbus Slave manually, the line reflects changes immediately. - + > **Performance tip**: `QChart::NoAnimation` is important. Real-time data refresh every second; animations can cause UI lag. This is a common industrial HMI practice. @@ -520,7 +520,7 @@ void MainWindow::triggerAlarm(float pressure) } ``` - + ## 5.2 SQLite Fault Logs @@ -583,7 +583,7 @@ void MainWindow::logAlarm(float pressure, const QString &message) Log table has three columns: time, pressure value, and alarm message. Each alarm appends one row and is persisted to SQLite. - + ## 5.4 Manually Start/Stop Pump @@ -621,7 +621,7 @@ void MainWindow::togglePump() In Modbus Slave, you will see address `2` switching between `0` and `1` as you click the button. This is the upper-computer "control" process. - + # Chapter 6: Packaging and Deployment (Optional) @@ -658,7 +658,7 @@ Please help me create an installer for PumpHMI with Qt Installer Framework: 4. Run binarycreator to generate installer ``` - + # Chapter 7: Final Notes diff --git a/docs/en/stage-3/cross-platform/3.12-vscode-extension/index.md b/docs/en/stage-3/cross-platform/vscode-extension/index.md similarity index 95% rename from docs/en/stage-3/cross-platform/3.12-vscode-extension/index.md rename to docs/en/stage-3/cross-platform/vscode-extension/index.md index dc3b361..90d7c63 100644 --- a/docs/en/stage-3/cross-platform/3.12-vscode-extension/index.md +++ b/docs/en/stage-3/cross-platform/vscode-extension/index.md @@ -25,8 +25,8 @@ VS Code extensions can do much more than many people expect: * **Extend editor capabilities**: custom language support, code completion, diagnostics * **Add AI capabilities**: create AI assistants with Chat Participant API, call models with Language Model API - -![VS Code extension ecosystem diagram showing the areas extensions can extend: sidebar, editor, status bar, command palette, and Chat panel](/zh-cn/stage-3/cross-platform/3.12-vscode-extension/images/image1.png) + +![VS Code extension ecosystem diagram showing the areas extensions can extend: sidebar, editor, status bar, command palette, and Chat panel](/zh-cn/stage-3/cross-platform/vscode-extension/images/image1.png) ## 1.2 Core Architecture of a VS Code Extension @@ -53,8 +53,8 @@ VS Code editor └── Editor main process (UI rendering) ``` - -![VS Code extension architecture diagram showing the Extension Host process and the editor main process](/zh-cn/stage-3/cross-platform/3.12-vscode-extension/images/image2.png) + +![VS Code extension architecture diagram showing the Extension Host process and the editor main process](/zh-cn/stage-3/cross-platform/vscode-extension/images/image2.png) ## 1.3 What Extension Are We Building? @@ -68,8 +68,8 @@ We will build a VS Code extension named **"AI Project Bot"**, an AI project assi | Multi-file Q&A | Multi-select files in explorer and ask AI to analyze relationships and logic | | Shortcuts | Custom keybindings to trigger common actions quickly | - -![Preview of the AI Project Bot extension showing the sidebar template list, the @project-bot chat panel, and the right-click menu](/zh-cn/stage-3/cross-platform/3.12-vscode-extension/images/image3.png) + +![Preview of the AI Project Bot extension showing the sidebar template list, the @project-bot chat panel, and the right-click menu](/zh-cn/stage-3/cross-platform/vscode-extension/images/image3.png) ## 1.4 Tutorial Roadmap @@ -147,8 +147,8 @@ ai-project-bot/ | `main` | Path to compiled entry file | | `contributes` | All contributed features (commands, menus, keybindings, views, etc.) | - -![Screenshot of the package.json file in the editor with the contributes field highlighted](/zh-cn/stage-3/cross-platform/3.12-vscode-extension/images/image4.png) + +![Screenshot of the package.json file in the editor with the contributes field highlighted](/zh-cn/stage-3/cross-platform/vscode-extension/images/image4.png) ## 2.3 Understand extension.ts: The Extension "Brain" @@ -188,8 +188,8 @@ Press **F5**, and VS Code opens a new **Extension Development Host** window. Thi In the new window, press **Ctrl+Shift+P**, type "Hello World," and you will see a message popup. This means your extension is running. - -![Screenshot of debugging a VS Code extension, showing the Extension Development Host window and the Hello World message](/zh-cn/stage-3/cross-platform/3.12-vscode-extension/images/image5.png) + +![Screenshot of debugging a VS Code extension, showing the Extension Development Host window and the Hello World message](/zh-cn/stage-3/cross-platform/vscode-extension/images/image5.png) > **Debug tip**: after code changes, in Extension Development Host press **Ctrl+Shift+P** -> **Developer: Reload Window** to reload extension quickly. @@ -272,8 +272,8 @@ This config does three things: 2. Creates a "Project Templates" view under that entry 3. Adds a "+" button in the view title bar for project creation - -![Screenshot showing the AI Project Bot icon and the project template list in the VS Code sidebar](/zh-cn/stage-3/cross-platform/3.12-vscode-extension/images/image6.png) + +![Screenshot showing the AI Project Bot icon and the project template list in the VS Code sidebar](/zh-cn/stage-3/cross-platform/vscode-extension/images/image6.png) ## 3.3 Implement TreeDataProvider @@ -399,8 +399,8 @@ export function activate(context: vscode.ExtensionContext) { Now press F5 for debugging. You will see AI Project Bot in activity bar. Expand template list and click any template to create a project. - -![Screenshot showing the project name input box and folder picker dialog after clicking a template](/zh-cn/stage-3/cross-platform/3.12-vscode-extension/images/image7.png) + +![Screenshot showing the project name input box and folder picker dialog after clicking a template](/zh-cn/stage-3/cross-platform/vscode-extension/images/image7.png) # Chapter 4: Implement AI Chat Participant (5 Minutes) @@ -537,8 +537,8 @@ export function activate(context: vscode.ExtensionContext) { Now input `@project-bot /explain what does this code do?` in Chat panel, and your extension will call model and generate explanation. - -![Screenshot of the VS Code Chat panel showing @project-bot, the /explain command, and a streaming response](/zh-cn/stage-3/cross-platform/3.12-vscode-extension/images/image8.png) + +![Screenshot of the VS Code Chat panel showing @project-bot, the /explain command, and a streaming response](/zh-cn/stage-3/cross-platform/vscode-extension/images/image8.png) # Chapter 5: File/Snippet Chat and Multi-file Q&A (5 Minutes) @@ -639,8 +639,8 @@ export function registerSelectionCommands(context: vscode.ExtensionContext) { } ``` - -![Screenshot of the editor context menu showing AI items after selecting code](/zh-cn/stage-3/cross-platform/3.12-vscode-extension/images/image9.png) + +![Screenshot of the editor context menu showing AI items after selecting code](/zh-cn/stage-3/cross-platform/vscode-extension/images/image9.png) ## 5.3 Multi-file Q&A: Batch Analyze File Relationships @@ -737,8 +737,8 @@ export function registerMultiFileCommands(context: vscode.ExtensionContext) { Usage: in explorer, hold `Ctrl` (`Cmd` on Mac) to multi-select files, right-click and choose "AI: Analyze Relationships of Selected Files." AI reads all selected files and returns analysis. - -![Screenshot of the explorer with multiple selected files and an AI analysis item in the context menu](/zh-cn/stage-3/cross-platform/3.12-vscode-extension/images/image10.png) + +![Screenshot of the explorer with multiple selected files and an AI analysis item in the context menu](/zh-cn/stage-3/cross-platform/vscode-extension/images/image10.png) # Chapter 6: Shortcuts and UX Optimization (3 Minutes) @@ -808,8 +808,8 @@ export function createStatusBarItem(context: vscode.ExtensionContext) { `$(hubot)` is VS Code built-in icon syntax. You can find all icons in [Codicon library](https://microsoft.github.io/vscode-codicons/dist/codicon.html). - -![Screenshot of the AI Bot icon displayed in the VS Code status bar](/zh-cn/stage-3/cross-platform/3.12-vscode-extension/images/image11.png) + +![Screenshot of the AI Bot icon displayed in the VS Code status bar](/zh-cn/stage-3/cross-platform/vscode-extension/images/image11.png) # Chapter 7: Publish to Marketplace (Optional) @@ -864,7 +864,7 @@ After packaging, you get `ai-project-bot-0.0.1.vsix`. You can send this file to For official marketplace publishing, run `vsce publish`; the extension usually appears within minutes. - + > **Tip**: first release may require review. Make sure README is clear and screenshots are complete to speed up approval. diff --git a/docs/en/stage-3/cross-platform/3.4-wechat-miniprogram-backend/index.md b/docs/en/stage-3/cross-platform/wechat-miniprogram-backend/index.md similarity index 100% rename from docs/en/stage-3/cross-platform/3.4-wechat-miniprogram-backend/index.md rename to docs/en/stage-3/cross-platform/wechat-miniprogram-backend/index.md diff --git a/docs/en/stage-3/cross-platform/3.3-wechat-miniprogram/index.md b/docs/en/stage-3/cross-platform/wechat-miniprogram/index.md similarity index 88% rename from docs/en/stage-3/cross-platform/3.3-wechat-miniprogram/index.md rename to docs/en/stage-3/cross-platform/wechat-miniprogram/index.md index 719822b..5436c07 100644 --- a/docs/en/stage-3/cross-platform/3.3-wechat-miniprogram/index.md +++ b/docs/en/stage-3/cross-platform/wechat-miniprogram/index.md @@ -78,13 +78,13 @@ If you have never registered a mini program before, follow this order: 1. Enter https://mp.weixin.qq.com in your browser, open WeChat Official Platform, and login by scanning QR code with WeChat. -![](../../../../zh-cn/stage-3/cross-platform/3.3-wechat-miniprogram/images/image1.png) +![](../../../../zh-cn/stage-3/cross-platform/wechat-miniprogram/images/image1.png) 2. Choose "Mini Program" on homepage and complete registration prompts, including email, phone number, and entity type (individual or enterprise). - ![](../../../../zh-cn/stage-3/cross-platform/3.3-wechat-miniprogram/images/image2.png) + ![](../../../../zh-cn/stage-3/cross-platform/wechat-miniprogram/images/image2.png) 3. After successful registration, enter backend, find "Development Management" or "Development Settings," and you will see a unique ID named AppID. This is your mini program identity and will be used in project config later. -![](../../../../zh-cn/stage-3/cross-platform/3.3-wechat-miniprogram/images/image3.png) +![](../../../../zh-cn/stage-3/cross-platform/wechat-miniprogram/images/image3.png) It is recommended to save AppID where easy to find. In later sections, we will fill this value directly to map local project to your online mini program. @@ -97,7 +97,7 @@ Next we need a place to actually run and preview mini programs. That is exactly 2. After download, double-click installer and follow wizard step by step. If unsure, keep default options. 3. After installation, launch WeChat DevTools from desktop or start menu. On first launch, it shows a QR code and asks you to scan with WeChat. Scan and authorize to enter main interface. -![](../../../../zh-cn/stage-3/cross-platform/3.3-wechat-miniprogram/images/image4.png)![](../../../../zh-cn/stage-3/cross-platform/3.3-wechat-miniprogram/images/image5.png) +![](../../../../zh-cn/stage-3/cross-platform/wechat-miniprogram/images/image4.png)![](../../../../zh-cn/stage-3/cross-platform/wechat-miniprogram/images/image5.png) Later, after project files are ready in Trae, we will import the built mini program into WeChat DevTools and view real running results here. @@ -107,11 +107,11 @@ Finally, install the two tools used for actual coding: Trae and HBuilderX. You can **install Trae first**. Visit https://www.trae.cn in browser and download the right version for your OS. Installation is like normal software: double-click installer and follow prompts. After install, you get an IDE that can open local folders, inspect code, and chat with AI. All later vibecoding steps happen here. -![](../../../../zh-cn/stage-3/cross-platform/3.3-wechat-miniprogram/images/image6.png) +![](../../../../zh-cn/stage-3/cross-platform/wechat-miniprogram/images/image6.png) **Then install HBuilderX**. Visit https://www.dcloud.io/hbuilderx.html and download your OS package. HBuilderX is lightweight and starts quickly. After install, you can briefly look at interface; no need deep feature study now. In later chapters, we use it to create a uni-app mini program template as project starting point. -![](../../../../zh-cn/stage-3/cross-platform/3.3-wechat-miniprogram/images/image7.png) +![](../../../../zh-cn/stage-3/cross-platform/wechat-miniprogram/images/image7.png) After finishing this section, your environment is complete: you have a mini program account + AppID, a runtime preview tool, and an AI coding IDE. Next we start from **creating the first project skeleton** and make these tools really run. @@ -119,19 +119,19 @@ After finishing this section, your environment is complete: you have a mini prog 1. Click "New Project". -![](../../../../zh-cn/stage-3/cross-platform/3.3-wechat-miniprogram/images/image8.png) +![](../../../../zh-cn/stage-3/cross-platform/wechat-miniprogram/images/image8.png) 2. Choose default template, set mini program name, select storage path, then click create in lower-right corner: -![](../../../../zh-cn/stage-3/cross-platform/3.3-wechat-miniprogram/images/image9.png) +![](../../../../zh-cn/stage-3/cross-platform/wechat-miniprogram/images/image9.png) 3. Creation success screen appears: -![](../../../../zh-cn/stage-3/cross-platform/3.3-wechat-miniprogram/images/image10.png) +![](../../../../zh-cn/stage-3/cross-platform/wechat-miniprogram/images/image10.png) 4. Then find this folder in file system, open it in Trae, and you will see foundation files are all ready: -![](../../../../zh-cn/stage-3/cross-platform/3.3-wechat-miniprogram/images/image11.png) +![](../../../../zh-cn/stage-3/cross-platform/wechat-miniprogram/images/image11.png) # 3. Mini Program Development @@ -163,16 +163,16 @@ When you execute this instruction in Trae, AI enters a "project editing" flow. D 1. It explains its thinking in chat area, for example which directories it will add pages to and how it will organize game logic. -![](../../../../zh-cn/stage-3/cross-platform/3.3-wechat-miniprogram/images/image12.png)![](../../../../zh-cn/stage-3/cross-platform/3.3-wechat-miniprogram/images/image13.png) +![](../../../../zh-cn/stage-3/cross-platform/wechat-miniprogram/images/image12.png)![](../../../../zh-cn/stage-3/cross-platform/wechat-miniprogram/images/image13.png) 2. It directly edits real project files, instead of only giving "sample code" for copy-paste. 3. After finishing, Trae outputs a short summary telling you what files were changed and what was done. If you are not satisfied with this round (or think something is wrong), no need to panic. Trae provides rollback in the top-left outside chat box. You can restore project state before this instruction with one click - like a safety undo key. -![](../../../../zh-cn/stage-3/cross-platform/3.3-wechat-miniprogram/images/image14.png) +![](../../../../zh-cn/stage-3/cross-platform/wechat-miniprogram/images/image14.png) -![](../../../../zh-cn/stage-3/cross-platform/3.3-wechat-miniprogram/images/image15.png) +![](../../../../zh-cn/stage-3/cross-platform/wechat-miniprogram/images/image15.png) ## 3.3 View Effects in HBuilderX and WeChat DevTools @@ -181,11 +181,11 @@ Next we need to run it. Specific operation: go back to HBuilderX, find top menu "Run," select "Run to Mini Program Simulator" -> "WeChat DevTools." This triggers project build and opens result in WeChat DevTools. -![](../../../../zh-cn/stage-3/cross-platform/3.3-wechat-miniprogram/images/image16.png) +![](../../../../zh-cn/stage-3/cross-platform/wechat-miniprogram/images/image16.png) The output panel at bottom shows build process. If final state is "ready" with no errors, build is successful. Then switch to WeChat DevTools to check UI and features of this version. -![](../../../../zh-cn/stage-3/cross-platform/3.3-wechat-miniprogram/images/image17.png) +![](../../../../zh-cn/stage-3/cross-platform/wechat-miniprogram/images/image17.png) In most cases, HBuilderX auto-opens WeChat DevTools and you can directly see updated mini program. If not auto-opened, do this: @@ -195,7 +195,7 @@ In most cases, HBuilderX auto-opens WeChat DevTools and you can directly see upd Then you can see the vibecoding mini program in WeChat DevTools: -![](../../../../zh-cn/stage-3/cross-platform/3.3-wechat-miniprogram/images/image18.png) +![](../../../../zh-cn/stage-3/cross-platform/wechat-miniprogram/images/image18.png) ## 3.4 Use Natural Language to Repeatedly Adjust Until Satisfied @@ -207,12 +207,12 @@ Replace buttons with joystick control. When user releases joystick, snake should As long as requirement is clear, AI will automatically locate target files and modify control styles, interaction bindings, and direction handling logic. -![](../../../../zh-cn/stage-3/cross-platform/3.3-wechat-miniprogram/images/image19.png) +![](../../../../zh-cn/stage-3/cross-platform/wechat-miniprogram/images/image19.png) After modification, return to WeChat DevTools to check. If changes are not visible immediately, click "Run" in DevTools or refresh preview window to apply latest build. If still not updated, stop run in HBuilderX and run to simulator again, then you can see updated mini program: -![](../../../../zh-cn/stage-3/cross-platform/3.3-wechat-miniprogram/images/image20.png) +![](../../../../zh-cn/stage-3/cross-platform/wechat-miniprogram/images/image20.png) ## 3.5 What If Problems Appear: Keep Communicating in Natural Language @@ -232,7 +232,7 @@ AI will use current project context + your description, then provide and apply c Through several such rounds, you can polish from "rough first version" to a joystick-based Snake closer to your preference. For example, I gave a style reference image and asked AI to adjust UI style accordingly: -![](../../../../zh-cn/stage-3/cross-platform/3.3-wechat-miniprogram/images/image21.png) +![](../../../../zh-cn/stage-3/cross-platform/wechat-miniprogram/images/image21.png) ## 3.6 Final Result and Section Summary @@ -245,7 +245,7 @@ After repeated rounds of **natural language description -> AI modification -> pr Final product examples: -![](../../../../zh-cn/stage-3/cross-platform/3.3-wechat-miniprogram/images/image22.png)![](../../../../zh-cn/stage-3/cross-platform/3.3-wechat-miniprogram/images/image23.png)![](../../../../zh-cn/stage-3/cross-platform/3.3-wechat-miniprogram/images/image24.png) +![](../../../../zh-cn/stage-3/cross-platform/wechat-miniprogram/images/image22.png)![](../../../../zh-cn/stage-3/cross-platform/wechat-miniprogram/images/image23.png)![](../../../../zh-cn/stage-3/cross-platform/wechat-miniprogram/images/image24.png) In this section, you have seen a complete closed loop: @@ -291,7 +291,7 @@ You already did this once in **Section 2 Environment Setup**. Here we use it for This ID must exactly match project config. Otherwise WeChat sees it as another app identity and preview/publish will fail. -![](../../../../zh-cn/stage-3/cross-platform/3.3-wechat-miniprogram/images/image25.png) +![](../../../../zh-cn/stage-3/cross-platform/wechat-miniprogram/images/image25.png) ### 4.1.2 Fill AppID in Project @@ -303,7 +303,7 @@ If your project uses uni-app template, do this: 2. Find `manifest.json` in file tree and open it. 3. Scroll to "WeChat Mini Program Configuration," and you will see an input such as "WeChat Mini Program AppID." 4. Paste AppID copied from Official Platform exactly, then save file. - ![](../../../../zh-cn/stage-3/cross-platform/3.3-wechat-miniprogram/images/image26.png) + ![](../../../../zh-cn/stage-3/cross-platform/wechat-miniprogram/images/image26.png) Now your local project has claimed this mini program identity. Next, when you upload from WeChat DevTools, it will be recorded under this AppID. @@ -321,11 +321,11 @@ Steps: 2. Project note: short description, such as "Completed core gameplay." 3. Confirm and click "Upload." Output panel shows build process. If all steps turn green and upload completes, this version is successfully submitted to WeChat server. -![](../../../../zh-cn/stage-3/cross-platform/3.3-wechat-miniprogram/images/image27.png) +![](../../../../zh-cn/stage-3/cross-platform/wechat-miniprogram/images/image27.png) -![](../../../../zh-cn/stage-3/cross-platform/3.3-wechat-miniprogram/images/image28.png) +![](../../../../zh-cn/stage-3/cross-platform/wechat-miniprogram/images/image28.png) -![](../../../../zh-cn/stage-3/cross-platform/3.3-wechat-miniprogram/images/image29.png)![](../../../../zh-cn/stage-3/cross-platform/3.3-wechat-miniprogram/images/image30.png) +![](../../../../zh-cn/stage-3/cross-platform/wechat-miniprogram/images/image29.png)![](../../../../zh-cn/stage-3/cross-platform/wechat-miniprogram/images/image30.png) ### 4.1.4 Set Uploaded Version as Experience Version in Backend @@ -338,9 +338,9 @@ Final step: go back to Official Platform backend and complete loop. 3. In "Development Version" section, you should see the uploaded version: version `1.0.0`, your note, and just-uploaded timestamp. 4. On the right side of this row, use dropdown/action button to choose "Set as Experience Version," confirm action. Before this step, ensure your main category is configured on homepage/category settings. - ![](../../../../zh-cn/stage-3/cross-platform/3.3-wechat-miniprogram/images/image31.png) + ![](../../../../zh-cn/stage-3/cross-platform/wechat-miniprogram/images/image31.png) - ![](../../../../zh-cn/stage-3/cross-platform/3.3-wechat-miniprogram/images/image32.png) + ![](../../../../zh-cn/stage-3/cross-platform/wechat-miniprogram/images/image32.png) After completion, this version becomes your mini program "Experience Version." You can generate experience QR code in backend, or add yourself/team as experience members, then scan in WeChat for real-device testing. @@ -369,7 +369,7 @@ After entering, top area shows a progress bar. Below it lists steps such as: At beginning progress is 0%. As each step is completed, system updates automatically. -![](../../../../zh-cn/stage-3/cross-platform/3.3-wechat-miniprogram/images/image33.png) +![](../../../../zh-cn/stage-3/cross-platform/wechat-miniprogram/images/image33.png) ### 4.2.2 Fill Basic Mini Program Information @@ -389,7 +389,7 @@ On "Mini Program Information" page, you usually need to fill/confirm: Such as tags and service region, fill according to prompts. Only one principle: all information must match real functionality of your Snake mini program. -![](../../../../zh-cn/stage-3/cross-platform/3.3-wechat-miniprogram/images/image34.png) +![](../../../../zh-cn/stage-3/cross-platform/wechat-miniprogram/images/image34.png) After all fields are done, click Save or Next. First step in release flow is complete. @@ -398,20 +398,20 @@ After all fields are done, click Save or Next. First step in release flow is com After basic information, wizard guides you to "Mini Program Category." Category is your app's classification in WeChat, affects review route and later display/operation. -![](../../../../zh-cn/stage-3/cross-platform/3.3-wechat-miniprogram/images/image35.png) +![](../../../../zh-cn/stage-3/cross-platform/wechat-miniprogram/images/image35.png) On this page you will see "Add Category." Click it and choose proper category in system category tree, for example: -![](../../../../zh-cn/stage-3/cross-platform/3.3-wechat-miniprogram/images/image36.png) +![](../../../../zh-cn/stage-3/cross-platform/wechat-miniprogram/images/image36.png) 1. Choose "Education" as top-level category; 2. Then choose more specific subcategory such as "Education Tools / Teaching Assistant." In this example, education tools are selected as learning aid for vibecoding. In your own project, simply choose the closest category by real use case. -![](../../../../zh-cn/stage-3/cross-platform/3.3-wechat-miniprogram/images/image37.png) +![](../../../../zh-cn/stage-3/cross-platform/wechat-miniprogram/images/image37.png) -![](../../../../zh-cn/stage-3/cross-platform/3.3-wechat-miniprogram/images/image38.png) +![](../../../../zh-cn/stage-3/cross-platform/wechat-miniprogram/images/image38.png) After confirming category, click Save. If page shows "category created successfully" and displays your new item, this step is complete. @@ -419,7 +419,7 @@ After confirming category, click Save. If page shows "category created successfu Next, release flow asks for "Operation Information / Filing." This verifies responsible entity behind mini program. -![](../../../../zh-cn/stage-3/cross-platform/3.3-wechat-miniprogram/images/image39.png) +![](../../../../zh-cn/stage-3/cross-platform/wechat-miniprogram/images/image39.png) Under individual entity example, flow usually includes: @@ -429,11 +429,11 @@ Under individual entity example, flow usually includes: Include name, ID type, ID number, etc. This must match registration information, otherwise review may reject. 3. Upload supporting documents Usually requires ID photos or other proof files, with specific format/size/clarity requirements shown on page. Prepare and upload clear files. - ![](../../../../zh-cn/stage-3/cross-platform/3.3-wechat-miniprogram/images/image40.png) + ![](../../../../zh-cn/stage-3/cross-platform/wechat-miniprogram/images/image40.png) After submission, system enters "under review" and shows a message like "Information submitted, please wait." This may take some time. You can check progress anytime in backend. -![](../../../../zh-cn/stage-3/cross-platform/3.3-wechat-miniprogram/images/image41.png) +![](../../../../zh-cn/stage-3/cross-platform/wechat-miniprogram/images/image41.png) ### 4.2.5 Submit for Review and Wait for Formal Release @@ -450,7 +450,7 @@ WeChat verification: individual usually pays 30 CNY, enterprise around 300 CNY. When submitting review, upload operation video/screens and fill required info. Then click "Submit Release" for formal launch. -![](../../../../zh-cn/stage-3/cross-platform/3.3-wechat-miniprogram/images/image42.png) +![](../../../../zh-cn/stage-3/cross-platform/wechat-miniprogram/images/image42.png) # 5. Summary diff --git a/docs/en/stage-3/index.md b/docs/en/stage-3/index.md index 1642fc8..88e5191 100644 --- a/docs/en/stage-3/index.md +++ b/docs/en/stage-3/index.md @@ -52,57 +52,57 @@ Build WeChat Mini Programs, Android and iOS applications, and achieve cross-plat @@ -114,7 +114,7 @@ Build your own personal website and technical blog to establish personal influen @@ -126,12 +126,12 @@ Explore advanced AI technologies such as RAG and LangGraph to build complex AI a diff --git a/docs/en/stage-3/personal-brand/3.7-personal-website-blog/index.md b/docs/en/stage-3/personal-brand/personal-website-blog/index.md similarity index 91% rename from docs/en/stage-3/personal-brand/3.7-personal-website-blog/index.md rename to docs/en/stage-3/personal-brand/personal-website-blog/index.md index 293092d..d8e0676 100644 --- a/docs/en/stage-3/personal-brand/3.7-personal-website-blog/index.md +++ b/docs/en/stage-3/personal-brand/personal-website-blog/index.md @@ -18,7 +18,7 @@ An **academic personal homepage** is your own private territory on the internet. Unlike WeChat Moments, Zhihu, or LinkedIn, it does not depend on any platform's recommendation algorithm, and it will not disappear if a platform shuts down. It is a long-term, stable **personal showcase space** that can be indexed by Google and Google Scholar. It usually contains your bio, publications, projects, and technical blog. -![](../../../../zh-cn/stage-3/personal-brand/3.7-personal-website-blog/images/image1.png) +![](../../../../zh-cn/stage-3/personal-brand/personal-website-blog/images/image1.png) ## 1.2 Why build your own website? @@ -41,22 +41,22 @@ In practice, there are countless ways to build a website. Here we introduce only **Method 1: hand-writing from scratch with HTML / CSS / JS** This is the traditional computer science route. You write the code character by character. The advantage is extreme flexibility. The disadvantage is a very high barrier to entry, and it is easy to get stuck while tweaking CSS. It is not ideal for those of us who want to focus on content. -![](../../../../zh-cn/stage-3/personal-brand/3.7-personal-website-blog/images/image2.png) +![](../../../../zh-cn/stage-3/personal-brand/personal-website-blog/images/image2.png) **Method 2: visual site builders such as Wix / WordPress** This is like building with blocks. The advantage is easy drag-and-drop editing. The disadvantage is that it often requires payment, tends to generate bloated code, lacks an academic-geek feel, and is difficult to customize deeply. -![](../../../../zh-cn/stage-3/personal-brand/3.7-personal-website-blog/images/image3.png) +![](../../../../zh-cn/stage-3/personal-brand/personal-website-blog/images/image3.png) **Method 3: GitHub-based templates (Static Site Generators)** This is the **most recommended** mainstream route in academic and geek communities. We directly fork a mature template written by others, such as one based on Jekyll or Hugo, and then only modify the configuration files and content. -![](../../../../zh-cn/stage-3/personal-brand/3.7-personal-website-blog/images/image4.png) +![](../../../../zh-cn/stage-3/personal-brand/personal-website-blog/images/image4.png) **Method 4: Vibe Coding (AI visual generation flow)** With AI agents that have strong multimodal visual understanding, you only need to see a website style you like online, take a screenshot, and tell the AI: "Write me a webpage based on this style." The AI can then analyze the visual elements and generate the underlying code for you. -![](../../../../zh-cn/stage-3/personal-brand/3.7-personal-website-blog/images/image5.png) +![](../../../../zh-cn/stage-3/personal-brand/personal-website-blog/images/image5.png) **The choice in this tutorial: GitHub Pages + academic template + AI modifications.** The reason is simple: @@ -101,7 +101,7 @@ The whole build process uses four tools or resources, each playing the role of d After preparing this tool, in the following practical steps we will not need to stare at boring code panes. We will directly open the project here and use the chat panel on the right to tell the AI in natural language, in Chinese if you like, to help us write code, fix bugs, and even refactor whole pages. -![](../../../../zh-cn/stage-3/personal-brand/3.7-personal-website-blog/images/image6.png) +![](../../../../zh-cn/stage-3/personal-brand/personal-website-blog/images/image6.png) ## 2.3 Download Git @@ -121,7 +121,7 @@ Please help me check whether Git is already installed on this computer. Please r * **Case A (already installed)**: if you see something like `git version 2.xx.x`, congratulations. You can skip the installation step directly. * **Case B (not installed)**: if you see "command not found" or a group of red error messages, continue below. -![](../../../../zh-cn/stage-3/personal-brand/3.7-personal-website-blog/images/image7.png) +![](../../../../zh-cn/stage-3/personal-brand/personal-website-blog/images/image7.png) **Step 2: AI-assisted installation** @@ -160,7 +160,7 @@ For Windows users, the official site at https://rubyinstaller.org/downloads/ pro **Beginner reminder**: in practice, downloading directly from the official site may be slow or fail. We strongly recommend using the domestic mirror at [RubyInstaller for Windows - China mirror](https://rubyinstaller.cn/), which is usually much faster. -![](../../../../zh-cn/stage-3/personal-brand/3.7-personal-website-blog/images/image8.png) +![](../../../../zh-cn/stage-3/personal-brand/personal-website-blog/images/image8.png) **Step 2: Run the installation** @@ -168,13 +168,13 @@ Double-click the downloaded installer. In the setup wizard, make sure to check * After checking it, keep clicking **Next** to complete the installation. -![](../../../../zh-cn/stage-3/personal-brand/3.7-personal-website-blog/images/image9.png) +![](../../../../zh-cn/stage-3/personal-brand/personal-website-blog/images/image9.png) **Step 3: Configure the development toolkit** When the installation progress finishes, a black command-line window will open automatically. Do not panic. Type the number `3` where the cursor is blinking, which means installing the MSYS2 base environment and the MINGW toolchain, then press Enter. Wait until the commands finish running and the window closes automatically. -![](../../../../zh-cn/stage-3/personal-brand/3.7-personal-website-blog/images/image10.png) +![](../../../../zh-cn/stage-3/personal-brand/personal-website-blog/images/image10.png) **Step 4: Verify the result** @@ -186,7 +186,7 @@ Please help me check whether the Ruby environment has been installed correctly o If Trae replies with something like `ruby 3.x.x`, then your Windows Ruby environment is fully set up. -![](../../../../zh-cn/stage-3/personal-brand/3.7-personal-website-blog/images/image11.png) +![](../../../../zh-cn/stage-3/personal-brand/personal-website-blog/images/image11.png) ### 2.4.2 Mac installation @@ -232,7 +232,7 @@ If Git is the courier, then **GitHub is the cloud warehouse and showroom**. It n 1. **Visit the official site**: open [https://github.com/](https://github.com/). 2. **Click Sign up**: click **"Sign up"** in the upper right corner. -![](../../../../zh-cn/stage-3/personal-brand/3.7-personal-website-blog/images/image12.png) +![](../../../../zh-cn/stage-3/personal-brand/personal-website-blog/images/image12.png) 3. **Fill in your information** 4. **Email**: enter a real email address. @@ -240,11 +240,11 @@ If Git is the courier, then **GitHub is the cloud warehouse and showroom**. It n 6. **Username (important!)**: **choose carefully**. Your homepage URL will later become **`https://your-username.github.io`**. It is best to use your English name, pinyin, a familiar ID, or a simple combination of letters and numbers. Do **not** choose something like `a1b2c3d4`, otherwise your website link will be hard to remember. 7. **Verification and activation**: complete the human verification, often rotating images or choosing spiral galaxies, then check your email for the verification code. -![](../../../../zh-cn/stage-3/personal-brand/3.7-personal-website-blog/images/image13.png) +![](../../../../zh-cn/stage-3/personal-brand/personal-website-blog/images/image13.png) Once registration is complete, you have a plot of your own on the internet. In the next section, we will begin building on that plot. -![](../../../../zh-cn/stage-3/personal-brand/3.7-personal-website-blog/images/image14.png) +![](../../../../zh-cn/stage-3/personal-brand/personal-website-blog/images/image14.png) # 3. From Template to Your First Accessible Page @@ -281,7 +281,7 @@ Visit the target repository homepage and click the **Fork** button in the upper * Explanation: this step is equivalent to copying someone else's code repository with a full set of keys into your own GitHub account. Now, you own your copy of the site. -![](../../../../zh-cn/stage-3/personal-brand/3.7-personal-website-blog/images/image15.png) +![](../../../../zh-cn/stage-3/personal-brand/personal-website-blog/images/image15.png) **Step 3: Rename the repository, the most important step** @@ -293,7 +293,7 @@ This is a hard rule of GitHub Pages. For example, if your GitHub username is `musk-fan`, then the repository name **must** be `musk-fan.github.io`. Only this way will GitHub automatically assign you a free domain. If the name is wrong, the webpage will not open later. -![](../../../../zh-cn/stage-3/personal-brand/3.7-personal-website-blog/images/image16.png) +![](../../../../zh-cn/stage-3/personal-brand/personal-website-blog/images/image16.png) ## 3.2 Get the GitHub project URL @@ -304,7 +304,7 @@ After renaming, we need the repository pickup slip. 3. Make sure the **HTTPS** tab is selected. 4. Click the copy button and copy the URL ending in `.git`, for example `https://github.com/musk-fan/musk-fan.github.io.git`. -![](../../../../zh-cn/stage-3/personal-brand/3.7-personal-website-blog/images/image17.png) +![](../../../../zh-cn/stage-3/personal-brand/personal-website-blog/images/image17.png) ## 3.3 Pull the project locally @@ -314,7 +314,7 @@ In the past, programmers had to type complex Git commands in a black terminal to Create a new folder on your computer, for example `MyWebsite`, then right-click and choose **Open with Trae**, or open Trae first and choose **Open Folder**. -![](../../../../zh-cn/stage-3/personal-brand/3.7-personal-website-blog/images/image18.png) +![](../../../../zh-cn/stage-3/personal-brand/personal-website-blog/images/image18.png) **Step 2: Give the clone command** @@ -330,7 +330,7 @@ Execution requirement: please run the `git clone` command directly in the termin Trae will automatically invoke the terminal at the bottom and execute the command. Wait a few seconds. When you see files such as `_config.yml` and `index.html` appear in the file tree on the left, the project has been successfully moved to your computer. -![](../../../../zh-cn/stage-3/personal-brand/3.7-personal-website-blog/images/image19.png) +![](../../../../zh-cn/stage-3/personal-brand/personal-website-blog/images/image19.png) ## 3.4 Preview the webpage locally @@ -365,7 +365,7 @@ After the terminal runs for a few seconds, you will see something similar to: From this point on, whenever you change content and press `Ctrl+S`, then refresh the browser, **the webpage content will change with it**. -![](../../../../zh-cn/stage-3/personal-brand/3.7-personal-website-blog/images/image20.png) +![](../../../../zh-cn/stage-3/personal-brand/personal-website-blog/images/image20.png) Once local preview works, we can enter the next chapter and start turning the website into something shaped like Elon Musk. @@ -404,8 +404,8 @@ The first thing we need to solve is "Who am I?" The template is filled with the Put the image assets I provide to you, `University_of_Pennsylvania.jpg` and `Queen_University.jpg`, into the corresponding project folder, usually `/assets/images/badges/`. -![](../../../../zh-cn/stage-3/personal-brand/3.7-personal-website-blog/images/image21.png) -![](../../../../zh-cn/stage-3/personal-brand/3.7-personal-website-blog/images/image22.png) +![](../../../../zh-cn/stage-3/personal-brand/personal-website-blog/images/image21.png) +![](../../../../zh-cn/stage-3/personal-brand/personal-website-blog/images/image22.png) **Step 2: Send the instruction** @@ -441,13 +441,13 @@ In Trae's right-side chat box, enter the following prompt. Note that we do not n At this point, you can see that Trae has completed all our modification requirements. -![](../../../../zh-cn/stage-3/personal-brand/3.7-personal-website-blog/images/image23.png) +![](../../../../zh-cn/stage-3/personal-brand/personal-website-blog/images/image23.png) **Step 3: Refresh the local browser** Refresh the local browser now, and you should see everything replaced correctly. -![](../../../../zh-cn/stage-3/personal-brand/3.7-personal-website-blog/images/image24.png) +![](../../../../zh-cn/stage-3/personal-brand/personal-website-blog/images/image24.png) ### 4.2.2 Iterative improvement: add "papers" and projects @@ -455,15 +455,15 @@ Because Elon Musk is not a traditional university professor, he rarely publishes Within the context of an academic homepage, we can redefine the meaning of "Publications" as **"Technical White Papers & Visionary Plans."** This is not awkward at all. In fact, it fits his builder identity very well. -![](../../../../zh-cn/stage-3/personal-brand/3.7-personal-website-blog/images/image25.png) +![](../../../../zh-cn/stage-3/personal-brand/personal-website-blog/images/image25.png) **Step 1: Prepare the assets** Download the cover images I provide, namely `Hyperloop_Alpha_sketch.jpg`, `SpaceX_Starship.jpg`, and `Neuralink_sewing_machine_robot.jpg`, place them under `/assets/images/covers/`, and remove the example images originally in that folder. -![](../../../../zh-cn/stage-3/personal-brand/3.7-personal-website-blog/images/image26.png) -![](../../../../zh-cn/stage-3/personal-brand/3.7-personal-website-blog/images/image27.png) -![](../../../../zh-cn/stage-3/personal-brand/3.7-personal-website-blog/images/image28.png) +![](../../../../zh-cn/stage-3/personal-brand/personal-website-blog/images/image26.png) +![](../../../../zh-cn/stage-3/personal-brand/personal-website-blog/images/image27.png) +![](../../../../zh-cn/stage-3/personal-brand/personal-website-blog/images/image28.png) **Step 2: Send the instruction** @@ -530,7 +530,7 @@ Please directly provide the complete content of these three files, and also prov When the build completes, you will find that the originally dull publication list has turned into a futuristic black-tech showcase. -![](../../../../zh-cn/stage-3/personal-brand/3.7-personal-website-blog/images/image33.png) +![](../../../../zh-cn/stage-3/personal-brand/personal-website-blog/images/image33.png) ### 4.2.3 Final polish: social links and avatar @@ -567,7 +567,7 @@ Please directly provide the complete modified configuration code snippet. At this point, locally, you already have a complete, professional, and distinctly Musk-style personal academic homepage. -![](../../../../zh-cn/stage-3/personal-brand/3.7-personal-website-blog/images/image34.png) +![](../../../../zh-cn/stage-3/personal-brand/personal-website-blog/images/image34.png) ## 4.3 Injecting soul through UI customization, the style part @@ -577,7 +577,7 @@ Right now the content is correct, but the page still looks like a printed resume If you think the gray background is too dull and want to change it to **Mars red**, just ask Trae: *"I want to change the background color of the sidebar to dark red (#8B0000) to reflect the feeling of Mars. Which CSS or SCSS file should I modify? Please give me the code directly."* -![](../../../../zh-cn/stage-3/personal-brand/3.7-personal-website-blog/images/image35.png) +![](../../../../zh-cn/stage-3/personal-brand/personal-website-blog/images/image35.png) If you like the **SpaceX Dashboard** style in the example image above, you can directly copy the following designer-level prompt: @@ -668,8 +668,8 @@ Do not explain the process. Directly output the cleaned Markdown content. Once you get this cleaned text, feed it into Trae, and the accuracy will improve dramatically. -![](../../../../zh-cn/stage-3/personal-brand/3.7-personal-website-blog/images/image36.png) -![](../../../../zh-cn/stage-3/personal-brand/3.7-personal-website-blog/images/image37.png) +![](../../../../zh-cn/stage-3/personal-brand/personal-website-blog/images/image36.png) +![](../../../../zh-cn/stage-3/personal-brand/personal-website-blog/images/image37.png) **Step 3: Replace the core content, with two possible routes** @@ -688,7 +688,7 @@ Trae will tell you in the chat something like: You can then open that file yourself from the file tree on the left and fill in the cleaned content from ChatGPT like a structured editing exercise. -![](../../../../zh-cn/stage-3/personal-brand/3.7-personal-website-blog/images/image38.png) +![](../../../../zh-cn/stage-3/personal-brand/personal-website-blog/images/image38.png) 2. **Mode B: fully managed automation** @@ -711,7 +711,7 @@ Back on GitHub in the browser: 2. In the left sidebar, click **Pages**. 3. Under **Build and deployment**, change **Source** from `Deploy from a branch` to **`GitHub Actions`**. -![](../../../../zh-cn/stage-3/personal-brand/3.7-personal-website-blog/images/image39.png) +![](../../../../zh-cn/stage-3/personal-brand/personal-website-blog/images/image39.png) **Step 2: Automatically configure the Jekyll workflow** @@ -720,7 +720,7 @@ After switching, the page layout changes. GitHub will automatically recognize th 1. Find the **Jekyll (By GitHub Actions)** card. 2. Click **Configure** on that card. -![](../../../../zh-cn/stage-3/personal-brand/3.7-personal-website-blog/images/image40.png) +![](../../../../zh-cn/stage-3/personal-brand/personal-website-blog/images/image40.png) **Step 3: Commit the configuration file** @@ -730,9 +730,9 @@ After clicking, you will be taken to a page full of code. This is a `.yml` confi 2. Click the green **Commit changes...** button in the upper right corner. 3. In the pop-up confirmation box, click **Commit changes** again. -![](../../../../zh-cn/stage-3/personal-brand/3.7-personal-website-blog/images/image41.png) +![](../../../../zh-cn/stage-3/personal-brand/personal-website-blog/images/image41.png) -![](../../../../zh-cn/stage-3/personal-brand/3.7-personal-website-blog/images/image42.png) +![](../../../../zh-cn/stage-3/personal-brand/personal-website-blog/images/image42.png) **Step 4: Wait and verify** @@ -742,7 +742,7 @@ After the commit, GitHub's servers start working automatically. 2. You will see a task named `Deploy Jekyll site to Pages` spinning. 3. Wait one to two minutes until the yellow circle turns into a **green check mark**. -![](../../../../zh-cn/stage-3/personal-brand/3.7-personal-website-blog/images/image43.png) +![](../../../../zh-cn/stage-3/personal-brand/personal-website-blog/images/image43.png) **Step 5: Visit your website** @@ -761,11 +761,11 @@ Now we will push all the local modifications we made earlier to GitHub, so this 4. Click **Sync Changes** or **Push** to push to the `main` branch. 5. Wait a moment until all processes under the **Actions** tab complete. -![](../../../../zh-cn/stage-3/personal-brand/3.7-personal-website-blog/images/image44.png) +![](../../../../zh-cn/stage-3/personal-brand/personal-website-blog/images/image44.png) Now, congratulations. Open **`https://your-username.github.io/`**, and you already have a complete, professional, and strongly Musk-flavored academic homepage. -![](../../../../zh-cn/stage-3/personal-brand/3.7-personal-website-blog/images/image45.png) +![](../../../../zh-cn/stage-3/personal-brand/personal-website-blog/images/image45.png) # 6. Advanced Play: Hand-build a Personal Homepage from Scratch @@ -812,7 +812,7 @@ Please put all CSS styles and HTML structure inside a single `index.html` file. Please generate the full code directly. ``` -![](../../../../zh-cn/stage-3/personal-brand/3.7-personal-website-blog/images/image46.png) +![](../../../../zh-cn/stage-3/personal-brand/personal-website-blog/images/image46.png) **Step 3: Generate and preview** @@ -826,11 +826,11 @@ Please help me start a local service to preview this webpage. You will receive a link such as `http://localhost:8000`. Copy and open it in the browser, and you will see a cool "Mars homepage," perhaps with stars twinkling in the background. -![](../../../../zh-cn/stage-3/personal-brand/3.7-personal-website-blog/images/image47.png) +![](../../../../zh-cn/stage-3/personal-brand/personal-website-blog/images/image47.png) But we will notice that the current page is only a very cool landing page. As a complete personal homepage, it still has too little information and lacks the depth expected of an academic homepage. So based on this visual framework, we now continue to enrich it with academic-style information about Elon Musk. -![](../../../../zh-cn/stage-3/personal-brand/3.7-personal-website-blog/images/image48.png) +![](../../../../zh-cn/stage-3/personal-brand/personal-website-blog/images/image48.png) **Step 4: Further improve the information** @@ -877,7 +877,7 @@ Make sure the whole page remains responsive and preserves a good two-column layo Refresh the browser after that, and your cyberpunk academic page is complete. Of course, you can keep improving it according to your own preferences. As in the previous steps, you only need to tell Trae the goal clearly, and it will handle the tedious coding process for you. -![](../../../../zh-cn/stage-3/personal-brand/3.7-personal-website-blog/images/image49.png) +![](../../../../zh-cn/stage-3/personal-brand/personal-website-blog/images/image49.png) ## 6.3 How to deploy the hand-built site @@ -888,7 +888,7 @@ Unlike the previous forked template, which came from someone else's repository, 1. Log in to GitHub in the browser. 2. Click the **+** icon in the upper right, then **New repository**. -![](../../../../zh-cn/stage-3/personal-brand/3.7-personal-website-blog/images/image50.png) +![](../../../../zh-cn/stage-3/personal-brand/personal-website-blog/images/image50.png) 3. **Repository name**: enter `mars-profile`, or any other name you like. @@ -900,13 +900,13 @@ If you have already used **`your-username.github.io`**, you cannot reuse that na Leave the other options at their defaults. 6. Click **Create repository**. -![](../../../../zh-cn/stage-3/personal-brand/3.7-personal-website-blog/images/image51.png) +![](../../../../zh-cn/stage-3/personal-brand/personal-website-blog/images/image51.png) **Step 2: Push the local code to the cloud** After creation, GitHub will take you to a page with a lot of code-looking content. Do not worry. We just need to copy the repository link shown on that page. -![](../../../../zh-cn/stage-3/personal-brand/3.7-personal-website-blog/images/image52.png) +![](../../../../zh-cn/stage-3/personal-brand/personal-website-blog/images/image52.png) Go back to Trae and type in the chat: @@ -924,7 +924,7 @@ Trae will usually help execute the standard sequence below, and you may only nee After Trae completes the push, go back to GitHub and refresh the page. Click the **Code** tab, and you will see that the code written in Trae has been successfully pushed into the repository. -![](../../../../zh-cn/stage-3/personal-brand/3.7-personal-website-blog/images/image53.png) +![](../../../../zh-cn/stage-3/personal-brand/personal-website-blog/images/image53.png) **Step 3: Enable GitHub Pages** @@ -937,18 +937,18 @@ After the code is pushed, the webpage will not appear automatically. We still ne 2. Set **Branch** to `main`, and choose `/(root)` as the folder. 4. Click **Save**. -![](../../../../zh-cn/stage-3/personal-brand/3.7-personal-website-blog/images/image54.png) +![](../../../../zh-cn/stage-3/personal-brand/personal-website-blog/images/image54.png) After you click Save, the webpage will not appear instantly. GitHub's backend works like a small robot factory. It needs around **1 to 2 minutes** to package your code, build it, and publish it to global servers. Wait patiently and refresh the page. Under the big **GitHub Pages** heading, you will see a line with a URL similar to: **"Your site is live at `https://your-username.github.io/mars-link/`"** -![](../../../../zh-cn/stage-3/personal-brand/3.7-personal-website-blog/images/image55.png) +![](../../../../zh-cn/stage-3/personal-brand/personal-website-blog/images/image55.png) Click it, and your Mars command center is online. -![](../../../../zh-cn/stage-3/personal-brand/3.7-personal-website-blog/images/image56.png) +![](../../../../zh-cn/stage-3/personal-brand/personal-website-blog/images/image56.png) # 7. Final words @@ -972,7 +972,7 @@ Do not leave this plot empty. Go experiment. Go break it. Go rebuild it. Keep doing that until it grows into the shape you like most. -![](../../../../zh-cn/stage-3/personal-brand/3.7-personal-website-blog/images/image57.png) +![](../../../../zh-cn/stage-3/personal-brand/personal-website-blog/images/image57.png) ***Go ahead, and let the world see you.*** diff --git a/docs/es-es/index.md b/docs/es-es/index.md index 1a1a655..aea5071 100644 --- a/docs/es-es/index.md +++ b/docs/es-es/index.md @@ -17,10 +17,10 @@ hero: actions: - theme: brand text: ¡Empezar a vibe juntos! - link: /es-es/stage-0/ + link: /es-es/stage-1/ - theme: alt text: Esquema del Curso - link: /es-es/stage-0/ + link: /es-es/stage-1/ --- diff --git a/docs/es-es/stage-0/index.md b/docs/es-es/stage-0/index.md index 6bbbfc2..8d3d9e2 100644 --- a/docs/es-es/stage-0/index.md +++ b/docs/es-es/stage-0/index.md @@ -11,12 +11,12 @@ En esta etapa, comenzarás desde cero y dominarás el flujo de trabajo de Vibe C Adecuado para productos, operaciones y antecedentes no técnicos. Comprende la lógica de programación de IA a través de juegos y genera confianza: @@ -28,22 +28,22 @@ Adecuado para productos, operaciones y antecedentes no técnicos. Comprende la l Domina el flujo de trabajo de Vibe Coding. Aprende a desglosar los requisitos y completar de forma independiente prototipos de aplicaciones web de alta fidelidad: diff --git a/docs/fr-fr/index.md b/docs/fr-fr/index.md index 55e0469..cc16cee 100644 --- a/docs/fr-fr/index.md +++ b/docs/fr-fr/index.md @@ -17,10 +17,10 @@ hero: actions: - theme: brand text: Commencer à vibe ensemble ! - link: /fr-fr/stage-0/ + link: /fr-fr/stage-1/ - theme: alt text: Plan du Cours - link: /fr-fr/stage-0/ + link: /fr-fr/stage-1/ --- diff --git a/docs/fr-fr/stage-0/index.md b/docs/fr-fr/stage-0/index.md index 7501bb9..46d3610 100644 --- a/docs/fr-fr/stage-0/index.md +++ b/docs/fr-fr/stage-0/index.md @@ -11,12 +11,12 @@ Dans cette étape, vous commencerez de zéro et maîtriserez le flux de travail Convient aux produits, opérations et profils non techniques. Comprendre la logique de programmation IA à travers des jeux et gagner en confiance : @@ -28,22 +28,22 @@ Convient aux produits, opérations et profils non techniques. Comprendre la logi Maîtriser le flux de travail Vibe Coding. Apprendre à décomposer les exigences et compléter de manière indépendante des prototypes d'applications web haute fidélité : diff --git a/docs/ja-jp/index.md b/docs/ja-jp/index.md index 702612a..b0e1f39 100644 --- a/docs/ja-jp/index.md +++ b/docs/ja-jp/index.md @@ -17,10 +17,10 @@ hero: actions: - theme: brand text: 一緒にvibeを始めよう! - link: /ja-jp/stage-0/ + link: /ja-jp/stage-1/ - theme: alt text: コース概要 - link: /ja-jp/stage-0/ + link: /ja-jp/stage-1/ --- diff --git a/docs/ja-jp/stage-0/index.md b/docs/ja-jp/stage-0/index.md index 0a85d87..f0be9f8 100644 --- a/docs/ja-jp/stage-0/index.md +++ b/docs/ja-jp/stage-0/index.md @@ -11,12 +11,12 @@ プロダクト、オペレーション、非技術職の方に最適。ゲームを通じてAIプログラミングのロジックを理解し、自信を築きます: @@ -28,22 +28,22 @@ Vibe Codingワークフローをマスター。要件を分解し、高忠実度のWebアプリケーションプロトタイプを独立して完成させる: diff --git a/docs/ja-jp/stage-2/index.md b/docs/ja-jp/stage-2/index.md index 0d35cfd..08e3a17 100644 --- a/docs/ja-jp/stage-2/index.md +++ b/docs/ja-jp/stage-2/index.md @@ -9,7 +9,7 @@ モダンなフロントエンド開発をマスターし、コンポーネントライブラリとデザインツールの使用方法を学ぶ: - +
🖼️ @@ -19,7 +19,7 @@
- +
@@ -29,7 +29,7 @@
- +
📐 @@ -39,7 +39,7 @@
- +
🧙 @@ -55,7 +55,7 @@ API設計、データベース管理、アプリケーションデプロイメント戦略を学ぶ: - +
🗄️ @@ -65,7 +65,7 @@ API設計、データベース管理、アプリケーションデプロイメ
- +
🤖 @@ -75,7 +75,7 @@ API設計、データベース管理、アプリケーションデプロイメ
- +
🌿 @@ -85,7 +85,7 @@ API設計、データベース管理、アプリケーションデプロイメ
- +
🚀 @@ -95,7 +95,7 @@ API設計、データベース管理、アプリケーションデプロイメ
- +
💻 @@ -105,7 +105,7 @@ API設計、データベース管理、アプリケーションデプロイメ
- +
💳 @@ -121,7 +121,7 @@ API設計、データベース管理、アプリケーションデプロイメ 実践プロジェクトを通じてフルスタック開発スキルを固める: - +
🎯 @@ -135,7 +135,7 @@ API設計、データベース管理、アプリケーションデプロイメ ### AI機能拡張 - +
🎭 diff --git a/docs/ko-kr/index.md b/docs/ko-kr/index.md index e030134..f51f7e0 100644 --- a/docs/ko-kr/index.md +++ b/docs/ko-kr/index.md @@ -17,10 +17,10 @@ hero: actions: - theme: brand text: 함께 vibe 시작! - link: /ko-kr/stage-0/ + link: /ko-kr/stage-1/ - theme: alt text: 과정 개요 - link: /ko-kr/stage-0/ + link: /ko-kr/stage-1/ --- diff --git a/docs/ko-kr/stage-0/index.md b/docs/ko-kr/stage-0/index.md index bf23355..508ac5a 100644 --- a/docs/ko-kr/stage-0/index.md +++ b/docs/ko-kr/stage-0/index.md @@ -11,12 +11,12 @@ 제품, 운영 및 비기술적 배경에 적합합니다. 게임을 통해 AI 프로그래밍 로직을 이해하고 자신감을 키웁니다: @@ -28,22 +28,22 @@ Vibe Coding 워크플로우를 마스터합니다. 요구사항을 분해하고 고충실도 웹 애플리케이션 프로토타입을 독립적으로 완성하는 방법을 배웁니다: diff --git a/docs/public/sitemap.xml b/docs/public/sitemap.xml index b20cb53..6491eb4 100644 --- a/docs/public/sitemap.xml +++ b/docs/public/sitemap.xml @@ -771,76 +771,12 @@ - https://datawhalechina.github.io/easy-vibe/zh-cn/stage-0/0.1-learning-map/ - 2026-03-16T12:42:29+08:00 + https://datawhalechina.github.io/easy-vibe/zh-cn/stage-1/ai-capabilities-through-games/ + 2026-04-02T04:40:34.001Z weekly 0.9 - - - - - https://datawhalechina.github.io/easy-vibe/zh-cn/stage-0/0.2-ai-capabilities-through-games/ - 2026-03-16T12:42:29+08:00 - weekly - 0.9 - - - - - https://datawhalechina.github.io/easy-vibe/zh-cn/stage-0/ - 2026-03-25T23:02:33+08:00 - weekly - 0.9 - - - - - - - - - - - - - https://datawhalechina.github.io/easy-vibe/zh-cn/stage-1/1.0-finding-great-idea/ - 2026-03-25T00:28:36+08:00 - weekly - 0.9 - - - - - https://datawhalechina.github.io/easy-vibe/zh-cn/stage-1/1.1-introduction-to-ai-ide/ - 2026-03-25T08:37:27+08:00 - weekly - 0.9 - - - - - https://datawhalechina.github.io/easy-vibe/zh-cn/stage-1/1.2-building-prototype/ - 2026-03-25T00:28:36+08:00 - weekly - 0.9 - - - - - https://datawhalechina.github.io/easy-vibe/zh-cn/stage-1/1.3-integrating-ai-capabilities/ - 2026-03-25T00:28:36+08:00 - weekly - 0.9 - - - - - https://datawhalechina.github.io/easy-vibe/zh-cn/stage-1/1.4-complete-project-practice/ - 2026-03-16T12:42:29+08:00 - weekly - 0.9 - - + + https://datawhalechina.github.io/easy-vibe/zh-cn/stage-1/appendix-a-product-thinking/ @@ -931,12 +867,60 @@ - https://datawhalechina.github.io/easy-vibe/zh-cn/stage-2/ai-capabilities/2.1-dify-knowledge-base/ - 2026-03-25T00:28:36+08:00 + https://datawhalechina.github.io/easy-vibe/zh-cn/stage-1/building-prototype/ + 2026-04-02T04:17:50.525Z + weekly + 0.9 + + + + + https://datawhalechina.github.io/easy-vibe/zh-cn/stage-1/complete-project-practice/ + 2026-04-02T04:17:50.201Z + weekly + 0.9 + + + + + https://datawhalechina.github.io/easy-vibe/zh-cn/stage-1/finding-great-idea/ + 2026-04-02T04:17:50.464Z + weekly + 0.9 + + + + + https://datawhalechina.github.io/easy-vibe/zh-cn/stage-1/integrating-ai-capabilities/ + 2026-04-02T04:17:50.273Z + weekly + 0.9 + + + + + https://datawhalechina.github.io/easy-vibe/zh-cn/stage-1/introduction-to-ai-ide/ + 2026-04-02T04:17:50.442Z + weekly + 0.9 + + + + + https://datawhalechina.github.io/easy-vibe/zh-cn/stage-1/learning-map/ + 2026-04-02T04:40:33.999Z + weekly + 0.9 + + + + + https://datawhalechina.github.io/easy-vibe/zh-cn/stage-2/ai-capabilities/dify-knowledge-base/ + 2026-04-02T04:17:49.895Z weekly 0.8 - - + + https://datawhalechina.github.io/easy-vibe/zh-cn/stage-2/assignments/copywriting-platform-supabase/PRD/ @@ -947,7 +931,7 @@ https://datawhalechina.github.io/easy-vibe/zh-cn/stage-2/assignments/copywriting-platform-supabase/ - 2026-03-31T13:33:51+08:00 + 2026-04-01T12:09:34+08:00 weekly 0.8 @@ -961,7 +945,7 @@ https://datawhalechina.github.io/easy-vibe/zh-cn/stage-2/assignments/custom-dify-agent-platform/ - 2026-03-31T13:33:51+08:00 + 2026-04-01T12:09:34+08:00 weekly 0.8 @@ -975,7 +959,7 @@ https://datawhalechina.github.io/easy-vibe/zh-cn/stage-2/assignments/exam-management-express/ - 2026-03-31T13:33:51+08:00 + 2026-04-01T12:09:34+08:00 weekly 0.8 @@ -989,7 +973,7 @@ https://datawhalechina.github.io/easy-vibe/zh-cn/stage-2/assignments/modern-landing-page/ - 2026-03-31T13:33:51+08:00 + 2026-04-01T12:09:34+08:00 weekly 0.8 @@ -1003,7 +987,7 @@ https://datawhalechina.github.io/easy-vibe/zh-cn/stage-2/assignments/movie-recommendation-springboot/ - 2026-03-31T13:33:51+08:00 + 2026-04-01T12:09:34+08:00 weekly 0.8 @@ -1017,7 +1001,7 @@ https://datawhalechina.github.io/easy-vibe/zh-cn/stage-2/assignments/simple-grocery-microservices/ - 2026-03-31T13:33:51+08:00 + 2026-04-01T12:09:34+08:00 weekly 0.8 @@ -1031,7 +1015,7 @@ https://datawhalechina.github.io/easy-vibe/zh-cn/stage-2/assignments/traffic-data-visualization-go/ - 2026-03-31T13:33:51+08:00 + 2026-04-01T12:09:34+08:00 weekly 0.8 @@ -1045,122 +1029,122 @@ https://datawhalechina.github.io/easy-vibe/zh-cn/stage-2/assignments/travel-planning-agent-platform/ - 2026-03-31T13:33:51+08:00 + 2026-04-01T12:09:34+08:00 weekly 0.8 - https://datawhalechina.github.io/easy-vibe/zh-cn/stage-2/backend/2.2-database-supabase/ - 2026-03-25T00:28:36+08:00 + https://datawhalechina.github.io/easy-vibe/zh-cn/stage-2/backend/ai-interface-code/ + 2026-04-02T04:17:49.824Z weekly 0.8 - - + + - https://datawhalechina.github.io/easy-vibe/zh-cn/stage-2/backend/2.3-ai-interface-code/ - 2026-03-25T00:28:36+08:00 + https://datawhalechina.github.io/easy-vibe/zh-cn/stage-2/backend/database-supabase/ + 2026-04-02T04:17:49.859Z weekly 0.8 - - + + - https://datawhalechina.github.io/easy-vibe/zh-cn/stage-2/backend/2.4-git-workflow/ - 2026-03-25T00:28:36+08:00 + https://datawhalechina.github.io/easy-vibe/zh-cn/stage-2/backend/git-workflow/ + 2026-04-02T04:17:49.789Z weekly 0.8 - - + + - https://datawhalechina.github.io/easy-vibe/zh-cn/stage-2/backend/2.5-zeabur-deployment/ - 2026-03-25T00:28:36+08:00 + https://datawhalechina.github.io/easy-vibe/zh-cn/stage-2/backend/modern-cli/ + 2026-04-02T04:17:49.811Z weekly 0.8 - - + + - https://datawhalechina.github.io/easy-vibe/zh-cn/stage-2/backend/2.6-modern-cli/ - 2026-03-25T00:28:36+08:00 + https://datawhalechina.github.io/easy-vibe/zh-cn/stage-2/backend/stripe-payment/ + 2026-04-02T04:17:49.814Z weekly 0.8 - - + + - https://datawhalechina.github.io/easy-vibe/zh-cn/stage-2/backend/2.7-stripe-payment/ - 2026-03-26T11:20:31+08:00 + https://datawhalechina.github.io/easy-vibe/zh-cn/stage-2/backend/zeabur-deployment/ + 2026-04-02T04:17:49.782Z weekly 0.8 - - + + - https://datawhalechina.github.io/easy-vibe/zh-cn/stage-2/frontend/2.0-lovart-assets/ - 2026-03-25T00:28:36+08:00 + https://datawhalechina.github.io/easy-vibe/zh-cn/stage-2/frontend/design-to-code/ + 2026-04-02T04:40:05.434Z weekly 0.8 - - + + - https://datawhalechina.github.io/easy-vibe/zh-cn/stage-2/frontend/2.1-figma-mastergo/ - 2026-03-25T00:28:36+08:00 + https://datawhalechina.github.io/easy-vibe/zh-cn/stage-2/frontend/figma-mastergo/ + 2026-04-02T04:40:05.432Z weekly 0.8 - - + + - https://datawhalechina.github.io/easy-vibe/zh-cn/stage-2/frontend/2.2-ui-design/ - 2026-03-25T00:28:36+08:00 + https://datawhalechina.github.io/easy-vibe/zh-cn/stage-2/frontend/hogwarts-portraits/ + 2026-04-02T04:17:49.761Z weekly 0.8 - - + + - https://datawhalechina.github.io/easy-vibe/zh-cn/stage-2/frontend/2.3-multi-product-ui/ - 2026-03-26T11:20:31+08:00 + https://datawhalechina.github.io/easy-vibe/zh-cn/stage-2/frontend/llm-skills-beautiful/ + 2026-04-02T04:17:49.680Z weekly 0.8 - - + + - https://datawhalechina.github.io/easy-vibe/zh-cn/stage-2/frontend/2.4-llm-skills-beautiful/ - 2026-03-25T00:28:36+08:00 + https://datawhalechina.github.io/easy-vibe/zh-cn/stage-2/frontend/lovart-assets/ + 2026-04-02T04:17:49.714Z weekly 0.8 - - + + - https://datawhalechina.github.io/easy-vibe/zh-cn/stage-2/frontend/2.5-hogwarts-portraits/ - 2026-03-25T00:28:36+08:00 + https://datawhalechina.github.io/easy-vibe/zh-cn/stage-2/frontend/modern-component-library/ + 2026-04-02T04:17:49.737Z weekly 0.8 - - + + - https://datawhalechina.github.io/easy-vibe/zh-cn/stage-2/frontend/2.6-design-to-code/ - 2026-03-25T00:28:36+08:00 + https://datawhalechina.github.io/easy-vibe/zh-cn/stage-2/frontend/multi-product-ui/ + 2026-04-02T04:17:49.747Z weekly 0.8 - - + + - https://datawhalechina.github.io/easy-vibe/zh-cn/stage-2/frontend/2.7-modern-component-library/ - 2026-03-25T00:28:36+08:00 + https://datawhalechina.github.io/easy-vibe/zh-cn/stage-2/frontend/ui-design/ + 2026-04-02T04:17:49.672Z weekly 0.8 - - + + https://datawhalechina.github.io/easy-vibe/zh-cn/stage-2/ @@ -1179,27 +1163,27 @@ - https://datawhalechina.github.io/easy-vibe/zh-cn/stage-3/ai-advanced/3.a1-rag-introduction/ - 2026-03-25T00:28:36+08:00 + https://datawhalechina.github.io/easy-vibe/zh-cn/stage-3/ai-advanced/langgraph-advanced-rag/ + 2026-04-02T04:17:49.255Z weekly 0.8 - - + + - https://datawhalechina.github.io/easy-vibe/zh-cn/stage-3/ai-advanced/3.a2-langgraph-advanced-rag/ - 2026-03-27T14:36:44+08:00 + https://datawhalechina.github.io/easy-vibe/zh-cn/stage-3/ai-advanced/llamaindex-enterprise-knowledge-base/ + 2026-04-02T04:17:44.911Z weekly 0.8 - - + - https://datawhalechina.github.io/easy-vibe/zh-cn/stage-3/ai-advanced/3.a3-llamaindex-enterprise-knowledge-base/ - 2026-03-27T14:36:44+08:00 + https://datawhalechina.github.io/easy-vibe/zh-cn/stage-3/ai-advanced/rag-introduction/ + 2026-04-02T04:17:49.253Z weekly 0.8 - + + https://datawhalechina.github.io/easy-vibe/zh-cn/stage-3/core-skills/agent-teams/ @@ -1282,92 +1266,92 @@ - https://datawhalechina.github.io/easy-vibe/zh-cn/stage-3/cross-platform/3.1-choose-platform/ - 2026-03-26T15:56:10+08:00 + https://datawhalechina.github.io/easy-vibe/zh-cn/stage-3/cross-platform/android-app/ + 2026-04-02T04:17:49.014Z weekly 0.8 - - + + - https://datawhalechina.github.io/easy-vibe/zh-cn/stage-3/cross-platform/3.10-electron-voice-to-text/ - 2026-03-26T23:07:56+08:00 + https://datawhalechina.github.io/easy-vibe/zh-cn/stage-3/cross-platform/browser-ai-extension/ + 2026-04-02T04:17:48.926Z weekly 0.8 - - + + - https://datawhalechina.github.io/easy-vibe/zh-cn/stage-3/cross-platform/3.11-nft-minting/ - 2026-03-25T00:28:36+08:00 + https://datawhalechina.github.io/easy-vibe/zh-cn/stage-3/cross-platform/choose-platform/ + 2026-04-02T04:17:48.941Z weekly 0.8 - - + + - https://datawhalechina.github.io/easy-vibe/zh-cn/stage-3/cross-platform/3.12-vscode-extension/ - 2026-03-25T00:56:13+08:00 + https://datawhalechina.github.io/easy-vibe/zh-cn/stage-3/cross-platform/electron-voice-to-text/ + 2026-04-02T04:17:49.154Z weekly 0.8 - - + + - https://datawhalechina.github.io/easy-vibe/zh-cn/stage-3/cross-platform/3.13-qt-industrial-hmi/ - 2026-03-25T00:28:36+08:00 + https://datawhalechina.github.io/easy-vibe/zh-cn/stage-3/cross-platform/ios-app/ + 2026-04-02T04:17:48.497Z weekly 0.8 - - + + - https://datawhalechina.github.io/easy-vibe/zh-cn/stage-3/cross-platform/3.3-wechat-miniprogram/ - 2026-03-25T00:28:36+08:00 + https://datawhalechina.github.io/easy-vibe/zh-cn/stage-3/cross-platform/nft-minting/ + 2026-04-02T04:17:48.949Z weekly 0.8 - - + + - https://datawhalechina.github.io/easy-vibe/zh-cn/stage-3/cross-platform/3.4-wechat-miniprogram-backend/ - 2026-03-26T11:20:31+08:00 + https://datawhalechina.github.io/easy-vibe/zh-cn/stage-3/cross-platform/pwa-local-app/ + 2026-04-02T04:17:48.973Z weekly 0.8 - - + + - https://datawhalechina.github.io/easy-vibe/zh-cn/stage-3/cross-platform/3.5-android-app/ - 2026-03-25T00:28:36+08:00 + https://datawhalechina.github.io/easy-vibe/zh-cn/stage-3/cross-platform/qt-industrial-hmi/ + 2026-04-02T04:17:48.509Z weekly 0.8 - - + + - https://datawhalechina.github.io/easy-vibe/zh-cn/stage-3/cross-platform/3.6-ios-app/ - 2026-03-25T00:28:36+08:00 + https://datawhalechina.github.io/easy-vibe/zh-cn/stage-3/cross-platform/vscode-extension/ + 2026-04-02T04:17:49.111Z weekly 0.8 - - + + - https://datawhalechina.github.io/easy-vibe/zh-cn/stage-3/cross-platform/3.8-pwa-local-app/ - 2026-03-25T20:01:19+08:00 + https://datawhalechina.github.io/easy-vibe/zh-cn/stage-3/cross-platform/wechat-miniprogram/ + 2026-04-02T04:17:48.913Z weekly 0.8 - - + + - https://datawhalechina.github.io/easy-vibe/zh-cn/stage-3/cross-platform/3.9-browser-ai-extension/ - 2026-03-25T00:28:36+08:00 + https://datawhalechina.github.io/easy-vibe/zh-cn/stage-3/cross-platform/wechat-miniprogram-backend/ + 2026-04-02T04:17:48.951Z weekly 0.8 - - + + https://datawhalechina.github.io/easy-vibe/zh-cn/stage-3/ @@ -1386,12 +1370,12 @@ - https://datawhalechina.github.io/easy-vibe/zh-cn/stage-3/personal-brand/3.7-personal-website-blog/ - 2026-03-25T00:28:36+08:00 + https://datawhalechina.github.io/easy-vibe/zh-cn/stage-3/personal-brand/personal-website-blog/ + 2026-04-02T04:17:49.654Z weekly 0.8 - - + + https://datawhalechina.github.io/easy-vibe/zh-cn/vibe-stories/story-1/ diff --git a/docs/vi-vn/index.md b/docs/vi-vn/index.md index 3017b58..73eb23a 100644 --- a/docs/vi-vn/index.md +++ b/docs/vi-vn/index.md @@ -17,10 +17,10 @@ hero: actions: - theme: brand text: Bắt đầu vibe cùng nhau! - link: /vi-vn/stage-0/ + link: /vi-vn/stage-1/ - theme: alt text: Đề cương khóa học - link: /vi-vn/stage-0/ + link: /vi-vn/stage-1/ --- diff --git a/docs/vi-vn/stage-0/index.md b/docs/vi-vn/stage-0/index.md index 858af00..2c25727 100644 --- a/docs/vi-vn/stage-0/index.md +++ b/docs/vi-vn/stage-0/index.md @@ -11,12 +11,12 @@ Trong giai đoạn này, bạn sẽ bắt đầu từ con số không và thành Phù hợp cho sản phẩm, vận hành và nền tảng phi kỹ thuật. Hiểu logic lập trình AI thông qua trò chơi và xây dựng sự tự tin: @@ -28,22 +28,22 @@ Phù hợp cho sản phẩm, vận hành và nền tảng phi kỹ thuật. Hi Thành thạo quy trình làm việc Vibe Coding. Học cách phân tách yêu cầu và hoàn thành độc lập các nguyên mẫu ứng dụng web độ trung thực cao: diff --git a/docs/zh-cn/guide/introduction.md b/docs/zh-cn/guide/introduction.md index 86ec7ee..6488ada 100644 --- a/docs/zh-cn/guide/introduction.md +++ b/docs/zh-cn/guide/introduction.md @@ -24,17 +24,17 @@ | 章节 | 关键内容 | 状态 | | :------------------------------------------------------------------------------------- | :------------------------------------- | :--- | -| [新手入门:学习地图](/zh-cn/stage-0/0.1-learning-map/) | 整体学习路径导览 | ✅ | -| [新手入门:AI 时代,会说话就会编程](/zh-cn/stage-0/0.2-ai-capabilities-through-games/) | 通过贪吃蛇等案例初步感受 AI 编程的能力 | ✅ | +| [新手入门:学习地图](/zh-cn/stage-1/learning-map/) | 整体学习路径导览 | ✅ | +| [新手入门:AI 时代,会说话就会编程](/zh-cn/stage-1/ai-capabilities-through-games/) | 通过贪吃蛇等案例初步感受 AI 编程的能力 | ✅ | ### 一、AI 产品经理 | 章节 | 关键内容 | 状态 | | :---------------------------------------------------------------------------- | :------------------------------------------------------- | :--- | -| [初级二:认识 AI IDE 工具](/zh-cn/stage-1/1.1-introduction-to-ai-ide/) | 学会使用 IDE,掌握界面结构和高效提示方式 | ✅ | -| [初级三:动手做出原型](/zh-cn/stage-1/1.2-building-prototype/) | 从产品分析拆解,到多页面产品原型实现的完整闭环 | ✅ | -| [初级四:给原型加上 AI 能力](/zh-cn/stage-1/1.3-integrating-ai-capabilities/) | 理解并完成常见 AI 能力(文本图片视频)的 API 接入 | ✅ | -| [初级五:完整项目实战](/zh-cn/stage-1/1.4-complete-project-practice/) | 模拟真实场景、接受用户反馈迭代并完成项目展示(含大作业) | ✅ | +| [初级二:认识 AI IDE 工具](/zh-cn/stage-1/introduction-to-ai-ide/) | 学会使用 IDE,掌握界面结构和高效提示方式 | ✅ | +| [初级三:动手做出原型](/zh-cn/stage-1/building-prototype/) | 从产品分析拆解,到多页面产品原型实现的完整闭环 | ✅ | +| [初级四:给原型加上 AI 能力](/zh-cn/stage-1/integrating-ai-capabilities/) | 理解并完成常见 AI 能力(文本图片视频)的 API 接入 | ✅ | +| [初级五:完整项目实战](/zh-cn/stage-1/complete-project-practice/) | 模拟真实场景、接受用户反馈迭代并完成项目展示(含大作业) | ✅ | #### 附录 @@ -57,14 +57,14 @@ | Figma 与 MasterGo 入门 | 用设计工具梳理信息架构和页面结构,为前端实现打基础 | 🚧 | | 构建第一个现代应用程序-UI 设计 | 基于设计稿完成组件化界面,实现从设计到代码的第一条链路 | 🚧 | | 参考 UI 设计规范设计页面和按钮 | 学习用主流设计规范组织页面结构、按钮层级,并借助 AI 生成设计方案 | 🚧 | -| [一起做霍格沃茨画像](/zh-cn/stage-2/frontend/2.5-hogwarts-portraits/) | 从 0 到 1 做出接入 AI 能力的前端应用,串联设计与开发 | 🚧 | +| [一起做霍格沃茨画像](/zh-cn/stage-2/frontend/hogwarts-portraits/) | 从 0 到 1 做出接入 AI 能力的前端应用,串联设计与开发 | 🚧 | #### 后端开发部分 | 章节 | 关键内容 | 状态 | | :---------------------------------------------------------------------------------------------------------------------- | :------------------------------------------------------------ | :--- | | 什么是 API | 理解 HTTP 接口与请求响应模型,为后端集成与联调做准备 | 🚧 | -| [从数据库到 Supabase](/zh-cn/stage-2/backend/2.2-database-supabase/) | 在 Supabase 上落地数据库和 API,打通数据模型与前端页面 | 🚧 | +| [从数据库到 Supabase](/zh-cn/stage-2/backend/database-supabase/) | 在 Supabase 上落地数据库和 API,打通数据模型与前端页面 | 🚧 | | 大模型辅助编写接口代码与接口文档 | 用大模型协助生成接口与数据库文档及代码,实现可读可测的后端 | 🚧 | | Git 工作流与 Zeabur 部署 | 在 Git 工作流中管理代码,并将应用部署到 Zeabur 上线 | 🚧 | | 现代 CLI 开发工具 | 使用 CLI 类 AI 编程工具加速开发与调试,形成个人工程化工作流 | 🚧 | @@ -76,7 +76,7 @@ | 章节 | 关键内容 | 状态 | | :-------------------------------------------------------------------------------------------------------------------------------------------------------------------- | :------------------------------------------------------------- | :--- | -| [Dify 入门与知识库集成](/zh-cn/stage-2/ai-capabilities/2.1-dify-knowledge-base/) | 用 Dify Workflow 与基础 RAG 搭建工具类产品,为后续应用升级打样 | 🚧 | +| [Dify 入门与知识库集成](/zh-cn/stage-2/ai-capabilities/dify-knowledge-base/) | 用 Dify Workflow 与基础 RAG 搭建工具类产品,为后续应用升级打样 | 🚧 | | 学会查询 AI 词典与集成多模态 API | 学会查找合适的模型与 API,并把文本、图像等多模态能力接入产品 | 🚧 | ### 三、高级开发工程师 diff --git a/docs/zh-cn/index.md b/docs/zh-cn/index.md index 1150988..c221bea 100644 --- a/docs/zh-cn/index.md +++ b/docs/zh-cn/index.md @@ -17,7 +17,7 @@ hero: actions: - theme: brand text: 开始一起 vibe! - link: /zh-cn/stage-0/0.1-learning-map/ + link: /zh-cn/stage-1/learning-map/ - theme: alt text: GitHub 加速更新 link: https://github.com/datawhalechina/easy-vibe diff --git a/docs/zh-cn/stage-0/index.md b/docs/zh-cn/stage-0/index.md deleted file mode 100644 index f23fcf9..0000000 --- a/docs/zh-cn/stage-0/index.md +++ /dev/null @@ -1,161 +0,0 @@ -# 动手做第一个 AI 产品 - -欢迎来到 **动手做第一个 AI 产品** 阶段!这是 Easy-Vibe 教程的起点,专为零基础学习者设计。 - -## 你将学到什么 - -在这个阶段,你将从零开始,掌握 Vibe Coding 工作流,成为能够独立完成产品设计的超级个体。 - -### 新手入门 - -适合产品、运营及非技术背景的学习者。通过做游戏理解 AI 编程逻辑,建立学习信心: - - - - - - -### 产品原型实战 - -掌握 Vibe Coding 工作流,学会拆解需求,独立完成高保真 Web 应用原型: - - - - - - - - - -### 附录:业务思维 - -**为什么需要**:当你需要提升产品思维、了解行业应用场景时,这些内容能帮你建立更全面的产品视角。 - -**什么时候看**: -- 在动手做原型前,先了解产品思维,能帮你更好地规划和设计 -- 当你有产品想法但不确定方向时,参考产业场景案例 -- 完成项目后,用产品思维复盘和优化你的作品 - - - - - - - -### 附录:用户研究与需求验证 - -**为什么需要**:当你已经有了产品点子,但还不确定它是不是真需求、该如何和用户聊、该优先验证什么时,这组内容能帮你把模糊感觉变成可验证的判断。 - -**什么时候看**: -- 当你说不清用户到底在“雇用”你的产品完成什么事时 -- 当你准备做用户访谈,却担心只得到礼貌性反馈时 -- 当你想把“感觉不错”的点子,变成更扎实的需求假设时 - - - - - - - - -### 附录:技术方案 - -**为什么需要**:在开发过程中遇到技术问题或想了解更优工具时,这些技术附录能提供即查即用的解决方案。 - -**什么时候看**: -- 遇到报错不知道如何解决时,查阅常见报错及解决方案 -- 想对比不同 AI 编程工具时,参考平台实测对比 -- 想学习更高级的开发技巧时,查看智能体开发案例 - - - - - - - -## 适合人群 - -- 零基础的产品经理、运营人员 -- 想要快速验证想法的创业者 -- 对 AI 编程感兴趣的非技术背景人士 -- 希望提升原型设计能力的设计师 - -## 怎么学? - -建议按这个顺序进行操作: - -``` -先玩玩游戏建立信心 → 跟着教程做原型 → 给原型加上 AI 功能 → 独立完成一个完整项目 -``` - -不用一口气看完,边做边学效果最好。遇到问题时,记得去附录里查查解决方案。 - -现在就开始吧,左侧导航选第一节! diff --git a/docs/zh-cn/stage-0/0.2-ai-capabilities-through-games/images/1767350588191.png b/docs/zh-cn/stage-1/ai-capabilities-through-games/images/1767350588191.png similarity index 100% rename from docs/zh-cn/stage-0/0.2-ai-capabilities-through-games/images/1767350588191.png rename to docs/zh-cn/stage-1/ai-capabilities-through-games/images/1767350588191.png diff --git a/docs/zh-cn/stage-0/0.2-ai-capabilities-through-games/images/image1.png b/docs/zh-cn/stage-1/ai-capabilities-through-games/images/image1.png similarity index 100% rename from docs/zh-cn/stage-0/0.2-ai-capabilities-through-games/images/image1.png rename to docs/zh-cn/stage-1/ai-capabilities-through-games/images/image1.png diff --git a/docs/zh-cn/stage-0/0.2-ai-capabilities-through-games/images/image10.png b/docs/zh-cn/stage-1/ai-capabilities-through-games/images/image10.png similarity index 100% rename from docs/zh-cn/stage-0/0.2-ai-capabilities-through-games/images/image10.png rename to docs/zh-cn/stage-1/ai-capabilities-through-games/images/image10.png diff --git a/docs/zh-cn/stage-0/0.2-ai-capabilities-through-games/images/image11.png b/docs/zh-cn/stage-1/ai-capabilities-through-games/images/image11.png similarity index 100% rename from docs/zh-cn/stage-0/0.2-ai-capabilities-through-games/images/image11.png rename to docs/zh-cn/stage-1/ai-capabilities-through-games/images/image11.png diff --git a/docs/zh-cn/stage-0/0.2-ai-capabilities-through-games/images/image12.png b/docs/zh-cn/stage-1/ai-capabilities-through-games/images/image12.png similarity index 100% rename from docs/zh-cn/stage-0/0.2-ai-capabilities-through-games/images/image12.png rename to docs/zh-cn/stage-1/ai-capabilities-through-games/images/image12.png diff --git a/docs/zh-cn/stage-0/0.2-ai-capabilities-through-games/images/image13.png b/docs/zh-cn/stage-1/ai-capabilities-through-games/images/image13.png similarity index 100% rename from docs/zh-cn/stage-0/0.2-ai-capabilities-through-games/images/image13.png rename to docs/zh-cn/stage-1/ai-capabilities-through-games/images/image13.png diff --git a/docs/zh-cn/stage-0/0.2-ai-capabilities-through-games/images/image14.png b/docs/zh-cn/stage-1/ai-capabilities-through-games/images/image14.png similarity index 100% rename from docs/zh-cn/stage-0/0.2-ai-capabilities-through-games/images/image14.png rename to docs/zh-cn/stage-1/ai-capabilities-through-games/images/image14.png diff --git a/docs/zh-cn/stage-0/0.2-ai-capabilities-through-games/images/image15.png b/docs/zh-cn/stage-1/ai-capabilities-through-games/images/image15.png similarity index 100% rename from docs/zh-cn/stage-0/0.2-ai-capabilities-through-games/images/image15.png rename to docs/zh-cn/stage-1/ai-capabilities-through-games/images/image15.png diff --git a/docs/zh-cn/stage-0/0.2-ai-capabilities-through-games/images/image16.png b/docs/zh-cn/stage-1/ai-capabilities-through-games/images/image16.png similarity index 100% rename from docs/zh-cn/stage-0/0.2-ai-capabilities-through-games/images/image16.png rename to docs/zh-cn/stage-1/ai-capabilities-through-games/images/image16.png diff --git a/docs/zh-cn/stage-0/0.2-ai-capabilities-through-games/images/image17.png b/docs/zh-cn/stage-1/ai-capabilities-through-games/images/image17.png similarity index 100% rename from docs/zh-cn/stage-0/0.2-ai-capabilities-through-games/images/image17.png rename to docs/zh-cn/stage-1/ai-capabilities-through-games/images/image17.png diff --git a/docs/zh-cn/stage-0/0.2-ai-capabilities-through-games/images/image18.png b/docs/zh-cn/stage-1/ai-capabilities-through-games/images/image18.png similarity index 100% rename from docs/zh-cn/stage-0/0.2-ai-capabilities-through-games/images/image18.png rename to docs/zh-cn/stage-1/ai-capabilities-through-games/images/image18.png diff --git a/docs/zh-cn/stage-0/0.2-ai-capabilities-through-games/images/image19.png b/docs/zh-cn/stage-1/ai-capabilities-through-games/images/image19.png similarity index 100% rename from docs/zh-cn/stage-0/0.2-ai-capabilities-through-games/images/image19.png rename to docs/zh-cn/stage-1/ai-capabilities-through-games/images/image19.png diff --git a/docs/zh-cn/stage-0/0.2-ai-capabilities-through-games/images/image2.png b/docs/zh-cn/stage-1/ai-capabilities-through-games/images/image2.png similarity index 100% rename from docs/zh-cn/stage-0/0.2-ai-capabilities-through-games/images/image2.png rename to docs/zh-cn/stage-1/ai-capabilities-through-games/images/image2.png diff --git a/docs/zh-cn/stage-0/0.2-ai-capabilities-through-games/images/image20.png b/docs/zh-cn/stage-1/ai-capabilities-through-games/images/image20.png similarity index 100% rename from docs/zh-cn/stage-0/0.2-ai-capabilities-through-games/images/image20.png rename to docs/zh-cn/stage-1/ai-capabilities-through-games/images/image20.png diff --git a/docs/zh-cn/stage-0/0.2-ai-capabilities-through-games/images/image21.png b/docs/zh-cn/stage-1/ai-capabilities-through-games/images/image21.png similarity index 100% rename from docs/zh-cn/stage-0/0.2-ai-capabilities-through-games/images/image21.png rename to docs/zh-cn/stage-1/ai-capabilities-through-games/images/image21.png diff --git a/docs/zh-cn/stage-0/0.2-ai-capabilities-through-games/images/image22.png b/docs/zh-cn/stage-1/ai-capabilities-through-games/images/image22.png similarity index 100% rename from docs/zh-cn/stage-0/0.2-ai-capabilities-through-games/images/image22.png rename to docs/zh-cn/stage-1/ai-capabilities-through-games/images/image22.png diff --git a/docs/zh-cn/stage-0/0.2-ai-capabilities-through-games/images/image23.png b/docs/zh-cn/stage-1/ai-capabilities-through-games/images/image23.png similarity index 100% rename from docs/zh-cn/stage-0/0.2-ai-capabilities-through-games/images/image23.png rename to docs/zh-cn/stage-1/ai-capabilities-through-games/images/image23.png diff --git a/docs/zh-cn/stage-0/0.2-ai-capabilities-through-games/images/image24.png b/docs/zh-cn/stage-1/ai-capabilities-through-games/images/image24.png similarity index 100% rename from docs/zh-cn/stage-0/0.2-ai-capabilities-through-games/images/image24.png rename to docs/zh-cn/stage-1/ai-capabilities-through-games/images/image24.png diff --git a/docs/zh-cn/stage-0/0.2-ai-capabilities-through-games/images/image25.png b/docs/zh-cn/stage-1/ai-capabilities-through-games/images/image25.png similarity index 100% rename from docs/zh-cn/stage-0/0.2-ai-capabilities-through-games/images/image25.png rename to docs/zh-cn/stage-1/ai-capabilities-through-games/images/image25.png diff --git a/docs/zh-cn/stage-0/0.2-ai-capabilities-through-games/images/image26.png b/docs/zh-cn/stage-1/ai-capabilities-through-games/images/image26.png similarity index 100% rename from docs/zh-cn/stage-0/0.2-ai-capabilities-through-games/images/image26.png rename to docs/zh-cn/stage-1/ai-capabilities-through-games/images/image26.png diff --git a/docs/zh-cn/stage-0/0.2-ai-capabilities-through-games/images/image27.png b/docs/zh-cn/stage-1/ai-capabilities-through-games/images/image27.png similarity index 100% rename from docs/zh-cn/stage-0/0.2-ai-capabilities-through-games/images/image27.png rename to docs/zh-cn/stage-1/ai-capabilities-through-games/images/image27.png diff --git a/docs/zh-cn/stage-0/0.2-ai-capabilities-through-games/images/image28.png b/docs/zh-cn/stage-1/ai-capabilities-through-games/images/image28.png similarity index 100% rename from docs/zh-cn/stage-0/0.2-ai-capabilities-through-games/images/image28.png rename to docs/zh-cn/stage-1/ai-capabilities-through-games/images/image28.png diff --git a/docs/zh-cn/stage-0/0.2-ai-capabilities-through-games/images/image29.png b/docs/zh-cn/stage-1/ai-capabilities-through-games/images/image29.png similarity index 100% rename from docs/zh-cn/stage-0/0.2-ai-capabilities-through-games/images/image29.png rename to docs/zh-cn/stage-1/ai-capabilities-through-games/images/image29.png diff --git a/docs/zh-cn/stage-0/0.2-ai-capabilities-through-games/images/image3.png b/docs/zh-cn/stage-1/ai-capabilities-through-games/images/image3.png similarity index 100% rename from docs/zh-cn/stage-0/0.2-ai-capabilities-through-games/images/image3.png rename to docs/zh-cn/stage-1/ai-capabilities-through-games/images/image3.png diff --git a/docs/zh-cn/stage-0/0.2-ai-capabilities-through-games/images/image30.png b/docs/zh-cn/stage-1/ai-capabilities-through-games/images/image30.png similarity index 100% rename from docs/zh-cn/stage-0/0.2-ai-capabilities-through-games/images/image30.png rename to docs/zh-cn/stage-1/ai-capabilities-through-games/images/image30.png diff --git a/docs/zh-cn/stage-0/0.2-ai-capabilities-through-games/images/image31.png b/docs/zh-cn/stage-1/ai-capabilities-through-games/images/image31.png similarity index 100% rename from docs/zh-cn/stage-0/0.2-ai-capabilities-through-games/images/image31.png rename to docs/zh-cn/stage-1/ai-capabilities-through-games/images/image31.png diff --git a/docs/zh-cn/stage-0/0.2-ai-capabilities-through-games/images/image32.png b/docs/zh-cn/stage-1/ai-capabilities-through-games/images/image32.png similarity index 100% rename from docs/zh-cn/stage-0/0.2-ai-capabilities-through-games/images/image32.png rename to docs/zh-cn/stage-1/ai-capabilities-through-games/images/image32.png diff --git a/docs/zh-cn/stage-0/0.2-ai-capabilities-through-games/images/image33.png b/docs/zh-cn/stage-1/ai-capabilities-through-games/images/image33.png similarity index 100% rename from docs/zh-cn/stage-0/0.2-ai-capabilities-through-games/images/image33.png rename to docs/zh-cn/stage-1/ai-capabilities-through-games/images/image33.png diff --git a/docs/zh-cn/stage-0/0.2-ai-capabilities-through-games/images/image34.png b/docs/zh-cn/stage-1/ai-capabilities-through-games/images/image34.png similarity index 100% rename from docs/zh-cn/stage-0/0.2-ai-capabilities-through-games/images/image34.png rename to docs/zh-cn/stage-1/ai-capabilities-through-games/images/image34.png diff --git a/docs/zh-cn/stage-0/0.2-ai-capabilities-through-games/images/image35.png b/docs/zh-cn/stage-1/ai-capabilities-through-games/images/image35.png similarity index 100% rename from docs/zh-cn/stage-0/0.2-ai-capabilities-through-games/images/image35.png rename to docs/zh-cn/stage-1/ai-capabilities-through-games/images/image35.png diff --git a/docs/zh-cn/stage-0/0.2-ai-capabilities-through-games/images/image36.png b/docs/zh-cn/stage-1/ai-capabilities-through-games/images/image36.png similarity index 100% rename from docs/zh-cn/stage-0/0.2-ai-capabilities-through-games/images/image36.png rename to docs/zh-cn/stage-1/ai-capabilities-through-games/images/image36.png diff --git a/docs/zh-cn/stage-0/0.2-ai-capabilities-through-games/images/image37.png b/docs/zh-cn/stage-1/ai-capabilities-through-games/images/image37.png similarity index 100% rename from docs/zh-cn/stage-0/0.2-ai-capabilities-through-games/images/image37.png rename to docs/zh-cn/stage-1/ai-capabilities-through-games/images/image37.png diff --git a/docs/zh-cn/stage-0/0.2-ai-capabilities-through-games/images/image38.png b/docs/zh-cn/stage-1/ai-capabilities-through-games/images/image38.png similarity index 100% rename from docs/zh-cn/stage-0/0.2-ai-capabilities-through-games/images/image38.png rename to docs/zh-cn/stage-1/ai-capabilities-through-games/images/image38.png diff --git a/docs/zh-cn/stage-0/0.2-ai-capabilities-through-games/images/image39.png b/docs/zh-cn/stage-1/ai-capabilities-through-games/images/image39.png similarity index 100% rename from docs/zh-cn/stage-0/0.2-ai-capabilities-through-games/images/image39.png rename to docs/zh-cn/stage-1/ai-capabilities-through-games/images/image39.png diff --git a/docs/zh-cn/stage-0/0.2-ai-capabilities-through-games/images/image4.png b/docs/zh-cn/stage-1/ai-capabilities-through-games/images/image4.png similarity index 100% rename from docs/zh-cn/stage-0/0.2-ai-capabilities-through-games/images/image4.png rename to docs/zh-cn/stage-1/ai-capabilities-through-games/images/image4.png diff --git a/docs/zh-cn/stage-0/0.2-ai-capabilities-through-games/images/image40.png b/docs/zh-cn/stage-1/ai-capabilities-through-games/images/image40.png similarity index 100% rename from docs/zh-cn/stage-0/0.2-ai-capabilities-through-games/images/image40.png rename to docs/zh-cn/stage-1/ai-capabilities-through-games/images/image40.png diff --git a/docs/zh-cn/stage-0/0.2-ai-capabilities-through-games/images/image41.png b/docs/zh-cn/stage-1/ai-capabilities-through-games/images/image41.png similarity index 100% rename from docs/zh-cn/stage-0/0.2-ai-capabilities-through-games/images/image41.png rename to docs/zh-cn/stage-1/ai-capabilities-through-games/images/image41.png diff --git a/docs/zh-cn/stage-0/0.2-ai-capabilities-through-games/images/image42.png b/docs/zh-cn/stage-1/ai-capabilities-through-games/images/image42.png similarity index 100% rename from docs/zh-cn/stage-0/0.2-ai-capabilities-through-games/images/image42.png rename to docs/zh-cn/stage-1/ai-capabilities-through-games/images/image42.png diff --git a/docs/zh-cn/stage-0/0.2-ai-capabilities-through-games/images/image43.png b/docs/zh-cn/stage-1/ai-capabilities-through-games/images/image43.png similarity index 100% rename from docs/zh-cn/stage-0/0.2-ai-capabilities-through-games/images/image43.png rename to docs/zh-cn/stage-1/ai-capabilities-through-games/images/image43.png diff --git a/docs/zh-cn/stage-0/0.2-ai-capabilities-through-games/images/image44.png b/docs/zh-cn/stage-1/ai-capabilities-through-games/images/image44.png similarity index 100% rename from docs/zh-cn/stage-0/0.2-ai-capabilities-through-games/images/image44.png rename to docs/zh-cn/stage-1/ai-capabilities-through-games/images/image44.png diff --git a/docs/zh-cn/stage-0/0.2-ai-capabilities-through-games/images/image45.png b/docs/zh-cn/stage-1/ai-capabilities-through-games/images/image45.png similarity index 100% rename from docs/zh-cn/stage-0/0.2-ai-capabilities-through-games/images/image45.png rename to docs/zh-cn/stage-1/ai-capabilities-through-games/images/image45.png diff --git a/docs/zh-cn/stage-0/0.2-ai-capabilities-through-games/images/image46.png b/docs/zh-cn/stage-1/ai-capabilities-through-games/images/image46.png similarity index 100% rename from docs/zh-cn/stage-0/0.2-ai-capabilities-through-games/images/image46.png rename to docs/zh-cn/stage-1/ai-capabilities-through-games/images/image46.png diff --git a/docs/zh-cn/stage-0/0.2-ai-capabilities-through-games/images/image47.png b/docs/zh-cn/stage-1/ai-capabilities-through-games/images/image47.png similarity index 100% rename from docs/zh-cn/stage-0/0.2-ai-capabilities-through-games/images/image47.png rename to docs/zh-cn/stage-1/ai-capabilities-through-games/images/image47.png diff --git a/docs/zh-cn/stage-0/0.2-ai-capabilities-through-games/images/image48.png b/docs/zh-cn/stage-1/ai-capabilities-through-games/images/image48.png similarity index 100% rename from docs/zh-cn/stage-0/0.2-ai-capabilities-through-games/images/image48.png rename to docs/zh-cn/stage-1/ai-capabilities-through-games/images/image48.png diff --git a/docs/zh-cn/stage-0/0.2-ai-capabilities-through-games/images/image49.png b/docs/zh-cn/stage-1/ai-capabilities-through-games/images/image49.png similarity index 100% rename from docs/zh-cn/stage-0/0.2-ai-capabilities-through-games/images/image49.png rename to docs/zh-cn/stage-1/ai-capabilities-through-games/images/image49.png diff --git a/docs/zh-cn/stage-0/0.2-ai-capabilities-through-games/images/image5.png b/docs/zh-cn/stage-1/ai-capabilities-through-games/images/image5.png similarity index 100% rename from docs/zh-cn/stage-0/0.2-ai-capabilities-through-games/images/image5.png rename to docs/zh-cn/stage-1/ai-capabilities-through-games/images/image5.png diff --git a/docs/zh-cn/stage-0/0.2-ai-capabilities-through-games/images/image50.png b/docs/zh-cn/stage-1/ai-capabilities-through-games/images/image50.png similarity index 100% rename from docs/zh-cn/stage-0/0.2-ai-capabilities-through-games/images/image50.png rename to docs/zh-cn/stage-1/ai-capabilities-through-games/images/image50.png diff --git a/docs/zh-cn/stage-0/0.2-ai-capabilities-through-games/images/image51.png b/docs/zh-cn/stage-1/ai-capabilities-through-games/images/image51.png similarity index 100% rename from docs/zh-cn/stage-0/0.2-ai-capabilities-through-games/images/image51.png rename to docs/zh-cn/stage-1/ai-capabilities-through-games/images/image51.png diff --git a/docs/zh-cn/stage-0/0.2-ai-capabilities-through-games/images/image52.png b/docs/zh-cn/stage-1/ai-capabilities-through-games/images/image52.png similarity index 100% rename from docs/zh-cn/stage-0/0.2-ai-capabilities-through-games/images/image52.png rename to docs/zh-cn/stage-1/ai-capabilities-through-games/images/image52.png diff --git a/docs/zh-cn/stage-0/0.2-ai-capabilities-through-games/images/image53.png b/docs/zh-cn/stage-1/ai-capabilities-through-games/images/image53.png similarity index 100% rename from docs/zh-cn/stage-0/0.2-ai-capabilities-through-games/images/image53.png rename to docs/zh-cn/stage-1/ai-capabilities-through-games/images/image53.png diff --git a/docs/zh-cn/stage-0/0.2-ai-capabilities-through-games/images/image54.png b/docs/zh-cn/stage-1/ai-capabilities-through-games/images/image54.png similarity index 100% rename from docs/zh-cn/stage-0/0.2-ai-capabilities-through-games/images/image54.png rename to docs/zh-cn/stage-1/ai-capabilities-through-games/images/image54.png diff --git a/docs/zh-cn/stage-0/0.2-ai-capabilities-through-games/images/image55.png b/docs/zh-cn/stage-1/ai-capabilities-through-games/images/image55.png similarity index 100% rename from docs/zh-cn/stage-0/0.2-ai-capabilities-through-games/images/image55.png rename to docs/zh-cn/stage-1/ai-capabilities-through-games/images/image55.png diff --git a/docs/zh-cn/stage-0/0.2-ai-capabilities-through-games/images/image56.png b/docs/zh-cn/stage-1/ai-capabilities-through-games/images/image56.png similarity index 100% rename from docs/zh-cn/stage-0/0.2-ai-capabilities-through-games/images/image56.png rename to docs/zh-cn/stage-1/ai-capabilities-through-games/images/image56.png diff --git a/docs/zh-cn/stage-0/0.2-ai-capabilities-through-games/images/image57.png b/docs/zh-cn/stage-1/ai-capabilities-through-games/images/image57.png similarity index 100% rename from docs/zh-cn/stage-0/0.2-ai-capabilities-through-games/images/image57.png rename to docs/zh-cn/stage-1/ai-capabilities-through-games/images/image57.png diff --git a/docs/zh-cn/stage-0/0.2-ai-capabilities-through-games/images/image58.png b/docs/zh-cn/stage-1/ai-capabilities-through-games/images/image58.png similarity index 100% rename from docs/zh-cn/stage-0/0.2-ai-capabilities-through-games/images/image58.png rename to docs/zh-cn/stage-1/ai-capabilities-through-games/images/image58.png diff --git a/docs/zh-cn/stage-0/0.2-ai-capabilities-through-games/images/image6.png b/docs/zh-cn/stage-1/ai-capabilities-through-games/images/image6.png similarity index 100% rename from docs/zh-cn/stage-0/0.2-ai-capabilities-through-games/images/image6.png rename to docs/zh-cn/stage-1/ai-capabilities-through-games/images/image6.png diff --git a/docs/zh-cn/stage-0/0.2-ai-capabilities-through-games/images/image7.png b/docs/zh-cn/stage-1/ai-capabilities-through-games/images/image7.png similarity index 100% rename from docs/zh-cn/stage-0/0.2-ai-capabilities-through-games/images/image7.png rename to docs/zh-cn/stage-1/ai-capabilities-through-games/images/image7.png diff --git a/docs/zh-cn/stage-0/0.2-ai-capabilities-through-games/images/image9.png b/docs/zh-cn/stage-1/ai-capabilities-through-games/images/image9.png similarity index 100% rename from docs/zh-cn/stage-0/0.2-ai-capabilities-through-games/images/image9.png rename to docs/zh-cn/stage-1/ai-capabilities-through-games/images/image9.png diff --git a/docs/zh-cn/stage-0/0.2-ai-capabilities-through-games/images/index-2026-01-07-18-25-03.png b/docs/zh-cn/stage-1/ai-capabilities-through-games/images/index-2026-01-07-18-25-03.png similarity index 100% rename from docs/zh-cn/stage-0/0.2-ai-capabilities-through-games/images/index-2026-01-07-18-25-03.png rename to docs/zh-cn/stage-1/ai-capabilities-through-games/images/index-2026-01-07-18-25-03.png diff --git a/docs/zh-cn/stage-0/0.2-ai-capabilities-through-games/images/index-2026-01-07-18-34-03.png b/docs/zh-cn/stage-1/ai-capabilities-through-games/images/index-2026-01-07-18-34-03.png similarity index 100% rename from docs/zh-cn/stage-0/0.2-ai-capabilities-through-games/images/index-2026-01-07-18-34-03.png rename to docs/zh-cn/stage-1/ai-capabilities-through-games/images/index-2026-01-07-18-34-03.png diff --git a/docs/zh-cn/stage-0/0.2-ai-capabilities-through-games/images/index-2026-01-07-18-35-11.png b/docs/zh-cn/stage-1/ai-capabilities-through-games/images/index-2026-01-07-18-35-11.png similarity index 100% rename from docs/zh-cn/stage-0/0.2-ai-capabilities-through-games/images/index-2026-01-07-18-35-11.png rename to docs/zh-cn/stage-1/ai-capabilities-through-games/images/index-2026-01-07-18-35-11.png diff --git a/docs/zh-cn/stage-0/0.2-ai-capabilities-through-games/index.md b/docs/zh-cn/stage-1/ai-capabilities-through-games/index.md similarity index 99% rename from docs/zh-cn/stage-0/0.2-ai-capabilities-through-games/index.md rename to docs/zh-cn/stage-1/ai-capabilities-through-games/index.md index b6f4f35..f66f687 100644 --- a/docs/zh-cn/stage-0/0.2-ai-capabilities-through-games/index.md +++ b/docs/zh-cn/stage-1/ai-capabilities-through-games/index.md @@ -14,7 +14,7 @@ import { relatedArticlesMap } from '@theme/data/relatedArticles' const duration = '约 4 小时,可分多次完成' const relatedArticles = - relatedArticlesMap['zh-cn/stage-0/0.2-ai-capabilities-through-games'] ?? [] + relatedArticlesMap['zh-cn/stage-1/ai-capabilities-through-games'] ?? [] ## 本章导读 diff --git a/docs/zh-cn/stage-1/1.2-building-prototype/images/index-2026-01-14-14-25-56.png b/docs/zh-cn/stage-1/building-prototype/images/index-2026-01-14-14-25-56.png similarity index 100% rename from docs/zh-cn/stage-1/1.2-building-prototype/images/index-2026-01-14-14-25-56.png rename to docs/zh-cn/stage-1/building-prototype/images/index-2026-01-14-14-25-56.png diff --git a/docs/zh-cn/stage-1/1.2-building-prototype/images/index-2026-01-14-14-28-44.png b/docs/zh-cn/stage-1/building-prototype/images/index-2026-01-14-14-28-44.png similarity index 100% rename from docs/zh-cn/stage-1/1.2-building-prototype/images/index-2026-01-14-14-28-44.png rename to docs/zh-cn/stage-1/building-prototype/images/index-2026-01-14-14-28-44.png diff --git a/docs/zh-cn/stage-1/1.2-building-prototype/images/index-2026-01-14-14-30-00.png b/docs/zh-cn/stage-1/building-prototype/images/index-2026-01-14-14-30-00.png similarity index 100% rename from docs/zh-cn/stage-1/1.2-building-prototype/images/index-2026-01-14-14-30-00.png rename to docs/zh-cn/stage-1/building-prototype/images/index-2026-01-14-14-30-00.png diff --git a/docs/zh-cn/stage-1/1.2-building-prototype/images/index-2026-01-14-14-31-41.png b/docs/zh-cn/stage-1/building-prototype/images/index-2026-01-14-14-31-41.png similarity index 100% rename from docs/zh-cn/stage-1/1.2-building-prototype/images/index-2026-01-14-14-31-41.png rename to docs/zh-cn/stage-1/building-prototype/images/index-2026-01-14-14-31-41.png diff --git a/docs/zh-cn/stage-1/1.2-building-prototype/images/index-2026-01-14-14-33-03.png b/docs/zh-cn/stage-1/building-prototype/images/index-2026-01-14-14-33-03.png similarity index 100% rename from docs/zh-cn/stage-1/1.2-building-prototype/images/index-2026-01-14-14-33-03.png rename to docs/zh-cn/stage-1/building-prototype/images/index-2026-01-14-14-33-03.png diff --git a/docs/zh-cn/stage-1/1.2-building-prototype/images/index-2026-01-14-14-35-53.png b/docs/zh-cn/stage-1/building-prototype/images/index-2026-01-14-14-35-53.png similarity index 100% rename from docs/zh-cn/stage-1/1.2-building-prototype/images/index-2026-01-14-14-35-53.png rename to docs/zh-cn/stage-1/building-prototype/images/index-2026-01-14-14-35-53.png diff --git a/docs/zh-cn/stage-1/1.2-building-prototype/images/index-2026-01-14-14-38-11.png b/docs/zh-cn/stage-1/building-prototype/images/index-2026-01-14-14-38-11.png similarity index 100% rename from docs/zh-cn/stage-1/1.2-building-prototype/images/index-2026-01-14-14-38-11.png rename to docs/zh-cn/stage-1/building-prototype/images/index-2026-01-14-14-38-11.png diff --git a/docs/zh-cn/stage-1/1.2-building-prototype/images/index-2026-01-14-14-50-34.png b/docs/zh-cn/stage-1/building-prototype/images/index-2026-01-14-14-50-34.png similarity index 100% rename from docs/zh-cn/stage-1/1.2-building-prototype/images/index-2026-01-14-14-50-34.png rename to docs/zh-cn/stage-1/building-prototype/images/index-2026-01-14-14-50-34.png diff --git a/docs/zh-cn/stage-1/1.2-building-prototype/images/index-2026-01-14-15-01-16.png b/docs/zh-cn/stage-1/building-prototype/images/index-2026-01-14-15-01-16.png similarity index 100% rename from docs/zh-cn/stage-1/1.2-building-prototype/images/index-2026-01-14-15-01-16.png rename to docs/zh-cn/stage-1/building-prototype/images/index-2026-01-14-15-01-16.png diff --git a/docs/zh-cn/stage-1/1.2-building-prototype/images/index-2026-01-14-15-05-16.png b/docs/zh-cn/stage-1/building-prototype/images/index-2026-01-14-15-05-16.png similarity index 100% rename from docs/zh-cn/stage-1/1.2-building-prototype/images/index-2026-01-14-15-05-16.png rename to docs/zh-cn/stage-1/building-prototype/images/index-2026-01-14-15-05-16.png diff --git a/docs/zh-cn/stage-1/1.2-building-prototype/images/index-2026-01-14-15-13-12.png b/docs/zh-cn/stage-1/building-prototype/images/index-2026-01-14-15-13-12.png similarity index 100% rename from docs/zh-cn/stage-1/1.2-building-prototype/images/index-2026-01-14-15-13-12.png rename to docs/zh-cn/stage-1/building-prototype/images/index-2026-01-14-15-13-12.png diff --git a/docs/zh-cn/stage-1/1.2-building-prototype/images/index-2026-01-14-15-15-18.png b/docs/zh-cn/stage-1/building-prototype/images/index-2026-01-14-15-15-18.png similarity index 100% rename from docs/zh-cn/stage-1/1.2-building-prototype/images/index-2026-01-14-15-15-18.png rename to docs/zh-cn/stage-1/building-prototype/images/index-2026-01-14-15-15-18.png diff --git a/docs/zh-cn/stage-1/1.2-building-prototype/images/index-2026-01-14-15-17-55.png b/docs/zh-cn/stage-1/building-prototype/images/index-2026-01-14-15-17-55.png similarity index 100% rename from docs/zh-cn/stage-1/1.2-building-prototype/images/index-2026-01-14-15-17-55.png rename to docs/zh-cn/stage-1/building-prototype/images/index-2026-01-14-15-17-55.png diff --git a/docs/zh-cn/stage-1/1.2-building-prototype/images/index-2026-01-14-15-23-40.png b/docs/zh-cn/stage-1/building-prototype/images/index-2026-01-14-15-23-40.png similarity index 100% rename from docs/zh-cn/stage-1/1.2-building-prototype/images/index-2026-01-14-15-23-40.png rename to docs/zh-cn/stage-1/building-prototype/images/index-2026-01-14-15-23-40.png diff --git a/docs/zh-cn/stage-1/1.2-building-prototype/images/index-2026-01-14-15-23-53.png b/docs/zh-cn/stage-1/building-prototype/images/index-2026-01-14-15-23-53.png similarity index 100% rename from docs/zh-cn/stage-1/1.2-building-prototype/images/index-2026-01-14-15-23-53.png rename to docs/zh-cn/stage-1/building-prototype/images/index-2026-01-14-15-23-53.png diff --git a/docs/zh-cn/stage-1/1.2-building-prototype/images/index-2026-01-14-15-30-30.png b/docs/zh-cn/stage-1/building-prototype/images/index-2026-01-14-15-30-30.png similarity index 100% rename from docs/zh-cn/stage-1/1.2-building-prototype/images/index-2026-01-14-15-30-30.png rename to docs/zh-cn/stage-1/building-prototype/images/index-2026-01-14-15-30-30.png diff --git a/docs/zh-cn/stage-1/1.2-building-prototype/images/index-2026-01-14-15-31-23.png b/docs/zh-cn/stage-1/building-prototype/images/index-2026-01-14-15-31-23.png similarity index 100% rename from docs/zh-cn/stage-1/1.2-building-prototype/images/index-2026-01-14-15-31-23.png rename to docs/zh-cn/stage-1/building-prototype/images/index-2026-01-14-15-31-23.png diff --git a/docs/zh-cn/stage-1/1.2-building-prototype/images/index-2026-01-14-15-50-05.png b/docs/zh-cn/stage-1/building-prototype/images/index-2026-01-14-15-50-05.png similarity index 100% rename from docs/zh-cn/stage-1/1.2-building-prototype/images/index-2026-01-14-15-50-05.png rename to docs/zh-cn/stage-1/building-prototype/images/index-2026-01-14-15-50-05.png diff --git a/docs/zh-cn/stage-1/1.2-building-prototype/images/index-2026-01-14-15-57-14.png b/docs/zh-cn/stage-1/building-prototype/images/index-2026-01-14-15-57-14.png similarity index 100% rename from docs/zh-cn/stage-1/1.2-building-prototype/images/index-2026-01-14-15-57-14.png rename to docs/zh-cn/stage-1/building-prototype/images/index-2026-01-14-15-57-14.png diff --git a/docs/zh-cn/stage-1/1.2-building-prototype/images/index-2026-01-14-16-12-56.png b/docs/zh-cn/stage-1/building-prototype/images/index-2026-01-14-16-12-56.png similarity index 100% rename from docs/zh-cn/stage-1/1.2-building-prototype/images/index-2026-01-14-16-12-56.png rename to docs/zh-cn/stage-1/building-prototype/images/index-2026-01-14-16-12-56.png diff --git a/docs/zh-cn/stage-1/1.2-building-prototype/index.md b/docs/zh-cn/stage-1/building-prototype/index.md similarity index 99% rename from docs/zh-cn/stage-1/1.2-building-prototype/index.md rename to docs/zh-cn/stage-1/building-prototype/index.md index c215941..956643e 100644 --- a/docs/zh-cn/stage-1/1.2-building-prototype/index.md +++ b/docs/zh-cn/stage-1/building-prototype/index.md @@ -8,7 +8,7 @@ import { relatedArticlesMap } from '@theme/data/relatedArticles' const duration = '约 8 小时' const relatedArticles = - relatedArticlesMap['zh-cn/stage-1/1.2-building-prototype'] ?? [] + relatedArticlesMap['zh-cn/stage-1/building-prototype'] ?? [] # 初级三:动手做出原型 @@ -257,7 +257,7 @@ const relatedArticles = ## 2. 10分钟产出原型:让 AI IDE 落地"核心玩法" ::: info 💡 编程 Plan 建议 -如果你觉得当前 IDE 不够聪明,或者觉得很快就花完了额度,你可以去买一个**编程 Plan 计划**。提前预习参考[这个文章](../../stage-2/backend/2.6-modern-cli/)使用 Claude 进行编程。 +如果你觉得当前 IDE 不够聪明,或者觉得很快就花完了额度,你可以去买一个**编程 Plan 计划**。提前预习参考[这个文章](../../stage-2/backend/modern-cli/)使用 Claude 进行编程。 ::: Thinking 是好事,但不可 over thinking,我们就此控制过度反思,尝试从单个页面开始制作原型。 diff --git a/docs/zh-cn/stage-1/1.4-complete-project-practice/index.md b/docs/zh-cn/stage-1/complete-project-practice/index.md similarity index 99% rename from docs/zh-cn/stage-1/1.4-complete-project-practice/index.md rename to docs/zh-cn/stage-1/complete-project-practice/index.md index fd0f513..1bd94cd 100644 --- a/docs/zh-cn/stage-1/1.4-complete-project-practice/index.md +++ b/docs/zh-cn/stage-1/complete-project-practice/index.md @@ -8,7 +8,7 @@ import { relatedArticlesMap } from '@theme/data/relatedArticles' const duration = '约 3 天' const relatedArticles = - relatedArticlesMap['zh-cn/stage-1/1.4-complete-project-practice'] ?? [] + relatedArticlesMap['zh-cn/stage-1/complete-project-practice'] ?? [] # 初级五:完整项目实战 diff --git a/docs/zh-cn/stage-1/1.0-finding-great-idea/index.md b/docs/zh-cn/stage-1/finding-great-idea/index.md similarity index 100% rename from docs/zh-cn/stage-1/1.0-finding-great-idea/index.md rename to docs/zh-cn/stage-1/finding-great-idea/index.md diff --git a/docs/zh-cn/stage-1/1.3-integrating-ai-capabilities/images/image.png b/docs/zh-cn/stage-1/integrating-ai-capabilities/images/image.png similarity index 100% rename from docs/zh-cn/stage-1/1.3-integrating-ai-capabilities/images/image.png rename to docs/zh-cn/stage-1/integrating-ai-capabilities/images/image.png diff --git a/docs/zh-cn/stage-1/1.3-integrating-ai-capabilities/images/image40.png b/docs/zh-cn/stage-1/integrating-ai-capabilities/images/image40.png similarity index 100% rename from docs/zh-cn/stage-1/1.3-integrating-ai-capabilities/images/image40.png rename to docs/zh-cn/stage-1/integrating-ai-capabilities/images/image40.png diff --git a/docs/zh-cn/stage-1/1.3-integrating-ai-capabilities/images/index-2026-01-20-13-57-41.png b/docs/zh-cn/stage-1/integrating-ai-capabilities/images/index-2026-01-20-13-57-41.png similarity index 100% rename from docs/zh-cn/stage-1/1.3-integrating-ai-capabilities/images/index-2026-01-20-13-57-41.png rename to docs/zh-cn/stage-1/integrating-ai-capabilities/images/index-2026-01-20-13-57-41.png diff --git a/docs/zh-cn/stage-1/1.3-integrating-ai-capabilities/images/index-2026-01-20-13-58-13.png b/docs/zh-cn/stage-1/integrating-ai-capabilities/images/index-2026-01-20-13-58-13.png similarity index 100% rename from docs/zh-cn/stage-1/1.3-integrating-ai-capabilities/images/index-2026-01-20-13-58-13.png rename to docs/zh-cn/stage-1/integrating-ai-capabilities/images/index-2026-01-20-13-58-13.png diff --git a/docs/zh-cn/stage-1/1.3-integrating-ai-capabilities/images/index-2026-01-20-13-58-32.png b/docs/zh-cn/stage-1/integrating-ai-capabilities/images/index-2026-01-20-13-58-32.png similarity index 100% rename from docs/zh-cn/stage-1/1.3-integrating-ai-capabilities/images/index-2026-01-20-13-58-32.png rename to docs/zh-cn/stage-1/integrating-ai-capabilities/images/index-2026-01-20-13-58-32.png diff --git a/docs/zh-cn/stage-1/1.3-integrating-ai-capabilities/images/index-2026-01-20-13-58-56.png b/docs/zh-cn/stage-1/integrating-ai-capabilities/images/index-2026-01-20-13-58-56.png similarity index 100% rename from docs/zh-cn/stage-1/1.3-integrating-ai-capabilities/images/index-2026-01-20-13-58-56.png rename to docs/zh-cn/stage-1/integrating-ai-capabilities/images/index-2026-01-20-13-58-56.png diff --git a/docs/zh-cn/stage-1/1.3-integrating-ai-capabilities/images/index-2026-01-20-13-59-31.png b/docs/zh-cn/stage-1/integrating-ai-capabilities/images/index-2026-01-20-13-59-31.png similarity index 100% rename from docs/zh-cn/stage-1/1.3-integrating-ai-capabilities/images/index-2026-01-20-13-59-31.png rename to docs/zh-cn/stage-1/integrating-ai-capabilities/images/index-2026-01-20-13-59-31.png diff --git a/docs/zh-cn/stage-1/1.3-integrating-ai-capabilities/images/index-2026-01-20-14-16-48.png b/docs/zh-cn/stage-1/integrating-ai-capabilities/images/index-2026-01-20-14-16-48.png similarity index 100% rename from docs/zh-cn/stage-1/1.3-integrating-ai-capabilities/images/index-2026-01-20-14-16-48.png rename to docs/zh-cn/stage-1/integrating-ai-capabilities/images/index-2026-01-20-14-16-48.png diff --git a/docs/zh-cn/stage-1/1.3-integrating-ai-capabilities/images/index-2026-01-20-14-23-23.png b/docs/zh-cn/stage-1/integrating-ai-capabilities/images/index-2026-01-20-14-23-23.png similarity index 100% rename from docs/zh-cn/stage-1/1.3-integrating-ai-capabilities/images/index-2026-01-20-14-23-23.png rename to docs/zh-cn/stage-1/integrating-ai-capabilities/images/index-2026-01-20-14-23-23.png diff --git a/docs/zh-cn/stage-1/1.3-integrating-ai-capabilities/images/index-2026-01-20-14-26-35.png b/docs/zh-cn/stage-1/integrating-ai-capabilities/images/index-2026-01-20-14-26-35.png similarity index 100% rename from docs/zh-cn/stage-1/1.3-integrating-ai-capabilities/images/index-2026-01-20-14-26-35.png rename to docs/zh-cn/stage-1/integrating-ai-capabilities/images/index-2026-01-20-14-26-35.png diff --git a/docs/zh-cn/stage-1/1.3-integrating-ai-capabilities/images/index-2026-01-20-14-43-10.png b/docs/zh-cn/stage-1/integrating-ai-capabilities/images/index-2026-01-20-14-43-10.png similarity index 100% rename from docs/zh-cn/stage-1/1.3-integrating-ai-capabilities/images/index-2026-01-20-14-43-10.png rename to docs/zh-cn/stage-1/integrating-ai-capabilities/images/index-2026-01-20-14-43-10.png diff --git a/docs/zh-cn/stage-1/1.3-integrating-ai-capabilities/images/index-2026-01-20-14-43-30.png b/docs/zh-cn/stage-1/integrating-ai-capabilities/images/index-2026-01-20-14-43-30.png similarity index 100% rename from docs/zh-cn/stage-1/1.3-integrating-ai-capabilities/images/index-2026-01-20-14-43-30.png rename to docs/zh-cn/stage-1/integrating-ai-capabilities/images/index-2026-01-20-14-43-30.png diff --git a/docs/zh-cn/stage-1/1.3-integrating-ai-capabilities/images/index-2026-01-20-14-46-17.png b/docs/zh-cn/stage-1/integrating-ai-capabilities/images/index-2026-01-20-14-46-17.png similarity index 100% rename from docs/zh-cn/stage-1/1.3-integrating-ai-capabilities/images/index-2026-01-20-14-46-17.png rename to docs/zh-cn/stage-1/integrating-ai-capabilities/images/index-2026-01-20-14-46-17.png diff --git a/docs/zh-cn/stage-1/1.3-integrating-ai-capabilities/images/index-2026-01-20-14-46-29.png b/docs/zh-cn/stage-1/integrating-ai-capabilities/images/index-2026-01-20-14-46-29.png similarity index 100% rename from docs/zh-cn/stage-1/1.3-integrating-ai-capabilities/images/index-2026-01-20-14-46-29.png rename to docs/zh-cn/stage-1/integrating-ai-capabilities/images/index-2026-01-20-14-46-29.png diff --git a/docs/zh-cn/stage-1/1.3-integrating-ai-capabilities/images/index-2026-01-20-14-46-33.png b/docs/zh-cn/stage-1/integrating-ai-capabilities/images/index-2026-01-20-14-46-33.png similarity index 100% rename from docs/zh-cn/stage-1/1.3-integrating-ai-capabilities/images/index-2026-01-20-14-46-33.png rename to docs/zh-cn/stage-1/integrating-ai-capabilities/images/index-2026-01-20-14-46-33.png diff --git a/docs/zh-cn/stage-1/1.3-integrating-ai-capabilities/images/index-2026-01-20-14-48-27.png b/docs/zh-cn/stage-1/integrating-ai-capabilities/images/index-2026-01-20-14-48-27.png similarity index 100% rename from docs/zh-cn/stage-1/1.3-integrating-ai-capabilities/images/index-2026-01-20-14-48-27.png rename to docs/zh-cn/stage-1/integrating-ai-capabilities/images/index-2026-01-20-14-48-27.png diff --git a/docs/zh-cn/stage-1/1.3-integrating-ai-capabilities/images/index-2026-01-20-14-48-41.png b/docs/zh-cn/stage-1/integrating-ai-capabilities/images/index-2026-01-20-14-48-41.png similarity index 100% rename from docs/zh-cn/stage-1/1.3-integrating-ai-capabilities/images/index-2026-01-20-14-48-41.png rename to docs/zh-cn/stage-1/integrating-ai-capabilities/images/index-2026-01-20-14-48-41.png diff --git a/docs/zh-cn/stage-1/1.3-integrating-ai-capabilities/images/index-2026-01-20-15-05-04.png b/docs/zh-cn/stage-1/integrating-ai-capabilities/images/index-2026-01-20-15-05-04.png similarity index 100% rename from docs/zh-cn/stage-1/1.3-integrating-ai-capabilities/images/index-2026-01-20-15-05-04.png rename to docs/zh-cn/stage-1/integrating-ai-capabilities/images/index-2026-01-20-15-05-04.png diff --git a/docs/zh-cn/stage-1/1.3-integrating-ai-capabilities/images/index-2026-01-20-15-07-44.png b/docs/zh-cn/stage-1/integrating-ai-capabilities/images/index-2026-01-20-15-07-44.png similarity index 100% rename from docs/zh-cn/stage-1/1.3-integrating-ai-capabilities/images/index-2026-01-20-15-07-44.png rename to docs/zh-cn/stage-1/integrating-ai-capabilities/images/index-2026-01-20-15-07-44.png diff --git a/docs/zh-cn/stage-1/1.3-integrating-ai-capabilities/images/index-2026-01-20-15-34-36.png b/docs/zh-cn/stage-1/integrating-ai-capabilities/images/index-2026-01-20-15-34-36.png similarity index 100% rename from docs/zh-cn/stage-1/1.3-integrating-ai-capabilities/images/index-2026-01-20-15-34-36.png rename to docs/zh-cn/stage-1/integrating-ai-capabilities/images/index-2026-01-20-15-34-36.png diff --git a/docs/zh-cn/stage-1/1.3-integrating-ai-capabilities/images/index-2026-01-20-15-35-41.png b/docs/zh-cn/stage-1/integrating-ai-capabilities/images/index-2026-01-20-15-35-41.png similarity index 100% rename from docs/zh-cn/stage-1/1.3-integrating-ai-capabilities/images/index-2026-01-20-15-35-41.png rename to docs/zh-cn/stage-1/integrating-ai-capabilities/images/index-2026-01-20-15-35-41.png diff --git a/docs/zh-cn/stage-1/1.3-integrating-ai-capabilities/images/index-2026-01-20-15-52-56.png b/docs/zh-cn/stage-1/integrating-ai-capabilities/images/index-2026-01-20-15-52-56.png similarity index 100% rename from docs/zh-cn/stage-1/1.3-integrating-ai-capabilities/images/index-2026-01-20-15-52-56.png rename to docs/zh-cn/stage-1/integrating-ai-capabilities/images/index-2026-01-20-15-52-56.png diff --git a/docs/zh-cn/stage-1/1.3-integrating-ai-capabilities/images/index-2026-01-20-23-12-07.png b/docs/zh-cn/stage-1/integrating-ai-capabilities/images/index-2026-01-20-23-12-07.png similarity index 100% rename from docs/zh-cn/stage-1/1.3-integrating-ai-capabilities/images/index-2026-01-20-23-12-07.png rename to docs/zh-cn/stage-1/integrating-ai-capabilities/images/index-2026-01-20-23-12-07.png diff --git a/docs/zh-cn/stage-1/1.3-integrating-ai-capabilities/images/index-2026-01-20-23-12-22.png b/docs/zh-cn/stage-1/integrating-ai-capabilities/images/index-2026-01-20-23-12-22.png similarity index 100% rename from docs/zh-cn/stage-1/1.3-integrating-ai-capabilities/images/index-2026-01-20-23-12-22.png rename to docs/zh-cn/stage-1/integrating-ai-capabilities/images/index-2026-01-20-23-12-22.png diff --git a/docs/zh-cn/stage-1/1.3-integrating-ai-capabilities/images/index-2026-01-20-23-12-30.png b/docs/zh-cn/stage-1/integrating-ai-capabilities/images/index-2026-01-20-23-12-30.png similarity index 100% rename from docs/zh-cn/stage-1/1.3-integrating-ai-capabilities/images/index-2026-01-20-23-12-30.png rename to docs/zh-cn/stage-1/integrating-ai-capabilities/images/index-2026-01-20-23-12-30.png diff --git a/docs/zh-cn/stage-1/1.3-integrating-ai-capabilities/images/index-2026-01-20-23-12-43.png b/docs/zh-cn/stage-1/integrating-ai-capabilities/images/index-2026-01-20-23-12-43.png similarity index 100% rename from docs/zh-cn/stage-1/1.3-integrating-ai-capabilities/images/index-2026-01-20-23-12-43.png rename to docs/zh-cn/stage-1/integrating-ai-capabilities/images/index-2026-01-20-23-12-43.png diff --git a/docs/zh-cn/stage-1/1.3-integrating-ai-capabilities/images/index-2026-01-20-23-13-01.png b/docs/zh-cn/stage-1/integrating-ai-capabilities/images/index-2026-01-20-23-13-01.png similarity index 100% rename from docs/zh-cn/stage-1/1.3-integrating-ai-capabilities/images/index-2026-01-20-23-13-01.png rename to docs/zh-cn/stage-1/integrating-ai-capabilities/images/index-2026-01-20-23-13-01.png diff --git a/docs/zh-cn/stage-1/1.3-integrating-ai-capabilities/images/index-2026-01-20-23-13-11.png b/docs/zh-cn/stage-1/integrating-ai-capabilities/images/index-2026-01-20-23-13-11.png similarity index 100% rename from docs/zh-cn/stage-1/1.3-integrating-ai-capabilities/images/index-2026-01-20-23-13-11.png rename to docs/zh-cn/stage-1/integrating-ai-capabilities/images/index-2026-01-20-23-13-11.png diff --git a/docs/zh-cn/stage-1/1.3-integrating-ai-capabilities/images/index-2026-01-20-23-14-10.png b/docs/zh-cn/stage-1/integrating-ai-capabilities/images/index-2026-01-20-23-14-10.png similarity index 100% rename from docs/zh-cn/stage-1/1.3-integrating-ai-capabilities/images/index-2026-01-20-23-14-10.png rename to docs/zh-cn/stage-1/integrating-ai-capabilities/images/index-2026-01-20-23-14-10.png diff --git a/docs/zh-cn/stage-1/1.3-integrating-ai-capabilities/images/index-2026-01-20-23-15-17.png b/docs/zh-cn/stage-1/integrating-ai-capabilities/images/index-2026-01-20-23-15-17.png similarity index 100% rename from docs/zh-cn/stage-1/1.3-integrating-ai-capabilities/images/index-2026-01-20-23-15-17.png rename to docs/zh-cn/stage-1/integrating-ai-capabilities/images/index-2026-01-20-23-15-17.png diff --git a/docs/zh-cn/stage-1/1.3-integrating-ai-capabilities/images/index-2026-01-20-23-15-38.png b/docs/zh-cn/stage-1/integrating-ai-capabilities/images/index-2026-01-20-23-15-38.png similarity index 100% rename from docs/zh-cn/stage-1/1.3-integrating-ai-capabilities/images/index-2026-01-20-23-15-38.png rename to docs/zh-cn/stage-1/integrating-ai-capabilities/images/index-2026-01-20-23-15-38.png diff --git a/docs/zh-cn/stage-1/1.3-integrating-ai-capabilities/images/index-2026-01-20-23-15-50.png b/docs/zh-cn/stage-1/integrating-ai-capabilities/images/index-2026-01-20-23-15-50.png similarity index 100% rename from docs/zh-cn/stage-1/1.3-integrating-ai-capabilities/images/index-2026-01-20-23-15-50.png rename to docs/zh-cn/stage-1/integrating-ai-capabilities/images/index-2026-01-20-23-15-50.png diff --git a/docs/zh-cn/stage-1/1.3-integrating-ai-capabilities/images/index-2026-01-20-23-21-13.png b/docs/zh-cn/stage-1/integrating-ai-capabilities/images/index-2026-01-20-23-21-13.png similarity index 100% rename from docs/zh-cn/stage-1/1.3-integrating-ai-capabilities/images/index-2026-01-20-23-21-13.png rename to docs/zh-cn/stage-1/integrating-ai-capabilities/images/index-2026-01-20-23-21-13.png diff --git a/docs/zh-cn/stage-1/1.3-integrating-ai-capabilities/images/index-2026-01-20-23-23-34.png b/docs/zh-cn/stage-1/integrating-ai-capabilities/images/index-2026-01-20-23-23-34.png similarity index 100% rename from docs/zh-cn/stage-1/1.3-integrating-ai-capabilities/images/index-2026-01-20-23-23-34.png rename to docs/zh-cn/stage-1/integrating-ai-capabilities/images/index-2026-01-20-23-23-34.png diff --git a/docs/zh-cn/stage-1/1.3-integrating-ai-capabilities/images/index-2026-01-20-23-23-42.png b/docs/zh-cn/stage-1/integrating-ai-capabilities/images/index-2026-01-20-23-23-42.png similarity index 100% rename from docs/zh-cn/stage-1/1.3-integrating-ai-capabilities/images/index-2026-01-20-23-23-42.png rename to docs/zh-cn/stage-1/integrating-ai-capabilities/images/index-2026-01-20-23-23-42.png diff --git a/docs/zh-cn/stage-1/1.3-integrating-ai-capabilities/index.md b/docs/zh-cn/stage-1/integrating-ai-capabilities/index.md similarity index 99% rename from docs/zh-cn/stage-1/1.3-integrating-ai-capabilities/index.md rename to docs/zh-cn/stage-1/integrating-ai-capabilities/index.md index 359c5be..b977305 100644 --- a/docs/zh-cn/stage-1/1.3-integrating-ai-capabilities/index.md +++ b/docs/zh-cn/stage-1/integrating-ai-capabilities/index.md @@ -8,7 +8,7 @@ import { relatedArticlesMap } from '@theme/data/relatedArticles' const duration = '约 1 天' const relatedArticles = - relatedArticlesMap['zh-cn/stage-1/1.3-integrating-ai-capabilities'] ?? [] + relatedArticlesMap['zh-cn/stage-1/integrating-ai-capabilities'] ?? [] # 初级四:为原型注入 AI 能力 diff --git a/docs/zh-cn/stage-1/1.1-introduction-to-ai-ide/images/image1.png b/docs/zh-cn/stage-1/introduction-to-ai-ide/images/image1.png similarity index 100% rename from docs/zh-cn/stage-1/1.1-introduction-to-ai-ide/images/image1.png rename to docs/zh-cn/stage-1/introduction-to-ai-ide/images/image1.png diff --git a/docs/zh-cn/stage-1/1.1-introduction-to-ai-ide/images/image10.png b/docs/zh-cn/stage-1/introduction-to-ai-ide/images/image10.png similarity index 100% rename from docs/zh-cn/stage-1/1.1-introduction-to-ai-ide/images/image10.png rename to docs/zh-cn/stage-1/introduction-to-ai-ide/images/image10.png diff --git a/docs/zh-cn/stage-1/1.1-introduction-to-ai-ide/images/image11.png b/docs/zh-cn/stage-1/introduction-to-ai-ide/images/image11.png similarity index 100% rename from docs/zh-cn/stage-1/1.1-introduction-to-ai-ide/images/image11.png rename to docs/zh-cn/stage-1/introduction-to-ai-ide/images/image11.png diff --git a/docs/zh-cn/stage-1/1.1-introduction-to-ai-ide/images/image12.png b/docs/zh-cn/stage-1/introduction-to-ai-ide/images/image12.png similarity index 100% rename from docs/zh-cn/stage-1/1.1-introduction-to-ai-ide/images/image12.png rename to docs/zh-cn/stage-1/introduction-to-ai-ide/images/image12.png diff --git a/docs/zh-cn/stage-1/1.1-introduction-to-ai-ide/images/image13.png b/docs/zh-cn/stage-1/introduction-to-ai-ide/images/image13.png similarity index 100% rename from docs/zh-cn/stage-1/1.1-introduction-to-ai-ide/images/image13.png rename to docs/zh-cn/stage-1/introduction-to-ai-ide/images/image13.png diff --git a/docs/zh-cn/stage-1/1.1-introduction-to-ai-ide/images/image14.png b/docs/zh-cn/stage-1/introduction-to-ai-ide/images/image14.png similarity index 100% rename from docs/zh-cn/stage-1/1.1-introduction-to-ai-ide/images/image14.png rename to docs/zh-cn/stage-1/introduction-to-ai-ide/images/image14.png diff --git a/docs/zh-cn/stage-1/1.1-introduction-to-ai-ide/images/image15.png b/docs/zh-cn/stage-1/introduction-to-ai-ide/images/image15.png similarity index 100% rename from docs/zh-cn/stage-1/1.1-introduction-to-ai-ide/images/image15.png rename to docs/zh-cn/stage-1/introduction-to-ai-ide/images/image15.png diff --git a/docs/zh-cn/stage-1/1.1-introduction-to-ai-ide/images/image16.png b/docs/zh-cn/stage-1/introduction-to-ai-ide/images/image16.png similarity index 100% rename from docs/zh-cn/stage-1/1.1-introduction-to-ai-ide/images/image16.png rename to docs/zh-cn/stage-1/introduction-to-ai-ide/images/image16.png diff --git a/docs/zh-cn/stage-1/1.1-introduction-to-ai-ide/images/image17.png b/docs/zh-cn/stage-1/introduction-to-ai-ide/images/image17.png similarity index 100% rename from docs/zh-cn/stage-1/1.1-introduction-to-ai-ide/images/image17.png rename to docs/zh-cn/stage-1/introduction-to-ai-ide/images/image17.png diff --git a/docs/zh-cn/stage-1/1.1-introduction-to-ai-ide/images/image18.png b/docs/zh-cn/stage-1/introduction-to-ai-ide/images/image18.png similarity index 100% rename from docs/zh-cn/stage-1/1.1-introduction-to-ai-ide/images/image18.png rename to docs/zh-cn/stage-1/introduction-to-ai-ide/images/image18.png diff --git a/docs/zh-cn/stage-1/1.1-introduction-to-ai-ide/images/image19.png b/docs/zh-cn/stage-1/introduction-to-ai-ide/images/image19.png similarity index 100% rename from docs/zh-cn/stage-1/1.1-introduction-to-ai-ide/images/image19.png rename to docs/zh-cn/stage-1/introduction-to-ai-ide/images/image19.png diff --git a/docs/zh-cn/stage-1/1.1-introduction-to-ai-ide/images/image2.png b/docs/zh-cn/stage-1/introduction-to-ai-ide/images/image2.png similarity index 100% rename from docs/zh-cn/stage-1/1.1-introduction-to-ai-ide/images/image2.png rename to docs/zh-cn/stage-1/introduction-to-ai-ide/images/image2.png diff --git a/docs/zh-cn/stage-1/1.1-introduction-to-ai-ide/images/image20.png b/docs/zh-cn/stage-1/introduction-to-ai-ide/images/image20.png similarity index 100% rename from docs/zh-cn/stage-1/1.1-introduction-to-ai-ide/images/image20.png rename to docs/zh-cn/stage-1/introduction-to-ai-ide/images/image20.png diff --git a/docs/zh-cn/stage-1/1.1-introduction-to-ai-ide/images/image21.png b/docs/zh-cn/stage-1/introduction-to-ai-ide/images/image21.png similarity index 100% rename from docs/zh-cn/stage-1/1.1-introduction-to-ai-ide/images/image21.png rename to docs/zh-cn/stage-1/introduction-to-ai-ide/images/image21.png diff --git a/docs/zh-cn/stage-1/1.1-introduction-to-ai-ide/images/image22.png b/docs/zh-cn/stage-1/introduction-to-ai-ide/images/image22.png similarity index 100% rename from docs/zh-cn/stage-1/1.1-introduction-to-ai-ide/images/image22.png rename to docs/zh-cn/stage-1/introduction-to-ai-ide/images/image22.png diff --git a/docs/zh-cn/stage-1/1.1-introduction-to-ai-ide/images/image3.png b/docs/zh-cn/stage-1/introduction-to-ai-ide/images/image3.png similarity index 100% rename from docs/zh-cn/stage-1/1.1-introduction-to-ai-ide/images/image3.png rename to docs/zh-cn/stage-1/introduction-to-ai-ide/images/image3.png diff --git a/docs/zh-cn/stage-1/1.1-introduction-to-ai-ide/images/image32.webp b/docs/zh-cn/stage-1/introduction-to-ai-ide/images/image32.webp similarity index 100% rename from docs/zh-cn/stage-1/1.1-introduction-to-ai-ide/images/image32.webp rename to docs/zh-cn/stage-1/introduction-to-ai-ide/images/image32.webp diff --git a/docs/zh-cn/stage-1/1.1-introduction-to-ai-ide/images/image4.png b/docs/zh-cn/stage-1/introduction-to-ai-ide/images/image4.png similarity index 100% rename from docs/zh-cn/stage-1/1.1-introduction-to-ai-ide/images/image4.png rename to docs/zh-cn/stage-1/introduction-to-ai-ide/images/image4.png diff --git a/docs/zh-cn/stage-1/1.1-introduction-to-ai-ide/images/image5.png b/docs/zh-cn/stage-1/introduction-to-ai-ide/images/image5.png similarity index 100% rename from docs/zh-cn/stage-1/1.1-introduction-to-ai-ide/images/image5.png rename to docs/zh-cn/stage-1/introduction-to-ai-ide/images/image5.png diff --git a/docs/zh-cn/stage-1/1.1-introduction-to-ai-ide/images/image6.png b/docs/zh-cn/stage-1/introduction-to-ai-ide/images/image6.png similarity index 100% rename from docs/zh-cn/stage-1/1.1-introduction-to-ai-ide/images/image6.png rename to docs/zh-cn/stage-1/introduction-to-ai-ide/images/image6.png diff --git a/docs/zh-cn/stage-1/1.1-introduction-to-ai-ide/images/image7.png b/docs/zh-cn/stage-1/introduction-to-ai-ide/images/image7.png similarity index 100% rename from docs/zh-cn/stage-1/1.1-introduction-to-ai-ide/images/image7.png rename to docs/zh-cn/stage-1/introduction-to-ai-ide/images/image7.png diff --git a/docs/zh-cn/stage-1/1.1-introduction-to-ai-ide/images/image8.png b/docs/zh-cn/stage-1/introduction-to-ai-ide/images/image8.png similarity index 100% rename from docs/zh-cn/stage-1/1.1-introduction-to-ai-ide/images/image8.png rename to docs/zh-cn/stage-1/introduction-to-ai-ide/images/image8.png diff --git a/docs/zh-cn/stage-1/1.1-introduction-to-ai-ide/images/image9.png b/docs/zh-cn/stage-1/introduction-to-ai-ide/images/image9.png similarity index 100% rename from docs/zh-cn/stage-1/1.1-introduction-to-ai-ide/images/image9.png rename to docs/zh-cn/stage-1/introduction-to-ai-ide/images/image9.png diff --git a/docs/zh-cn/stage-1/1.1-introduction-to-ai-ide/images/index-2026-01-09-10-26-33.png b/docs/zh-cn/stage-1/introduction-to-ai-ide/images/index-2026-01-09-10-26-33.png similarity index 100% rename from docs/zh-cn/stage-1/1.1-introduction-to-ai-ide/images/index-2026-01-09-10-26-33.png rename to docs/zh-cn/stage-1/introduction-to-ai-ide/images/index-2026-01-09-10-26-33.png diff --git a/docs/zh-cn/stage-1/1.1-introduction-to-ai-ide/images/index-2026-01-09-10-27-13.png b/docs/zh-cn/stage-1/introduction-to-ai-ide/images/index-2026-01-09-10-27-13.png similarity index 100% rename from docs/zh-cn/stage-1/1.1-introduction-to-ai-ide/images/index-2026-01-09-10-27-13.png rename to docs/zh-cn/stage-1/introduction-to-ai-ide/images/index-2026-01-09-10-27-13.png diff --git a/docs/zh-cn/stage-1/1.1-introduction-to-ai-ide/images/index-2026-01-09-10-29-12.png b/docs/zh-cn/stage-1/introduction-to-ai-ide/images/index-2026-01-09-10-29-12.png similarity index 100% rename from docs/zh-cn/stage-1/1.1-introduction-to-ai-ide/images/index-2026-01-09-10-29-12.png rename to docs/zh-cn/stage-1/introduction-to-ai-ide/images/index-2026-01-09-10-29-12.png diff --git a/docs/zh-cn/stage-1/1.1-introduction-to-ai-ide/images/index-2026-01-09-10-30-51.png b/docs/zh-cn/stage-1/introduction-to-ai-ide/images/index-2026-01-09-10-30-51.png similarity index 100% rename from docs/zh-cn/stage-1/1.1-introduction-to-ai-ide/images/index-2026-01-09-10-30-51.png rename to docs/zh-cn/stage-1/introduction-to-ai-ide/images/index-2026-01-09-10-30-51.png diff --git a/docs/zh-cn/stage-1/1.1-introduction-to-ai-ide/images/index-2026-01-09-10-33-37.png b/docs/zh-cn/stage-1/introduction-to-ai-ide/images/index-2026-01-09-10-33-37.png similarity index 100% rename from docs/zh-cn/stage-1/1.1-introduction-to-ai-ide/images/index-2026-01-09-10-33-37.png rename to docs/zh-cn/stage-1/introduction-to-ai-ide/images/index-2026-01-09-10-33-37.png diff --git a/docs/zh-cn/stage-1/1.1-introduction-to-ai-ide/images/index-2026-01-09-10-37-39.png b/docs/zh-cn/stage-1/introduction-to-ai-ide/images/index-2026-01-09-10-37-39.png similarity index 100% rename from docs/zh-cn/stage-1/1.1-introduction-to-ai-ide/images/index-2026-01-09-10-37-39.png rename to docs/zh-cn/stage-1/introduction-to-ai-ide/images/index-2026-01-09-10-37-39.png diff --git a/docs/zh-cn/stage-1/1.1-introduction-to-ai-ide/images/index-2026-01-09-10-42-53.png b/docs/zh-cn/stage-1/introduction-to-ai-ide/images/index-2026-01-09-10-42-53.png similarity index 100% rename from docs/zh-cn/stage-1/1.1-introduction-to-ai-ide/images/index-2026-01-09-10-42-53.png rename to docs/zh-cn/stage-1/introduction-to-ai-ide/images/index-2026-01-09-10-42-53.png diff --git a/docs/zh-cn/stage-1/1.1-introduction-to-ai-ide/images/index-2026-01-09-10-44-36.png b/docs/zh-cn/stage-1/introduction-to-ai-ide/images/index-2026-01-09-10-44-36.png similarity index 100% rename from docs/zh-cn/stage-1/1.1-introduction-to-ai-ide/images/index-2026-01-09-10-44-36.png rename to docs/zh-cn/stage-1/introduction-to-ai-ide/images/index-2026-01-09-10-44-36.png diff --git a/docs/zh-cn/stage-1/1.1-introduction-to-ai-ide/images/index-2026-01-09-10-49-33.png b/docs/zh-cn/stage-1/introduction-to-ai-ide/images/index-2026-01-09-10-49-33.png similarity index 100% rename from docs/zh-cn/stage-1/1.1-introduction-to-ai-ide/images/index-2026-01-09-10-49-33.png rename to docs/zh-cn/stage-1/introduction-to-ai-ide/images/index-2026-01-09-10-49-33.png diff --git a/docs/zh-cn/stage-1/1.1-introduction-to-ai-ide/images/index-2026-01-09-10-50-31.png b/docs/zh-cn/stage-1/introduction-to-ai-ide/images/index-2026-01-09-10-50-31.png similarity index 100% rename from docs/zh-cn/stage-1/1.1-introduction-to-ai-ide/images/index-2026-01-09-10-50-31.png rename to docs/zh-cn/stage-1/introduction-to-ai-ide/images/index-2026-01-09-10-50-31.png diff --git a/docs/zh-cn/stage-1/1.1-introduction-to-ai-ide/images/index-2026-01-09-10-52-55.png b/docs/zh-cn/stage-1/introduction-to-ai-ide/images/index-2026-01-09-10-52-55.png similarity index 100% rename from docs/zh-cn/stage-1/1.1-introduction-to-ai-ide/images/index-2026-01-09-10-52-55.png rename to docs/zh-cn/stage-1/introduction-to-ai-ide/images/index-2026-01-09-10-52-55.png diff --git a/docs/zh-cn/stage-1/1.1-introduction-to-ai-ide/images/index-2026-01-09-10-53-24.png b/docs/zh-cn/stage-1/introduction-to-ai-ide/images/index-2026-01-09-10-53-24.png similarity index 100% rename from docs/zh-cn/stage-1/1.1-introduction-to-ai-ide/images/index-2026-01-09-10-53-24.png rename to docs/zh-cn/stage-1/introduction-to-ai-ide/images/index-2026-01-09-10-53-24.png diff --git a/docs/zh-cn/stage-1/1.1-introduction-to-ai-ide/images/index-2026-01-09-11-00-57.png b/docs/zh-cn/stage-1/introduction-to-ai-ide/images/index-2026-01-09-11-00-57.png similarity index 100% rename from docs/zh-cn/stage-1/1.1-introduction-to-ai-ide/images/index-2026-01-09-11-00-57.png rename to docs/zh-cn/stage-1/introduction-to-ai-ide/images/index-2026-01-09-11-00-57.png diff --git a/docs/zh-cn/stage-1/1.1-introduction-to-ai-ide/images/index-2026-01-09-11-35-51.png b/docs/zh-cn/stage-1/introduction-to-ai-ide/images/index-2026-01-09-11-35-51.png similarity index 100% rename from docs/zh-cn/stage-1/1.1-introduction-to-ai-ide/images/index-2026-01-09-11-35-51.png rename to docs/zh-cn/stage-1/introduction-to-ai-ide/images/index-2026-01-09-11-35-51.png diff --git a/docs/zh-cn/stage-1/1.1-introduction-to-ai-ide/images/index-2026-02-12-14-14-51.png b/docs/zh-cn/stage-1/introduction-to-ai-ide/images/index-2026-02-12-14-14-51.png similarity index 100% rename from docs/zh-cn/stage-1/1.1-introduction-to-ai-ide/images/index-2026-02-12-14-14-51.png rename to docs/zh-cn/stage-1/introduction-to-ai-ide/images/index-2026-02-12-14-14-51.png diff --git a/docs/zh-cn/stage-1/1.1-introduction-to-ai-ide/images/index-2026-02-12-14-15-29.png b/docs/zh-cn/stage-1/introduction-to-ai-ide/images/index-2026-02-12-14-15-29.png similarity index 100% rename from docs/zh-cn/stage-1/1.1-introduction-to-ai-ide/images/index-2026-02-12-14-15-29.png rename to docs/zh-cn/stage-1/introduction-to-ai-ide/images/index-2026-02-12-14-15-29.png diff --git a/docs/zh-cn/stage-1/1.1-introduction-to-ai-ide/index.md b/docs/zh-cn/stage-1/introduction-to-ai-ide/index.md similarity index 99% rename from docs/zh-cn/stage-1/1.1-introduction-to-ai-ide/index.md rename to docs/zh-cn/stage-1/introduction-to-ai-ide/index.md index 93c7a25..b0153a2 100644 --- a/docs/zh-cn/stage-1/1.1-introduction-to-ai-ide/index.md +++ b/docs/zh-cn/stage-1/introduction-to-ai-ide/index.md @@ -8,7 +8,7 @@ import { relatedArticlesMap } from '@theme/data/relatedArticles' const duration = '约 1 天,可分多次完成' const relatedArticles = - relatedArticlesMap['zh-cn/stage-1/1.1-introduction-to-ai-ide'] ?? [] + relatedArticlesMap['zh-cn/stage-1/introduction-to-ai-ide'] ?? [] @@ -20,7 +20,7 @@ const relatedArticles = 学完这一章,你将会掌握和程序员相似的开发流程。 ::: tip 💡 进阶提示 -如果你有一定的编程基础,想要提前使用更强大的工具,可以结合参考 [现代 CLI Coding 工具](../../stage-2/backend/2.6-modern-cli/) 使用命令行方式进行开发。 +如果你有一定的编程基础,想要提前使用更强大的工具,可以结合参考 [现代 CLI Coding 工具](../../stage-2/backend/modern-cli/) 使用命令行方式进行开发。 ::: diff --git a/docs/zh-cn/stage-0/0.1-learning-map/index.md b/docs/zh-cn/stage-1/learning-map/index.md similarity index 99% rename from docs/zh-cn/stage-0/0.1-learning-map/index.md rename to docs/zh-cn/stage-1/learning-map/index.md index edf1a1e..d6261ac 100644 --- a/docs/zh-cn/stage-0/0.1-learning-map/index.md +++ b/docs/zh-cn/stage-1/learning-map/index.md @@ -6,7 +6,7 @@ description: '学习 AI 编程完整路线图:从零基础到全栈开发。 # 从创意到 AI 产品 diff --git a/docs/zh-cn/stage-2/ai-capabilities/2.1-dify-knowledge-base/Log in.yml b/docs/zh-cn/stage-2/ai-capabilities/dify-knowledge-base/Log in.yml similarity index 100% rename from docs/zh-cn/stage-2/ai-capabilities/2.1-dify-knowledge-base/Log in.yml rename to docs/zh-cn/stage-2/ai-capabilities/dify-knowledge-base/Log in.yml diff --git a/docs/zh-cn/stage-2/ai-capabilities/2.1-dify-knowledge-base/Love Loop.yml b/docs/zh-cn/stage-2/ai-capabilities/dify-knowledge-base/Love Loop.yml similarity index 100% rename from docs/zh-cn/stage-2/ai-capabilities/2.1-dify-knowledge-base/Love Loop.yml rename to docs/zh-cn/stage-2/ai-capabilities/dify-knowledge-base/Love Loop.yml diff --git a/docs/zh-cn/stage-2/ai-capabilities/2.1-dify-knowledge-base/images/image1.png b/docs/zh-cn/stage-2/ai-capabilities/dify-knowledge-base/images/image1.png similarity index 100% rename from docs/zh-cn/stage-2/ai-capabilities/2.1-dify-knowledge-base/images/image1.png rename to docs/zh-cn/stage-2/ai-capabilities/dify-knowledge-base/images/image1.png diff --git a/docs/zh-cn/stage-2/ai-capabilities/2.1-dify-knowledge-base/images/image10.png b/docs/zh-cn/stage-2/ai-capabilities/dify-knowledge-base/images/image10.png similarity index 100% rename from docs/zh-cn/stage-2/ai-capabilities/2.1-dify-knowledge-base/images/image10.png rename to docs/zh-cn/stage-2/ai-capabilities/dify-knowledge-base/images/image10.png diff --git a/docs/zh-cn/stage-2/ai-capabilities/2.1-dify-knowledge-base/images/image11.png b/docs/zh-cn/stage-2/ai-capabilities/dify-knowledge-base/images/image11.png similarity index 100% rename from docs/zh-cn/stage-2/ai-capabilities/2.1-dify-knowledge-base/images/image11.png rename to docs/zh-cn/stage-2/ai-capabilities/dify-knowledge-base/images/image11.png diff --git a/docs/zh-cn/stage-2/ai-capabilities/2.1-dify-knowledge-base/images/image12.png b/docs/zh-cn/stage-2/ai-capabilities/dify-knowledge-base/images/image12.png similarity index 100% rename from docs/zh-cn/stage-2/ai-capabilities/2.1-dify-knowledge-base/images/image12.png rename to docs/zh-cn/stage-2/ai-capabilities/dify-knowledge-base/images/image12.png diff --git a/docs/zh-cn/stage-2/ai-capabilities/2.1-dify-knowledge-base/images/image13.png b/docs/zh-cn/stage-2/ai-capabilities/dify-knowledge-base/images/image13.png similarity index 100% rename from docs/zh-cn/stage-2/ai-capabilities/2.1-dify-knowledge-base/images/image13.png rename to docs/zh-cn/stage-2/ai-capabilities/dify-knowledge-base/images/image13.png diff --git a/docs/zh-cn/stage-2/ai-capabilities/2.1-dify-knowledge-base/images/image14.png b/docs/zh-cn/stage-2/ai-capabilities/dify-knowledge-base/images/image14.png similarity index 100% rename from docs/zh-cn/stage-2/ai-capabilities/2.1-dify-knowledge-base/images/image14.png rename to docs/zh-cn/stage-2/ai-capabilities/dify-knowledge-base/images/image14.png diff --git a/docs/zh-cn/stage-2/ai-capabilities/2.1-dify-knowledge-base/images/image15.png b/docs/zh-cn/stage-2/ai-capabilities/dify-knowledge-base/images/image15.png similarity index 100% rename from docs/zh-cn/stage-2/ai-capabilities/2.1-dify-knowledge-base/images/image15.png rename to docs/zh-cn/stage-2/ai-capabilities/dify-knowledge-base/images/image15.png diff --git a/docs/zh-cn/stage-2/ai-capabilities/2.1-dify-knowledge-base/images/image16.png b/docs/zh-cn/stage-2/ai-capabilities/dify-knowledge-base/images/image16.png similarity index 100% rename from docs/zh-cn/stage-2/ai-capabilities/2.1-dify-knowledge-base/images/image16.png rename to docs/zh-cn/stage-2/ai-capabilities/dify-knowledge-base/images/image16.png diff --git a/docs/zh-cn/stage-2/ai-capabilities/2.1-dify-knowledge-base/images/image17.png b/docs/zh-cn/stage-2/ai-capabilities/dify-knowledge-base/images/image17.png similarity index 100% rename from docs/zh-cn/stage-2/ai-capabilities/2.1-dify-knowledge-base/images/image17.png rename to docs/zh-cn/stage-2/ai-capabilities/dify-knowledge-base/images/image17.png diff --git a/docs/zh-cn/stage-2/ai-capabilities/2.1-dify-knowledge-base/images/image18.png b/docs/zh-cn/stage-2/ai-capabilities/dify-knowledge-base/images/image18.png similarity index 100% rename from docs/zh-cn/stage-2/ai-capabilities/2.1-dify-knowledge-base/images/image18.png rename to docs/zh-cn/stage-2/ai-capabilities/dify-knowledge-base/images/image18.png diff --git a/docs/zh-cn/stage-2/ai-capabilities/2.1-dify-knowledge-base/images/image19.png b/docs/zh-cn/stage-2/ai-capabilities/dify-knowledge-base/images/image19.png similarity index 100% rename from docs/zh-cn/stage-2/ai-capabilities/2.1-dify-knowledge-base/images/image19.png rename to docs/zh-cn/stage-2/ai-capabilities/dify-knowledge-base/images/image19.png diff --git a/docs/zh-cn/stage-2/ai-capabilities/2.1-dify-knowledge-base/images/image2.png b/docs/zh-cn/stage-2/ai-capabilities/dify-knowledge-base/images/image2.png similarity index 100% rename from docs/zh-cn/stage-2/ai-capabilities/2.1-dify-knowledge-base/images/image2.png rename to docs/zh-cn/stage-2/ai-capabilities/dify-knowledge-base/images/image2.png diff --git a/docs/zh-cn/stage-2/ai-capabilities/2.1-dify-knowledge-base/images/image20.png b/docs/zh-cn/stage-2/ai-capabilities/dify-knowledge-base/images/image20.png similarity index 100% rename from docs/zh-cn/stage-2/ai-capabilities/2.1-dify-knowledge-base/images/image20.png rename to docs/zh-cn/stage-2/ai-capabilities/dify-knowledge-base/images/image20.png diff --git a/docs/zh-cn/stage-2/ai-capabilities/2.1-dify-knowledge-base/images/image21.png b/docs/zh-cn/stage-2/ai-capabilities/dify-knowledge-base/images/image21.png similarity index 100% rename from docs/zh-cn/stage-2/ai-capabilities/2.1-dify-knowledge-base/images/image21.png rename to docs/zh-cn/stage-2/ai-capabilities/dify-knowledge-base/images/image21.png diff --git a/docs/zh-cn/stage-2/ai-capabilities/2.1-dify-knowledge-base/images/image22.png b/docs/zh-cn/stage-2/ai-capabilities/dify-knowledge-base/images/image22.png similarity index 100% rename from docs/zh-cn/stage-2/ai-capabilities/2.1-dify-knowledge-base/images/image22.png rename to docs/zh-cn/stage-2/ai-capabilities/dify-knowledge-base/images/image22.png diff --git a/docs/zh-cn/stage-2/ai-capabilities/2.1-dify-knowledge-base/images/image23.png b/docs/zh-cn/stage-2/ai-capabilities/dify-knowledge-base/images/image23.png similarity index 100% rename from docs/zh-cn/stage-2/ai-capabilities/2.1-dify-knowledge-base/images/image23.png rename to docs/zh-cn/stage-2/ai-capabilities/dify-knowledge-base/images/image23.png diff --git a/docs/zh-cn/stage-2/ai-capabilities/2.1-dify-knowledge-base/images/image24.png b/docs/zh-cn/stage-2/ai-capabilities/dify-knowledge-base/images/image24.png similarity index 100% rename from docs/zh-cn/stage-2/ai-capabilities/2.1-dify-knowledge-base/images/image24.png rename to docs/zh-cn/stage-2/ai-capabilities/dify-knowledge-base/images/image24.png diff --git a/docs/zh-cn/stage-2/ai-capabilities/2.1-dify-knowledge-base/images/image25.png b/docs/zh-cn/stage-2/ai-capabilities/dify-knowledge-base/images/image25.png similarity index 100% rename from docs/zh-cn/stage-2/ai-capabilities/2.1-dify-knowledge-base/images/image25.png rename to docs/zh-cn/stage-2/ai-capabilities/dify-knowledge-base/images/image25.png diff --git a/docs/zh-cn/stage-2/ai-capabilities/2.1-dify-knowledge-base/images/image26.png b/docs/zh-cn/stage-2/ai-capabilities/dify-knowledge-base/images/image26.png similarity index 100% rename from docs/zh-cn/stage-2/ai-capabilities/2.1-dify-knowledge-base/images/image26.png rename to docs/zh-cn/stage-2/ai-capabilities/dify-knowledge-base/images/image26.png diff --git a/docs/zh-cn/stage-2/ai-capabilities/2.1-dify-knowledge-base/images/image27.png b/docs/zh-cn/stage-2/ai-capabilities/dify-knowledge-base/images/image27.png similarity index 100% rename from docs/zh-cn/stage-2/ai-capabilities/2.1-dify-knowledge-base/images/image27.png rename to docs/zh-cn/stage-2/ai-capabilities/dify-knowledge-base/images/image27.png diff --git a/docs/zh-cn/stage-2/ai-capabilities/2.1-dify-knowledge-base/images/image28.png b/docs/zh-cn/stage-2/ai-capabilities/dify-knowledge-base/images/image28.png similarity index 100% rename from docs/zh-cn/stage-2/ai-capabilities/2.1-dify-knowledge-base/images/image28.png rename to docs/zh-cn/stage-2/ai-capabilities/dify-knowledge-base/images/image28.png diff --git a/docs/zh-cn/stage-2/ai-capabilities/2.1-dify-knowledge-base/images/image29.png b/docs/zh-cn/stage-2/ai-capabilities/dify-knowledge-base/images/image29.png similarity index 100% rename from docs/zh-cn/stage-2/ai-capabilities/2.1-dify-knowledge-base/images/image29.png rename to docs/zh-cn/stage-2/ai-capabilities/dify-knowledge-base/images/image29.png diff --git a/docs/zh-cn/stage-2/ai-capabilities/2.1-dify-knowledge-base/images/image3.png b/docs/zh-cn/stage-2/ai-capabilities/dify-knowledge-base/images/image3.png similarity index 100% rename from docs/zh-cn/stage-2/ai-capabilities/2.1-dify-knowledge-base/images/image3.png rename to docs/zh-cn/stage-2/ai-capabilities/dify-knowledge-base/images/image3.png diff --git a/docs/zh-cn/stage-2/ai-capabilities/2.1-dify-knowledge-base/images/image30.png b/docs/zh-cn/stage-2/ai-capabilities/dify-knowledge-base/images/image30.png similarity index 100% rename from docs/zh-cn/stage-2/ai-capabilities/2.1-dify-knowledge-base/images/image30.png rename to docs/zh-cn/stage-2/ai-capabilities/dify-knowledge-base/images/image30.png diff --git a/docs/zh-cn/stage-2/ai-capabilities/2.1-dify-knowledge-base/images/image31.png b/docs/zh-cn/stage-2/ai-capabilities/dify-knowledge-base/images/image31.png similarity index 100% rename from docs/zh-cn/stage-2/ai-capabilities/2.1-dify-knowledge-base/images/image31.png rename to docs/zh-cn/stage-2/ai-capabilities/dify-knowledge-base/images/image31.png diff --git a/docs/zh-cn/stage-2/ai-capabilities/2.1-dify-knowledge-base/images/image32.png b/docs/zh-cn/stage-2/ai-capabilities/dify-knowledge-base/images/image32.png similarity index 100% rename from docs/zh-cn/stage-2/ai-capabilities/2.1-dify-knowledge-base/images/image32.png rename to docs/zh-cn/stage-2/ai-capabilities/dify-knowledge-base/images/image32.png diff --git a/docs/zh-cn/stage-2/ai-capabilities/2.1-dify-knowledge-base/images/image33.png b/docs/zh-cn/stage-2/ai-capabilities/dify-knowledge-base/images/image33.png similarity index 100% rename from docs/zh-cn/stage-2/ai-capabilities/2.1-dify-knowledge-base/images/image33.png rename to docs/zh-cn/stage-2/ai-capabilities/dify-knowledge-base/images/image33.png diff --git a/docs/zh-cn/stage-2/ai-capabilities/2.1-dify-knowledge-base/images/image34.png b/docs/zh-cn/stage-2/ai-capabilities/dify-knowledge-base/images/image34.png similarity index 100% rename from docs/zh-cn/stage-2/ai-capabilities/2.1-dify-knowledge-base/images/image34.png rename to docs/zh-cn/stage-2/ai-capabilities/dify-knowledge-base/images/image34.png diff --git a/docs/zh-cn/stage-2/ai-capabilities/2.1-dify-knowledge-base/images/image35.png b/docs/zh-cn/stage-2/ai-capabilities/dify-knowledge-base/images/image35.png similarity index 100% rename from docs/zh-cn/stage-2/ai-capabilities/2.1-dify-knowledge-base/images/image35.png rename to docs/zh-cn/stage-2/ai-capabilities/dify-knowledge-base/images/image35.png diff --git a/docs/zh-cn/stage-2/ai-capabilities/2.1-dify-knowledge-base/images/image36.png b/docs/zh-cn/stage-2/ai-capabilities/dify-knowledge-base/images/image36.png similarity index 100% rename from docs/zh-cn/stage-2/ai-capabilities/2.1-dify-knowledge-base/images/image36.png rename to docs/zh-cn/stage-2/ai-capabilities/dify-knowledge-base/images/image36.png diff --git a/docs/zh-cn/stage-2/ai-capabilities/2.1-dify-knowledge-base/images/image37.png b/docs/zh-cn/stage-2/ai-capabilities/dify-knowledge-base/images/image37.png similarity index 100% rename from docs/zh-cn/stage-2/ai-capabilities/2.1-dify-knowledge-base/images/image37.png rename to docs/zh-cn/stage-2/ai-capabilities/dify-knowledge-base/images/image37.png diff --git a/docs/zh-cn/stage-2/ai-capabilities/2.1-dify-knowledge-base/images/image38.png b/docs/zh-cn/stage-2/ai-capabilities/dify-knowledge-base/images/image38.png similarity index 100% rename from docs/zh-cn/stage-2/ai-capabilities/2.1-dify-knowledge-base/images/image38.png rename to docs/zh-cn/stage-2/ai-capabilities/dify-knowledge-base/images/image38.png diff --git a/docs/zh-cn/stage-2/ai-capabilities/2.1-dify-knowledge-base/images/image39.png b/docs/zh-cn/stage-2/ai-capabilities/dify-knowledge-base/images/image39.png similarity index 100% rename from docs/zh-cn/stage-2/ai-capabilities/2.1-dify-knowledge-base/images/image39.png rename to docs/zh-cn/stage-2/ai-capabilities/dify-knowledge-base/images/image39.png diff --git a/docs/zh-cn/stage-2/ai-capabilities/2.1-dify-knowledge-base/images/image4.png b/docs/zh-cn/stage-2/ai-capabilities/dify-knowledge-base/images/image4.png similarity index 100% rename from docs/zh-cn/stage-2/ai-capabilities/2.1-dify-knowledge-base/images/image4.png rename to docs/zh-cn/stage-2/ai-capabilities/dify-knowledge-base/images/image4.png diff --git a/docs/zh-cn/stage-2/ai-capabilities/2.1-dify-knowledge-base/images/image40.png b/docs/zh-cn/stage-2/ai-capabilities/dify-knowledge-base/images/image40.png similarity index 100% rename from docs/zh-cn/stage-2/ai-capabilities/2.1-dify-knowledge-base/images/image40.png rename to docs/zh-cn/stage-2/ai-capabilities/dify-knowledge-base/images/image40.png diff --git a/docs/zh-cn/stage-2/ai-capabilities/2.1-dify-knowledge-base/images/image41.png b/docs/zh-cn/stage-2/ai-capabilities/dify-knowledge-base/images/image41.png similarity index 100% rename from docs/zh-cn/stage-2/ai-capabilities/2.1-dify-knowledge-base/images/image41.png rename to docs/zh-cn/stage-2/ai-capabilities/dify-knowledge-base/images/image41.png diff --git a/docs/zh-cn/stage-2/ai-capabilities/2.1-dify-knowledge-base/images/image42.png b/docs/zh-cn/stage-2/ai-capabilities/dify-knowledge-base/images/image42.png similarity index 100% rename from docs/zh-cn/stage-2/ai-capabilities/2.1-dify-knowledge-base/images/image42.png rename to docs/zh-cn/stage-2/ai-capabilities/dify-knowledge-base/images/image42.png diff --git a/docs/zh-cn/stage-2/ai-capabilities/2.1-dify-knowledge-base/images/image43.png b/docs/zh-cn/stage-2/ai-capabilities/dify-knowledge-base/images/image43.png similarity index 100% rename from docs/zh-cn/stage-2/ai-capabilities/2.1-dify-knowledge-base/images/image43.png rename to docs/zh-cn/stage-2/ai-capabilities/dify-knowledge-base/images/image43.png diff --git a/docs/zh-cn/stage-2/ai-capabilities/2.1-dify-knowledge-base/images/image44.png b/docs/zh-cn/stage-2/ai-capabilities/dify-knowledge-base/images/image44.png similarity index 100% rename from docs/zh-cn/stage-2/ai-capabilities/2.1-dify-knowledge-base/images/image44.png rename to docs/zh-cn/stage-2/ai-capabilities/dify-knowledge-base/images/image44.png diff --git a/docs/zh-cn/stage-2/ai-capabilities/2.1-dify-knowledge-base/images/image45.png b/docs/zh-cn/stage-2/ai-capabilities/dify-knowledge-base/images/image45.png similarity index 100% rename from docs/zh-cn/stage-2/ai-capabilities/2.1-dify-knowledge-base/images/image45.png rename to docs/zh-cn/stage-2/ai-capabilities/dify-knowledge-base/images/image45.png diff --git a/docs/zh-cn/stage-2/ai-capabilities/2.1-dify-knowledge-base/images/image46.png b/docs/zh-cn/stage-2/ai-capabilities/dify-knowledge-base/images/image46.png similarity index 100% rename from docs/zh-cn/stage-2/ai-capabilities/2.1-dify-knowledge-base/images/image46.png rename to docs/zh-cn/stage-2/ai-capabilities/dify-knowledge-base/images/image46.png diff --git a/docs/zh-cn/stage-2/ai-capabilities/2.1-dify-knowledge-base/images/image47.png b/docs/zh-cn/stage-2/ai-capabilities/dify-knowledge-base/images/image47.png similarity index 100% rename from docs/zh-cn/stage-2/ai-capabilities/2.1-dify-knowledge-base/images/image47.png rename to docs/zh-cn/stage-2/ai-capabilities/dify-knowledge-base/images/image47.png diff --git a/docs/zh-cn/stage-2/ai-capabilities/2.1-dify-knowledge-base/images/image48.png b/docs/zh-cn/stage-2/ai-capabilities/dify-knowledge-base/images/image48.png similarity index 100% rename from docs/zh-cn/stage-2/ai-capabilities/2.1-dify-knowledge-base/images/image48.png rename to docs/zh-cn/stage-2/ai-capabilities/dify-knowledge-base/images/image48.png diff --git a/docs/zh-cn/stage-2/ai-capabilities/2.1-dify-knowledge-base/images/image49.png b/docs/zh-cn/stage-2/ai-capabilities/dify-knowledge-base/images/image49.png similarity index 100% rename from docs/zh-cn/stage-2/ai-capabilities/2.1-dify-knowledge-base/images/image49.png rename to docs/zh-cn/stage-2/ai-capabilities/dify-knowledge-base/images/image49.png diff --git a/docs/zh-cn/stage-2/ai-capabilities/2.1-dify-knowledge-base/images/image5.png b/docs/zh-cn/stage-2/ai-capabilities/dify-knowledge-base/images/image5.png similarity index 100% rename from docs/zh-cn/stage-2/ai-capabilities/2.1-dify-knowledge-base/images/image5.png rename to docs/zh-cn/stage-2/ai-capabilities/dify-knowledge-base/images/image5.png diff --git a/docs/zh-cn/stage-2/ai-capabilities/2.1-dify-knowledge-base/images/image50.png b/docs/zh-cn/stage-2/ai-capabilities/dify-knowledge-base/images/image50.png similarity index 100% rename from docs/zh-cn/stage-2/ai-capabilities/2.1-dify-knowledge-base/images/image50.png rename to docs/zh-cn/stage-2/ai-capabilities/dify-knowledge-base/images/image50.png diff --git a/docs/zh-cn/stage-2/ai-capabilities/2.1-dify-knowledge-base/images/image51.png b/docs/zh-cn/stage-2/ai-capabilities/dify-knowledge-base/images/image51.png similarity index 100% rename from docs/zh-cn/stage-2/ai-capabilities/2.1-dify-knowledge-base/images/image51.png rename to docs/zh-cn/stage-2/ai-capabilities/dify-knowledge-base/images/image51.png diff --git a/docs/zh-cn/stage-2/ai-capabilities/2.1-dify-knowledge-base/images/image52.png b/docs/zh-cn/stage-2/ai-capabilities/dify-knowledge-base/images/image52.png similarity index 100% rename from docs/zh-cn/stage-2/ai-capabilities/2.1-dify-knowledge-base/images/image52.png rename to docs/zh-cn/stage-2/ai-capabilities/dify-knowledge-base/images/image52.png diff --git a/docs/zh-cn/stage-2/ai-capabilities/2.1-dify-knowledge-base/images/image53.png b/docs/zh-cn/stage-2/ai-capabilities/dify-knowledge-base/images/image53.png similarity index 100% rename from docs/zh-cn/stage-2/ai-capabilities/2.1-dify-knowledge-base/images/image53.png rename to docs/zh-cn/stage-2/ai-capabilities/dify-knowledge-base/images/image53.png diff --git a/docs/zh-cn/stage-2/ai-capabilities/2.1-dify-knowledge-base/images/image54.png b/docs/zh-cn/stage-2/ai-capabilities/dify-knowledge-base/images/image54.png similarity index 100% rename from docs/zh-cn/stage-2/ai-capabilities/2.1-dify-knowledge-base/images/image54.png rename to docs/zh-cn/stage-2/ai-capabilities/dify-knowledge-base/images/image54.png diff --git a/docs/zh-cn/stage-2/ai-capabilities/2.1-dify-knowledge-base/images/image55.png b/docs/zh-cn/stage-2/ai-capabilities/dify-knowledge-base/images/image55.png similarity index 100% rename from docs/zh-cn/stage-2/ai-capabilities/2.1-dify-knowledge-base/images/image55.png rename to docs/zh-cn/stage-2/ai-capabilities/dify-knowledge-base/images/image55.png diff --git a/docs/zh-cn/stage-2/ai-capabilities/2.1-dify-knowledge-base/images/image56.png b/docs/zh-cn/stage-2/ai-capabilities/dify-knowledge-base/images/image56.png similarity index 100% rename from docs/zh-cn/stage-2/ai-capabilities/2.1-dify-knowledge-base/images/image56.png rename to docs/zh-cn/stage-2/ai-capabilities/dify-knowledge-base/images/image56.png diff --git a/docs/zh-cn/stage-2/ai-capabilities/2.1-dify-knowledge-base/images/image57.png b/docs/zh-cn/stage-2/ai-capabilities/dify-knowledge-base/images/image57.png similarity index 100% rename from docs/zh-cn/stage-2/ai-capabilities/2.1-dify-knowledge-base/images/image57.png rename to docs/zh-cn/stage-2/ai-capabilities/dify-knowledge-base/images/image57.png diff --git a/docs/zh-cn/stage-2/ai-capabilities/2.1-dify-knowledge-base/images/image58.png b/docs/zh-cn/stage-2/ai-capabilities/dify-knowledge-base/images/image58.png similarity index 100% rename from docs/zh-cn/stage-2/ai-capabilities/2.1-dify-knowledge-base/images/image58.png rename to docs/zh-cn/stage-2/ai-capabilities/dify-knowledge-base/images/image58.png diff --git a/docs/zh-cn/stage-2/ai-capabilities/2.1-dify-knowledge-base/images/image59.png b/docs/zh-cn/stage-2/ai-capabilities/dify-knowledge-base/images/image59.png similarity index 100% rename from docs/zh-cn/stage-2/ai-capabilities/2.1-dify-knowledge-base/images/image59.png rename to docs/zh-cn/stage-2/ai-capabilities/dify-knowledge-base/images/image59.png diff --git a/docs/zh-cn/stage-2/ai-capabilities/2.1-dify-knowledge-base/images/image6.png b/docs/zh-cn/stage-2/ai-capabilities/dify-knowledge-base/images/image6.png similarity index 100% rename from docs/zh-cn/stage-2/ai-capabilities/2.1-dify-knowledge-base/images/image6.png rename to docs/zh-cn/stage-2/ai-capabilities/dify-knowledge-base/images/image6.png diff --git a/docs/zh-cn/stage-2/ai-capabilities/2.1-dify-knowledge-base/images/image60.png b/docs/zh-cn/stage-2/ai-capabilities/dify-knowledge-base/images/image60.png similarity index 100% rename from docs/zh-cn/stage-2/ai-capabilities/2.1-dify-knowledge-base/images/image60.png rename to docs/zh-cn/stage-2/ai-capabilities/dify-knowledge-base/images/image60.png diff --git a/docs/zh-cn/stage-2/ai-capabilities/2.1-dify-knowledge-base/images/image61.png b/docs/zh-cn/stage-2/ai-capabilities/dify-knowledge-base/images/image61.png similarity index 100% rename from docs/zh-cn/stage-2/ai-capabilities/2.1-dify-knowledge-base/images/image61.png rename to docs/zh-cn/stage-2/ai-capabilities/dify-knowledge-base/images/image61.png diff --git a/docs/zh-cn/stage-2/ai-capabilities/2.1-dify-knowledge-base/images/image62.png b/docs/zh-cn/stage-2/ai-capabilities/dify-knowledge-base/images/image62.png similarity index 100% rename from docs/zh-cn/stage-2/ai-capabilities/2.1-dify-knowledge-base/images/image62.png rename to docs/zh-cn/stage-2/ai-capabilities/dify-knowledge-base/images/image62.png diff --git a/docs/zh-cn/stage-2/ai-capabilities/2.1-dify-knowledge-base/images/image63.png b/docs/zh-cn/stage-2/ai-capabilities/dify-knowledge-base/images/image63.png similarity index 100% rename from docs/zh-cn/stage-2/ai-capabilities/2.1-dify-knowledge-base/images/image63.png rename to docs/zh-cn/stage-2/ai-capabilities/dify-knowledge-base/images/image63.png diff --git a/docs/zh-cn/stage-2/ai-capabilities/2.1-dify-knowledge-base/images/image64.png b/docs/zh-cn/stage-2/ai-capabilities/dify-knowledge-base/images/image64.png similarity index 100% rename from docs/zh-cn/stage-2/ai-capabilities/2.1-dify-knowledge-base/images/image64.png rename to docs/zh-cn/stage-2/ai-capabilities/dify-knowledge-base/images/image64.png diff --git a/docs/zh-cn/stage-2/ai-capabilities/2.1-dify-knowledge-base/images/image65.png b/docs/zh-cn/stage-2/ai-capabilities/dify-knowledge-base/images/image65.png similarity index 100% rename from docs/zh-cn/stage-2/ai-capabilities/2.1-dify-knowledge-base/images/image65.png rename to docs/zh-cn/stage-2/ai-capabilities/dify-knowledge-base/images/image65.png diff --git a/docs/zh-cn/stage-2/ai-capabilities/2.1-dify-knowledge-base/images/image66.png b/docs/zh-cn/stage-2/ai-capabilities/dify-knowledge-base/images/image66.png similarity index 100% rename from docs/zh-cn/stage-2/ai-capabilities/2.1-dify-knowledge-base/images/image66.png rename to docs/zh-cn/stage-2/ai-capabilities/dify-knowledge-base/images/image66.png diff --git a/docs/zh-cn/stage-2/ai-capabilities/2.1-dify-knowledge-base/images/image67.png b/docs/zh-cn/stage-2/ai-capabilities/dify-knowledge-base/images/image67.png similarity index 100% rename from docs/zh-cn/stage-2/ai-capabilities/2.1-dify-knowledge-base/images/image67.png rename to docs/zh-cn/stage-2/ai-capabilities/dify-knowledge-base/images/image67.png diff --git a/docs/zh-cn/stage-2/ai-capabilities/2.1-dify-knowledge-base/images/image68.png b/docs/zh-cn/stage-2/ai-capabilities/dify-knowledge-base/images/image68.png similarity index 100% rename from docs/zh-cn/stage-2/ai-capabilities/2.1-dify-knowledge-base/images/image68.png rename to docs/zh-cn/stage-2/ai-capabilities/dify-knowledge-base/images/image68.png diff --git a/docs/zh-cn/stage-2/ai-capabilities/2.1-dify-knowledge-base/images/image69.png b/docs/zh-cn/stage-2/ai-capabilities/dify-knowledge-base/images/image69.png similarity index 100% rename from docs/zh-cn/stage-2/ai-capabilities/2.1-dify-knowledge-base/images/image69.png rename to docs/zh-cn/stage-2/ai-capabilities/dify-knowledge-base/images/image69.png diff --git a/docs/zh-cn/stage-2/ai-capabilities/2.1-dify-knowledge-base/images/image7.png b/docs/zh-cn/stage-2/ai-capabilities/dify-knowledge-base/images/image7.png similarity index 100% rename from docs/zh-cn/stage-2/ai-capabilities/2.1-dify-knowledge-base/images/image7.png rename to docs/zh-cn/stage-2/ai-capabilities/dify-knowledge-base/images/image7.png diff --git a/docs/zh-cn/stage-2/ai-capabilities/2.1-dify-knowledge-base/images/image70.png b/docs/zh-cn/stage-2/ai-capabilities/dify-knowledge-base/images/image70.png similarity index 100% rename from docs/zh-cn/stage-2/ai-capabilities/2.1-dify-knowledge-base/images/image70.png rename to docs/zh-cn/stage-2/ai-capabilities/dify-knowledge-base/images/image70.png diff --git a/docs/zh-cn/stage-2/ai-capabilities/2.1-dify-knowledge-base/images/image71.png b/docs/zh-cn/stage-2/ai-capabilities/dify-knowledge-base/images/image71.png similarity index 100% rename from docs/zh-cn/stage-2/ai-capabilities/2.1-dify-knowledge-base/images/image71.png rename to docs/zh-cn/stage-2/ai-capabilities/dify-knowledge-base/images/image71.png diff --git a/docs/zh-cn/stage-2/ai-capabilities/2.1-dify-knowledge-base/images/image72.png b/docs/zh-cn/stage-2/ai-capabilities/dify-knowledge-base/images/image72.png similarity index 100% rename from docs/zh-cn/stage-2/ai-capabilities/2.1-dify-knowledge-base/images/image72.png rename to docs/zh-cn/stage-2/ai-capabilities/dify-knowledge-base/images/image72.png diff --git a/docs/zh-cn/stage-2/ai-capabilities/2.1-dify-knowledge-base/images/image73.png b/docs/zh-cn/stage-2/ai-capabilities/dify-knowledge-base/images/image73.png similarity index 100% rename from docs/zh-cn/stage-2/ai-capabilities/2.1-dify-knowledge-base/images/image73.png rename to docs/zh-cn/stage-2/ai-capabilities/dify-knowledge-base/images/image73.png diff --git a/docs/zh-cn/stage-2/ai-capabilities/2.1-dify-knowledge-base/images/image74.png b/docs/zh-cn/stage-2/ai-capabilities/dify-knowledge-base/images/image74.png similarity index 100% rename from docs/zh-cn/stage-2/ai-capabilities/2.1-dify-knowledge-base/images/image74.png rename to docs/zh-cn/stage-2/ai-capabilities/dify-knowledge-base/images/image74.png diff --git a/docs/zh-cn/stage-2/ai-capabilities/2.1-dify-knowledge-base/images/image75.png b/docs/zh-cn/stage-2/ai-capabilities/dify-knowledge-base/images/image75.png similarity index 100% rename from docs/zh-cn/stage-2/ai-capabilities/2.1-dify-knowledge-base/images/image75.png rename to docs/zh-cn/stage-2/ai-capabilities/dify-knowledge-base/images/image75.png diff --git a/docs/zh-cn/stage-2/ai-capabilities/2.1-dify-knowledge-base/images/image76.png b/docs/zh-cn/stage-2/ai-capabilities/dify-knowledge-base/images/image76.png similarity index 100% rename from docs/zh-cn/stage-2/ai-capabilities/2.1-dify-knowledge-base/images/image76.png rename to docs/zh-cn/stage-2/ai-capabilities/dify-knowledge-base/images/image76.png diff --git a/docs/zh-cn/stage-2/ai-capabilities/2.1-dify-knowledge-base/images/image77.png b/docs/zh-cn/stage-2/ai-capabilities/dify-knowledge-base/images/image77.png similarity index 100% rename from docs/zh-cn/stage-2/ai-capabilities/2.1-dify-knowledge-base/images/image77.png rename to docs/zh-cn/stage-2/ai-capabilities/dify-knowledge-base/images/image77.png diff --git a/docs/zh-cn/stage-2/ai-capabilities/2.1-dify-knowledge-base/images/image78.png b/docs/zh-cn/stage-2/ai-capabilities/dify-knowledge-base/images/image78.png similarity index 100% rename from docs/zh-cn/stage-2/ai-capabilities/2.1-dify-knowledge-base/images/image78.png rename to docs/zh-cn/stage-2/ai-capabilities/dify-knowledge-base/images/image78.png diff --git a/docs/zh-cn/stage-2/ai-capabilities/2.1-dify-knowledge-base/images/image79.png b/docs/zh-cn/stage-2/ai-capabilities/dify-knowledge-base/images/image79.png similarity index 100% rename from docs/zh-cn/stage-2/ai-capabilities/2.1-dify-knowledge-base/images/image79.png rename to docs/zh-cn/stage-2/ai-capabilities/dify-knowledge-base/images/image79.png diff --git a/docs/zh-cn/stage-2/ai-capabilities/2.1-dify-knowledge-base/images/image8.png b/docs/zh-cn/stage-2/ai-capabilities/dify-knowledge-base/images/image8.png similarity index 100% rename from docs/zh-cn/stage-2/ai-capabilities/2.1-dify-knowledge-base/images/image8.png rename to docs/zh-cn/stage-2/ai-capabilities/dify-knowledge-base/images/image8.png diff --git a/docs/zh-cn/stage-2/ai-capabilities/2.1-dify-knowledge-base/images/image80.png b/docs/zh-cn/stage-2/ai-capabilities/dify-knowledge-base/images/image80.png similarity index 100% rename from docs/zh-cn/stage-2/ai-capabilities/2.1-dify-knowledge-base/images/image80.png rename to docs/zh-cn/stage-2/ai-capabilities/dify-knowledge-base/images/image80.png diff --git a/docs/zh-cn/stage-2/ai-capabilities/2.1-dify-knowledge-base/images/image81.png b/docs/zh-cn/stage-2/ai-capabilities/dify-knowledge-base/images/image81.png similarity index 100% rename from docs/zh-cn/stage-2/ai-capabilities/2.1-dify-knowledge-base/images/image81.png rename to docs/zh-cn/stage-2/ai-capabilities/dify-knowledge-base/images/image81.png diff --git a/docs/zh-cn/stage-2/ai-capabilities/2.1-dify-knowledge-base/images/image82.png b/docs/zh-cn/stage-2/ai-capabilities/dify-knowledge-base/images/image82.png similarity index 100% rename from docs/zh-cn/stage-2/ai-capabilities/2.1-dify-knowledge-base/images/image82.png rename to docs/zh-cn/stage-2/ai-capabilities/dify-knowledge-base/images/image82.png diff --git a/docs/zh-cn/stage-2/ai-capabilities/2.1-dify-knowledge-base/images/image83.png b/docs/zh-cn/stage-2/ai-capabilities/dify-knowledge-base/images/image83.png similarity index 100% rename from docs/zh-cn/stage-2/ai-capabilities/2.1-dify-knowledge-base/images/image83.png rename to docs/zh-cn/stage-2/ai-capabilities/dify-knowledge-base/images/image83.png diff --git a/docs/zh-cn/stage-2/ai-capabilities/2.1-dify-knowledge-base/images/image84.png b/docs/zh-cn/stage-2/ai-capabilities/dify-knowledge-base/images/image84.png similarity index 100% rename from docs/zh-cn/stage-2/ai-capabilities/2.1-dify-knowledge-base/images/image84.png rename to docs/zh-cn/stage-2/ai-capabilities/dify-knowledge-base/images/image84.png diff --git a/docs/zh-cn/stage-2/ai-capabilities/2.1-dify-knowledge-base/images/image85.png b/docs/zh-cn/stage-2/ai-capabilities/dify-knowledge-base/images/image85.png similarity index 100% rename from docs/zh-cn/stage-2/ai-capabilities/2.1-dify-knowledge-base/images/image85.png rename to docs/zh-cn/stage-2/ai-capabilities/dify-knowledge-base/images/image85.png diff --git a/docs/zh-cn/stage-2/ai-capabilities/2.1-dify-knowledge-base/images/image86.png b/docs/zh-cn/stage-2/ai-capabilities/dify-knowledge-base/images/image86.png similarity index 100% rename from docs/zh-cn/stage-2/ai-capabilities/2.1-dify-knowledge-base/images/image86.png rename to docs/zh-cn/stage-2/ai-capabilities/dify-knowledge-base/images/image86.png diff --git a/docs/zh-cn/stage-2/ai-capabilities/2.1-dify-knowledge-base/images/image87.png b/docs/zh-cn/stage-2/ai-capabilities/dify-knowledge-base/images/image87.png similarity index 100% rename from docs/zh-cn/stage-2/ai-capabilities/2.1-dify-knowledge-base/images/image87.png rename to docs/zh-cn/stage-2/ai-capabilities/dify-knowledge-base/images/image87.png diff --git a/docs/zh-cn/stage-2/ai-capabilities/2.1-dify-knowledge-base/images/image88.png b/docs/zh-cn/stage-2/ai-capabilities/dify-knowledge-base/images/image88.png similarity index 100% rename from docs/zh-cn/stage-2/ai-capabilities/2.1-dify-knowledge-base/images/image88.png rename to docs/zh-cn/stage-2/ai-capabilities/dify-knowledge-base/images/image88.png diff --git a/docs/zh-cn/stage-2/ai-capabilities/2.1-dify-knowledge-base/images/image89.png b/docs/zh-cn/stage-2/ai-capabilities/dify-knowledge-base/images/image89.png similarity index 100% rename from docs/zh-cn/stage-2/ai-capabilities/2.1-dify-knowledge-base/images/image89.png rename to docs/zh-cn/stage-2/ai-capabilities/dify-knowledge-base/images/image89.png diff --git a/docs/zh-cn/stage-2/ai-capabilities/2.1-dify-knowledge-base/images/image9.png b/docs/zh-cn/stage-2/ai-capabilities/dify-knowledge-base/images/image9.png similarity index 100% rename from docs/zh-cn/stage-2/ai-capabilities/2.1-dify-knowledge-base/images/image9.png rename to docs/zh-cn/stage-2/ai-capabilities/dify-knowledge-base/images/image9.png diff --git a/docs/zh-cn/stage-2/ai-capabilities/2.1-dify-knowledge-base/images/image90.png b/docs/zh-cn/stage-2/ai-capabilities/dify-knowledge-base/images/image90.png similarity index 100% rename from docs/zh-cn/stage-2/ai-capabilities/2.1-dify-knowledge-base/images/image90.png rename to docs/zh-cn/stage-2/ai-capabilities/dify-knowledge-base/images/image90.png diff --git a/docs/zh-cn/stage-2/ai-capabilities/2.1-dify-knowledge-base/images/image91.png b/docs/zh-cn/stage-2/ai-capabilities/dify-knowledge-base/images/image91.png similarity index 100% rename from docs/zh-cn/stage-2/ai-capabilities/2.1-dify-knowledge-base/images/image91.png rename to docs/zh-cn/stage-2/ai-capabilities/dify-knowledge-base/images/image91.png diff --git a/docs/zh-cn/stage-2/ai-capabilities/2.1-dify-knowledge-base/images/image92.png b/docs/zh-cn/stage-2/ai-capabilities/dify-knowledge-base/images/image92.png similarity index 100% rename from docs/zh-cn/stage-2/ai-capabilities/2.1-dify-knowledge-base/images/image92.png rename to docs/zh-cn/stage-2/ai-capabilities/dify-knowledge-base/images/image92.png diff --git a/docs/zh-cn/stage-2/ai-capabilities/2.1-dify-knowledge-base/images/image93.png b/docs/zh-cn/stage-2/ai-capabilities/dify-knowledge-base/images/image93.png similarity index 100% rename from docs/zh-cn/stage-2/ai-capabilities/2.1-dify-knowledge-base/images/image93.png rename to docs/zh-cn/stage-2/ai-capabilities/dify-knowledge-base/images/image93.png diff --git a/docs/zh-cn/stage-2/ai-capabilities/2.1-dify-knowledge-base/images/image94.png b/docs/zh-cn/stage-2/ai-capabilities/dify-knowledge-base/images/image94.png similarity index 100% rename from docs/zh-cn/stage-2/ai-capabilities/2.1-dify-knowledge-base/images/image94.png rename to docs/zh-cn/stage-2/ai-capabilities/dify-knowledge-base/images/image94.png diff --git a/docs/zh-cn/stage-2/ai-capabilities/2.1-dify-knowledge-base/images/image95.png b/docs/zh-cn/stage-2/ai-capabilities/dify-knowledge-base/images/image95.png similarity index 100% rename from docs/zh-cn/stage-2/ai-capabilities/2.1-dify-knowledge-base/images/image95.png rename to docs/zh-cn/stage-2/ai-capabilities/dify-knowledge-base/images/image95.png diff --git a/docs/zh-cn/stage-2/ai-capabilities/2.1-dify-knowledge-base/images/image96.png b/docs/zh-cn/stage-2/ai-capabilities/dify-knowledge-base/images/image96.png similarity index 100% rename from docs/zh-cn/stage-2/ai-capabilities/2.1-dify-knowledge-base/images/image96.png rename to docs/zh-cn/stage-2/ai-capabilities/dify-knowledge-base/images/image96.png diff --git a/docs/zh-cn/stage-2/ai-capabilities/2.1-dify-knowledge-base/images/image97.png b/docs/zh-cn/stage-2/ai-capabilities/dify-knowledge-base/images/image97.png similarity index 100% rename from docs/zh-cn/stage-2/ai-capabilities/2.1-dify-knowledge-base/images/image97.png rename to docs/zh-cn/stage-2/ai-capabilities/dify-knowledge-base/images/image97.png diff --git a/docs/zh-cn/stage-2/ai-capabilities/2.1-dify-knowledge-base/images/image98.png b/docs/zh-cn/stage-2/ai-capabilities/dify-knowledge-base/images/image98.png similarity index 100% rename from docs/zh-cn/stage-2/ai-capabilities/2.1-dify-knowledge-base/images/image98.png rename to docs/zh-cn/stage-2/ai-capabilities/dify-knowledge-base/images/image98.png diff --git a/docs/zh-cn/stage-2/ai-capabilities/2.1-dify-knowledge-base/index.md b/docs/zh-cn/stage-2/ai-capabilities/dify-knowledge-base/index.md similarity index 99% rename from docs/zh-cn/stage-2/ai-capabilities/2.1-dify-knowledge-base/index.md rename to docs/zh-cn/stage-2/ai-capabilities/dify-knowledge-base/index.md index c8d9363..cd9b9af 100644 --- a/docs/zh-cn/stage-2/ai-capabilities/2.1-dify-knowledge-base/index.md +++ b/docs/zh-cn/stage-2/ai-capabilities/dify-knowledge-base/index.md @@ -210,7 +210,7 @@ Dify 是一个用于开发 LLM 应用的开源平台。它提供了直观的界 本部分内容原本安排在后续课程中详细介绍,但考虑到当前部分学习者可能因网络限制暂时无法访问 Dify 官方网站或云端服务,我们决定提前提供这一可选的学习路径,帮助你顺利推进课程进度。 -你需要参考该教程入门 web 部署平台的基本使用方式:[如何部署 Web 应用](/zh-cn/stage-2/backend/2.5-zeabur-deployment/) +你需要参考该教程入门 web 部署平台的基本使用方式:[如何部署 Web 应用](/zh-cn/stage-2/backend/zeabur-deployment/) ![](images/image13.png) diff --git a/docs/zh-cn/stage-2/assignments/copywriting-platform-supabase/index.md b/docs/zh-cn/stage-2/assignments/copywriting-platform-supabase/index.md index 6cd179c..4e7f425 100644 --- a/docs/zh-cn/stage-2/assignments/copywriting-platform-supabase/index.md +++ b/docs/zh-cn/stage-2/assignments/copywriting-platform-supabase/index.md @@ -10,11 +10,11 @@ 在开始本项目之前,你应该已经掌握以下内容: -- 前端页面设计与组件库使用([UI 设计](../../frontend/2.2-ui-design/)、[现代组件库](../../frontend/2.7-modern-component-library/)) -- 后端接口设计与开发([接口代码编写](../../backend/2.3-ai-interface-code/)) -- 数据库基础与 Supabase([从数据库到 Supabase](../../backend/2.2-database-supabase/)) -- 支付集成([Stripe 收费系统](../../backend/2.7-stripe-payment/)) -- Git 工作流与部署([Git 和 GitHub](../../backend/2.4-git-workflow/)、[部署 Web 应用](../../backend/2.5-zeabur-deployment/)) +- 前端页面设计与组件库使用([UI 设计](../../frontend/ui-design/)、[现代组件库](../../frontend/modern-component-library/)) +- 后端接口设计与开发([接口代码编写](../../backend/ai-interface-code/)) +- 数据库基础与 Supabase([从数据库到 Supabase](../../backend/database-supabase/)) +- 支付集成([Stripe 收费系统](../../backend/stripe-payment/)) +- Git 工作流与部署([Git 和 GitHub](../../backend/git-workflow/)、[部署 Web 应用](../../backend/zeabur-deployment/)) ## 学习目标 @@ -149,11 +149,11 @@ flowchart TD 如果你在前端搭建阶段卡住,可以回顾这些章节: -- [UI 设计](../../frontend/2.2-ui-design/) -- [参考 UI 设计规范设计页面和按钮](../../frontend/2.3-multi-product-ui/) -- [用 LLM 和 Skills 让界面变好看](../../frontend/2.4-llm-skills-beautiful/) -- [从设计原型到项目代码](../../frontend/2.6-design-to-code/) -- [使用现代组件库更新你的界面](../../frontend/2.7-modern-component-library/) +- [UI 设计](../../frontend/ui-design/) +- [参考 UI 设计规范设计页面和按钮](../../frontend/multi-product-ui/) +- [用 LLM 和 Skills 让界面变好看](../../frontend/llm-skills-beautiful/) +- [从设计原型到项目代码](../../frontend/design-to-code/) +- [使用现代组件库更新你的界面](../../frontend/modern-component-library/) ## 第三部分:后端集成 @@ -254,9 +254,9 @@ flowchart TD 如果你在后端开发阶段卡住,可以回顾这些章节: -- [从数据库到 Supabase](../../backend/2.2-database-supabase/) -- [大模型辅助编写接口代码与接口文档](../../backend/2.3-ai-interface-code/) -- [如何集成 Stripe 等收费系统](../../backend/2.7-stripe-payment/) +- [从数据库到 Supabase](../../backend/database-supabase/) +- [大模型辅助编写接口代码与接口文档](../../backend/ai-interface-code/) +- [如何集成 Stripe 等收费系统](../../backend/stripe-payment/) ## 第四部分:联调与上线 @@ -287,7 +287,7 @@ flowchart TD ### 4.2 部署 -将项目部署到公网环境。部署教程参考:[Git 和 GitHub 工作流](../../backend/2.4-git-workflow/)、[如何部署 Web 应用](../../backend/2.5-zeabur-deployment/)。 +将项目部署到公网环境。部署教程参考:[Git 和 GitHub 工作流](../../backend/git-workflow/)、[如何部署 Web 应用](../../backend/zeabur-deployment/)。 ## 交付物 @@ -334,13 +334,13 @@ README 至少包含:项目简介、核心页面说明、技术栈、本地启 ## 参考资料 -- [UI 设计](../../frontend/2.2-ui-design/) -- [参考 UI 设计规范设计页面和按钮](../../frontend/2.3-multi-product-ui/) -- [用 LLM 和 Skills 让界面变好看](../../frontend/2.4-llm-skills-beautiful/) -- [从设计原型到项目代码](../../frontend/2.6-design-to-code/) -- [使用现代组件库更新你的界面](../../frontend/2.7-modern-component-library/) -- [从数据库到 Supabase](../../backend/2.2-database-supabase/) -- [大模型辅助编写接口代码与接口文档](../../backend/2.3-ai-interface-code/) -- [Git 和 GitHub 工作流](../../backend/2.4-git-workflow/) -- [如何部署 Web 应用](../../backend/2.5-zeabur-deployment/) -- [如何集成 Stripe 等收费系统](../../backend/2.7-stripe-payment/) +- [UI 设计](../../frontend/ui-design/) +- [参考 UI 设计规范设计页面和按钮](../../frontend/multi-product-ui/) +- [用 LLM 和 Skills 让界面变好看](../../frontend/llm-skills-beautiful/) +- [从设计原型到项目代码](../../frontend/design-to-code/) +- [使用现代组件库更新你的界面](../../frontend/modern-component-library/) +- [从数据库到 Supabase](../../backend/database-supabase/) +- [大模型辅助编写接口代码与接口文档](../../backend/ai-interface-code/) +- [Git 和 GitHub 工作流](../../backend/git-workflow/) +- [如何部署 Web 应用](../../backend/zeabur-deployment/) +- [如何集成 Stripe 等收费系统](../../backend/stripe-payment/) diff --git a/docs/zh-cn/stage-2/assignments/custom-dify-agent-platform/index.md b/docs/zh-cn/stage-2/assignments/custom-dify-agent-platform/index.md index 6906dce..fa0f760 100644 --- a/docs/zh-cn/stage-2/assignments/custom-dify-agent-platform/index.md +++ b/docs/zh-cn/stage-2/assignments/custom-dify-agent-platform/index.md @@ -10,10 +10,10 @@ 在开始本项目之前,你应该已经掌握以下内容: -- 前端页面设计与组件库使用([UI 设计](../../frontend/2.2-ui-design/)、[现代组件库](../../frontend/2.7-modern-component-library/)) -- 后端接口设计与开发([接口代码编写](../../backend/2.3-ai-interface-code/)) -- 数据库基础与 Supabase([从数据库到 Supabase](../../backend/2.2-database-supabase/)) -- Git 工作流与部署([Git 和 GitHub](../../backend/2.4-git-workflow/)、[部署 Web 应用](../../backend/2.5-zeabur-deployment/)) +- 前端页面设计与组件库使用([UI 设计](../../frontend/ui-design/)、[现代组件库](../../frontend/modern-component-library/)) +- 后端接口设计与开发([接口代码编写](../../backend/ai-interface-code/)) +- 数据库基础与 Supabase([从数据库到 Supabase](../../backend/database-supabase/)) +- Git 工作流与部署([Git 和 GitHub](../../backend/git-workflow/)、[部署 Web 应用](../../backend/zeabur-deployment/)) ## 学习目标 @@ -160,7 +160,7 @@ flowchart TD ### 4.2 部署 -将项目部署到公网环境。部署教程参考:[Git 和 GitHub 工作流](../../backend/2.4-git-workflow/)、[如何部署 Web 应用](../../backend/2.5-zeabur-deployment/)。 +将项目部署到公网环境。部署教程参考:[Git 和 GitHub 工作流](../../backend/git-workflow/)、[如何部署 Web 应用](../../backend/zeabur-deployment/)。 ## 交付物 @@ -202,9 +202,9 @@ README 至少包含:项目简介、架构说明、技术栈、本地启动步 ## 参考资料 -- [UI 设计](../../frontend/2.2-ui-design/) -- [使用现代组件库更新你的界面](../../frontend/2.7-modern-component-library/) -- [从数据库到 Supabase](../../backend/2.2-database-supabase/) -- [大模型辅助编写接口代码与接口文档](../../backend/2.3-ai-interface-code/) -- [Git 和 GitHub 工作流](../../backend/2.4-git-workflow/) -- [如何部署 Web 应用](../../backend/2.5-zeabur-deployment/) +- [UI 设计](../../frontend/ui-design/) +- [使用现代组件库更新你的界面](../../frontend/modern-component-library/) +- [从数据库到 Supabase](../../backend/database-supabase/) +- [大模型辅助编写接口代码与接口文档](../../backend/ai-interface-code/) +- [Git 和 GitHub 工作流](../../backend/git-workflow/) +- [如何部署 Web 应用](../../backend/zeabur-deployment/) diff --git a/docs/zh-cn/stage-2/assignments/exam-management-express/index.md b/docs/zh-cn/stage-2/assignments/exam-management-express/index.md index b53c933..4e39049 100644 --- a/docs/zh-cn/stage-2/assignments/exam-management-express/index.md +++ b/docs/zh-cn/stage-2/assignments/exam-management-express/index.md @@ -10,10 +10,10 @@ 在开始本项目之前,你应该已经掌握以下内容: -- 前端页面设计与组件库使用([UI 设计](../../frontend/2.2-ui-design/)、[现代组件库](../../frontend/2.7-modern-component-library/)) -- 后端接口设计与开发([接口代码编写](../../backend/2.3-ai-interface-code/)) -- 数据库基础与 Supabase([从数据库到 Supabase](../../backend/2.2-database-supabase/)) -- Git 工作流与部署([Git 和 GitHub](../../backend/2.4-git-workflow/)、[部署 Web 应用](../../backend/2.5-zeabur-deployment/)) +- 前端页面设计与组件库使用([UI 设计](../../frontend/ui-design/)、[现代组件库](../../frontend/modern-component-library/)) +- 后端接口设计与开发([接口代码编写](../../backend/ai-interface-code/)) +- 数据库基础与 Supabase([从数据库到 Supabase](../../backend/database-supabase/)) +- Git 工作流与部署([Git 和 GitHub](../../backend/git-workflow/)、[部署 Web 应用](../../backend/zeabur-deployment/)) ## 学习目标 @@ -161,9 +161,9 @@ flowchart TD 如果你在前端搭建阶段卡住,可以回顾这些章节: -- [从数据库到 Supabase](../../backend/2.2-database-supabase/) -- [应用后端接口设计与开发](../../backend/2.3-ai-interface-code/) -- [使用现代组件库更新你的界面](../../frontend/2.7-modern-component-library/) +- [从数据库到 Supabase](../../backend/database-supabase/) +- [应用后端接口设计与开发](../../backend/ai-interface-code/) +- [使用现代组件库更新你的界面](../../frontend/modern-component-library/) ## 第三部分:后端开发 @@ -298,9 +298,9 @@ README 至少包含:项目简介、核心页面说明、技术栈、本地启 ## 参考资料 -- [UI 设计](../../frontend/2.2-ui-design/) -- [使用现代组件库更新你的界面](../../frontend/2.7-modern-component-library/) -- [从数据库到 Supabase](../../backend/2.2-database-supabase/) -- [大模型辅助编写接口代码与接口文档](../../backend/2.3-ai-interface-code/) -- [Git 和 GitHub 工作流](../../backend/2.4-git-workflow/) -- [如何部署 Web 应用](../../backend/2.5-zeabur-deployment/) +- [UI 设计](../../frontend/ui-design/) +- [使用现代组件库更新你的界面](../../frontend/modern-component-library/) +- [从数据库到 Supabase](../../backend/database-supabase/) +- [大模型辅助编写接口代码与接口文档](../../backend/ai-interface-code/) +- [Git 和 GitHub 工作流](../../backend/git-workflow/) +- [如何部署 Web 应用](../../backend/zeabur-deployment/) diff --git a/docs/zh-cn/stage-2/assignments/modern-landing-page/index.md b/docs/zh-cn/stage-2/assignments/modern-landing-page/index.md index 869f82f..b538436 100644 --- a/docs/zh-cn/stage-2/assignments/modern-landing-page/index.md +++ b/docs/zh-cn/stage-2/assignments/modern-landing-page/index.md @@ -10,11 +10,11 @@ 在开始本项目之前,你应该已经掌握以下内容: -- 前端页面设计与组件库使用([UI 设计](../../frontend/2.2-ui-design/)、[现代组件库](../../frontend/2.7-modern-component-library/)) -- 后端接口设计与开发([接口代码编写](../../backend/2.3-ai-interface-code/)) -- 数据库基础与 Supabase([从数据库到 Supabase](../../backend/2.2-database-supabase/)) -- 支付集成([Stripe 收费系统](../../backend/2.7-stripe-payment/)) -- Git 工作流与部署([Git 和 GitHub](../../backend/2.4-git-workflow/)、[部署 Web 应用](../../backend/2.5-zeabur-deployment/)) +- 前端页面设计与组件库使用([UI 设计](../../frontend/ui-design/)、[现代组件库](../../frontend/modern-component-library/)) +- 后端接口设计与开发([接口代码编写](../../backend/ai-interface-code/)) +- 数据库基础与 Supabase([从数据库到 Supabase](../../backend/database-supabase/)) +- 支付集成([Stripe 收费系统](../../backend/stripe-payment/)) +- Git 工作流与部署([Git 和 GitHub](../../backend/git-workflow/)、[部署 Web 应用](../../backend/zeabur-deployment/)) ## 学习目标 @@ -173,7 +173,7 @@ flowchart TD - 支付回调地址正确 - 页面无缺失的 loading、空状态、错误提示 -部署教程参考:[Git 和 GitHub 工作流](../../backend/2.4-git-workflow/)、[如何部署 Web 应用](../../backend/2.5-zeabur-deployment/)。 +部署教程参考:[Git 和 GitHub 工作流](../../backend/git-workflow/)、[如何部署 Web 应用](../../backend/zeabur-deployment/)。 ## 交付物 @@ -199,13 +199,13 @@ README 至少包含:项目简介、核心页面说明、技术栈、本地启 ## 参考资料 -- [UI 设计](../../frontend/2.2-ui-design/) -- [参考 UI 设计规范设计页面和按钮](../../frontend/2.3-multi-product-ui/) -- [用 LLM 和 Skills 让界面变好看](../../frontend/2.4-llm-skills-beautiful/) -- [从设计原型到项目代码](../../frontend/2.6-design-to-code/) -- [使用现代组件库更新你的界面](../../frontend/2.7-modern-component-library/) -- [从数据库到 Supabase](../../backend/2.2-database-supabase/) -- [大模型辅助编写接口代码与接口文档](../../backend/2.3-ai-interface-code/) -- [Git 和 GitHub 工作流](../../backend/2.4-git-workflow/) -- [如何部署 Web 应用](../../backend/2.5-zeabur-deployment/) -- [如何集成 Stripe 等收费系统](../../backend/2.7-stripe-payment/) +- [UI 设计](../../frontend/ui-design/) +- [参考 UI 设计规范设计页面和按钮](../../frontend/multi-product-ui/) +- [用 LLM 和 Skills 让界面变好看](../../frontend/llm-skills-beautiful/) +- [从设计原型到项目代码](../../frontend/design-to-code/) +- [使用现代组件库更新你的界面](../../frontend/modern-component-library/) +- [从数据库到 Supabase](../../backend/database-supabase/) +- [大模型辅助编写接口代码与接口文档](../../backend/ai-interface-code/) +- [Git 和 GitHub 工作流](../../backend/git-workflow/) +- [如何部署 Web 应用](../../backend/zeabur-deployment/) +- [如何集成 Stripe 等收费系统](../../backend/stripe-payment/) diff --git a/docs/zh-cn/stage-2/assignments/movie-recommendation-springboot/index.md b/docs/zh-cn/stage-2/assignments/movie-recommendation-springboot/index.md index 8f02a32..9a56721 100644 --- a/docs/zh-cn/stage-2/assignments/movie-recommendation-springboot/index.md +++ b/docs/zh-cn/stage-2/assignments/movie-recommendation-springboot/index.md @@ -10,10 +10,10 @@ 在开始本项目之前,你应该已经掌握以下内容: -- 前端页面设计与组件库使用([UI 设计](../../frontend/2.2-ui-design/)、[现代组件库](../../frontend/2.7-modern-component-library/)) -- 后端接口设计与开发([接口代码编写](../../backend/2.3-ai-interface-code/)) -- 数据库基础与 Supabase([从数据库到 Supabase](../../backend/2.2-database-supabase/)) -- Git 工作流与部署([Git 和 GitHub](../../backend/2.4-git-workflow/)、[部署 Web 应用](../../backend/2.5-zeabur-deployment/)) +- 前端页面设计与组件库使用([UI 设计](../../frontend/ui-design/)、[现代组件库](../../frontend/modern-component-library/)) +- 后端接口设计与开发([接口代码编写](../../backend/ai-interface-code/)) +- 数据库基础与 Supabase([从数据库到 Supabase](../../backend/database-supabase/)) +- Git 工作流与部署([Git 和 GitHub](../../backend/git-workflow/)、[部署 Web 应用](../../backend/zeabur-deployment/)) ## 学习目标 @@ -154,9 +154,9 @@ flowchart TD ## 参考资料 -- [UI 设计](../../frontend/2.2-ui-design/) -- [使用现代组件库更新你的界面](../../frontend/2.7-modern-component-library/) -- [从数据库到 Supabase](../../backend/2.2-database-supabase/) -- [大模型辅助编写接口代码与接口文档](../../backend/2.3-ai-interface-code/) -- [Git 和 GitHub 工作流](../../backend/2.4-git-workflow/) -- [如何部署 Web 应用](../../backend/2.5-zeabur-deployment/) +- [UI 设计](../../frontend/ui-design/) +- [使用现代组件库更新你的界面](../../frontend/modern-component-library/) +- [从数据库到 Supabase](../../backend/database-supabase/) +- [大模型辅助编写接口代码与接口文档](../../backend/ai-interface-code/) +- [Git 和 GitHub 工作流](../../backend/git-workflow/) +- [如何部署 Web 应用](../../backend/zeabur-deployment/) diff --git a/docs/zh-cn/stage-2/assignments/simple-grocery-microservices/index.md b/docs/zh-cn/stage-2/assignments/simple-grocery-microservices/index.md index 0a4963e..8940e55 100644 --- a/docs/zh-cn/stage-2/assignments/simple-grocery-microservices/index.md +++ b/docs/zh-cn/stage-2/assignments/simple-grocery-microservices/index.md @@ -10,10 +10,10 @@ 在开始本项目之前,你应该已经掌握以下内容: -- 前端页面设计与组件库使用([UI 设计](../../frontend/2.2-ui-design/)、[现代组件库](../../frontend/2.7-modern-component-library/)) -- 后端接口设计与开发([接口代码编写](../../backend/2.3-ai-interface-code/)) -- 数据库基础与 Supabase([从数据库到 Supabase](../../backend/2.2-database-supabase/)) -- Git 工作流与部署([Git 和 GitHub](../../backend/2.4-git-workflow/)、[部署 Web 应用](../../backend/2.5-zeabur-deployment/)) +- 前端页面设计与组件库使用([UI 设计](../../frontend/ui-design/)、[现代组件库](../../frontend/modern-component-library/)) +- 后端接口设计与开发([接口代码编写](../../backend/ai-interface-code/)) +- 数据库基础与 Supabase([从数据库到 Supabase](../../backend/database-supabase/)) +- Git 工作流与部署([Git 和 GitHub](../../backend/git-workflow/)、[部署 Web 应用](../../backend/zeabur-deployment/)) ## 学习目标 @@ -164,9 +164,9 @@ flowchart TD ## 参考资料 -- [UI 设计](../../frontend/2.2-ui-design/) -- [使用现代组件库更新你的界面](../../frontend/2.7-modern-component-library/) -- [从数据库到 Supabase](../../backend/2.2-database-supabase/) -- [大模型辅助编写接口代码与接口文档](../../backend/2.3-ai-interface-code/) -- [Git 和 GitHub 工作流](../../backend/2.4-git-workflow/) -- [如何部署 Web 应用](../../backend/2.5-zeabur-deployment/) +- [UI 设计](../../frontend/ui-design/) +- [使用现代组件库更新你的界面](../../frontend/modern-component-library/) +- [从数据库到 Supabase](../../backend/database-supabase/) +- [大模型辅助编写接口代码与接口文档](../../backend/ai-interface-code/) +- [Git 和 GitHub 工作流](../../backend/git-workflow/) +- [如何部署 Web 应用](../../backend/zeabur-deployment/) diff --git a/docs/zh-cn/stage-2/assignments/traffic-data-visualization-go/index.md b/docs/zh-cn/stage-2/assignments/traffic-data-visualization-go/index.md index 017f5c9..8630c21 100644 --- a/docs/zh-cn/stage-2/assignments/traffic-data-visualization-go/index.md +++ b/docs/zh-cn/stage-2/assignments/traffic-data-visualization-go/index.md @@ -10,10 +10,10 @@ 在开始本项目之前,你应该已经掌握以下内容: -- 前端页面设计与组件库使用([UI 设计](../../frontend/2.2-ui-design/)、[现代组件库](../../frontend/2.7-modern-component-library/)) -- 后端接口设计与开发([接口代码编写](../../backend/2.3-ai-interface-code/)) -- 数据库基础与 Supabase([从数据库到 Supabase](../../backend/2.2-database-supabase/)) -- Git 工作流与部署([Git 和 GitHub](../../backend/2.4-git-workflow/)、[部署 Web 应用](../../backend/2.5-zeabur-deployment/)) +- 前端页面设计与组件库使用([UI 设计](../../frontend/ui-design/)、[现代组件库](../../frontend/modern-component-library/)) +- 后端接口设计与开发([接口代码编写](../../backend/ai-interface-code/)) +- 数据库基础与 Supabase([从数据库到 Supabase](../../backend/database-supabase/)) +- Git 工作流与部署([Git 和 GitHub](../../backend/git-workflow/)、[部署 Web 应用](../../backend/zeabur-deployment/)) ## 学习目标 @@ -155,9 +155,9 @@ flowchart TD ## 参考资料 -- [UI 设计](../../frontend/2.2-ui-design/) -- [使用现代组件库更新你的界面](../../frontend/2.7-modern-component-library/) -- [从数据库到 Supabase](../../backend/2.2-database-supabase/) -- [大模型辅助编写接口代码与接口文档](../../backend/2.3-ai-interface-code/) -- [Git 和 GitHub 工作流](../../backend/2.4-git-workflow/) -- [如何部署 Web 应用](../../backend/2.5-zeabur-deployment/) +- [UI 设计](../../frontend/ui-design/) +- [使用现代组件库更新你的界面](../../frontend/modern-component-library/) +- [从数据库到 Supabase](../../backend/database-supabase/) +- [大模型辅助编写接口代码与接口文档](../../backend/ai-interface-code/) +- [Git 和 GitHub 工作流](../../backend/git-workflow/) +- [如何部署 Web 应用](../../backend/zeabur-deployment/) diff --git a/docs/zh-cn/stage-2/assignments/travel-planning-agent-platform/index.md b/docs/zh-cn/stage-2/assignments/travel-planning-agent-platform/index.md index 249278b..2b5f4bc 100644 --- a/docs/zh-cn/stage-2/assignments/travel-planning-agent-platform/index.md +++ b/docs/zh-cn/stage-2/assignments/travel-planning-agent-platform/index.md @@ -10,10 +10,10 @@ 在开始本项目之前,你应该已经掌握以下内容: -- 前端页面设计与组件库使用([UI 设计](../../frontend/2.2-ui-design/)、[现代组件库](../../frontend/2.7-modern-component-library/)) -- 后端接口设计与开发([接口代码编写](../../backend/2.3-ai-interface-code/)) -- 数据库基础与 Supabase([从数据库到 Supabase](../../backend/2.2-database-supabase/)) -- Git 工作流与部署([Git 和 GitHub](../../backend/2.4-git-workflow/)、[部署 Web 应用](../../backend/2.5-zeabur-deployment/)) +- 前端页面设计与组件库使用([UI 设计](../../frontend/ui-design/)、[现代组件库](../../frontend/modern-component-library/)) +- 后端接口设计与开发([接口代码编写](../../backend/ai-interface-code/)) +- 数据库基础与 Supabase([从数据库到 Supabase](../../backend/database-supabase/)) +- Git 工作流与部署([Git 和 GitHub](../../backend/git-workflow/)、[部署 Web 应用](../../backend/zeabur-deployment/)) ## 学习目标 @@ -156,9 +156,9 @@ flowchart TD ## 参考资料 -- [UI 设计](../../frontend/2.2-ui-design/) -- [使用现代组件库更新你的界面](../../frontend/2.7-modern-component-library/) -- [从数据库到 Supabase](../../backend/2.2-database-supabase/) -- [大模型辅助编写接口代码与接口文档](../../backend/2.3-ai-interface-code/) -- [Git 和 GitHub 工作流](../../backend/2.4-git-workflow/) -- [如何部署 Web 应用](../../backend/2.5-zeabur-deployment/) +- [UI 设计](../../frontend/ui-design/) +- [使用现代组件库更新你的界面](../../frontend/modern-component-library/) +- [从数据库到 Supabase](../../backend/database-supabase/) +- [大模型辅助编写接口代码与接口文档](../../backend/ai-interface-code/) +- [Git 和 GitHub 工作流](../../backend/git-workflow/) +- [如何部署 Web 应用](../../backend/zeabur-deployment/) diff --git a/docs/zh-cn/stage-2/backend/2.3-ai-interface-code/index.md b/docs/zh-cn/stage-2/backend/ai-interface-code/index.md similarity index 96% rename from docs/zh-cn/stage-2/backend/2.3-ai-interface-code/index.md rename to docs/zh-cn/stage-2/backend/ai-interface-code/index.md index f42e65f..75d7657 100644 --- a/docs/zh-cn/stage-2/backend/2.3-ai-interface-code/index.md +++ b/docs/zh-cn/stage-2/backend/ai-interface-code/index.md @@ -9,8 +9,8 @@ > 💡 **前置知识** > > 在学习本节之前,建议你先了解以下内容: -> - [从数据库到 Supabase](../2.2-database-supabase/) - 了解数据库和数据模型的概念。 -> - [Git 和 GitHub 工作流](../2.4-git-workflow/) - 熟悉如何在项目开发中进行版本控制。 +> - [从数据库到 Supabase](../database-supabase/) - 了解数据库和数据模型的概念。 +> - [Git 和 GitHub 工作流](../git-workflow/) - 熟悉如何在项目开发中进行版本控制。 > - [什么是终端/命令行](/zh-cn/appendix/2-development-tools/command-line-shell) - 项目初始化与启动离不开基础的命令操作。 # 你将学到 @@ -68,7 +68,7 @@ my-api-project/ 这是本章节最核心的部分。大模型写出的代码往往容易存在“逻辑漏洞”或“表面敷衍”,原因在于开发者给的上下文不足。**大模型不怕需求复杂,最怕需求模糊。** -以我们在 [数据库章节](../2.2-database-supabase/) 中提到的 `menu_items` (菜单表) 的新增接口为例,看如何写出一份高质量的 Prompt。 +以我们在 [数据库章节](../database-supabase/) 中提到的 `menu_items` (菜单表) 的新增接口为例,看如何写出一份高质量的 Prompt。 ## 3.1 赋予大模型完整上下文 在请求 AI 写接口之前,一定要提供**数据库字段定义(Schema)**和**具体的约束条件**。 diff --git a/docs/zh-cn/stage-2/backend/2.2-database-supabase/images/image1.png b/docs/zh-cn/stage-2/backend/database-supabase/images/image1.png similarity index 100% rename from docs/zh-cn/stage-2/backend/2.2-database-supabase/images/image1.png rename to docs/zh-cn/stage-2/backend/database-supabase/images/image1.png diff --git a/docs/zh-cn/stage-2/backend/2.2-database-supabase/images/image10.png b/docs/zh-cn/stage-2/backend/database-supabase/images/image10.png similarity index 100% rename from docs/zh-cn/stage-2/backend/2.2-database-supabase/images/image10.png rename to docs/zh-cn/stage-2/backend/database-supabase/images/image10.png diff --git a/docs/zh-cn/stage-2/backend/2.2-database-supabase/images/image11.png b/docs/zh-cn/stage-2/backend/database-supabase/images/image11.png similarity index 100% rename from docs/zh-cn/stage-2/backend/2.2-database-supabase/images/image11.png rename to docs/zh-cn/stage-2/backend/database-supabase/images/image11.png diff --git a/docs/zh-cn/stage-2/backend/2.2-database-supabase/images/image12.png b/docs/zh-cn/stage-2/backend/database-supabase/images/image12.png similarity index 100% rename from docs/zh-cn/stage-2/backend/2.2-database-supabase/images/image12.png rename to docs/zh-cn/stage-2/backend/database-supabase/images/image12.png diff --git a/docs/zh-cn/stage-2/backend/2.2-database-supabase/images/image13.png b/docs/zh-cn/stage-2/backend/database-supabase/images/image13.png similarity index 100% rename from docs/zh-cn/stage-2/backend/2.2-database-supabase/images/image13.png rename to docs/zh-cn/stage-2/backend/database-supabase/images/image13.png diff --git a/docs/zh-cn/stage-2/backend/2.2-database-supabase/images/image14.png b/docs/zh-cn/stage-2/backend/database-supabase/images/image14.png similarity index 100% rename from docs/zh-cn/stage-2/backend/2.2-database-supabase/images/image14.png rename to docs/zh-cn/stage-2/backend/database-supabase/images/image14.png diff --git a/docs/zh-cn/stage-2/backend/2.2-database-supabase/images/image15.png b/docs/zh-cn/stage-2/backend/database-supabase/images/image15.png similarity index 100% rename from docs/zh-cn/stage-2/backend/2.2-database-supabase/images/image15.png rename to docs/zh-cn/stage-2/backend/database-supabase/images/image15.png diff --git a/docs/zh-cn/stage-2/backend/2.2-database-supabase/images/image16.png b/docs/zh-cn/stage-2/backend/database-supabase/images/image16.png similarity index 100% rename from docs/zh-cn/stage-2/backend/2.2-database-supabase/images/image16.png rename to docs/zh-cn/stage-2/backend/database-supabase/images/image16.png diff --git a/docs/zh-cn/stage-2/backend/2.2-database-supabase/images/image17.png b/docs/zh-cn/stage-2/backend/database-supabase/images/image17.png similarity index 100% rename from docs/zh-cn/stage-2/backend/2.2-database-supabase/images/image17.png rename to docs/zh-cn/stage-2/backend/database-supabase/images/image17.png diff --git a/docs/zh-cn/stage-2/backend/2.2-database-supabase/images/image18.png b/docs/zh-cn/stage-2/backend/database-supabase/images/image18.png similarity index 100% rename from docs/zh-cn/stage-2/backend/2.2-database-supabase/images/image18.png rename to docs/zh-cn/stage-2/backend/database-supabase/images/image18.png diff --git a/docs/zh-cn/stage-2/backend/2.2-database-supabase/images/image19.png b/docs/zh-cn/stage-2/backend/database-supabase/images/image19.png similarity index 100% rename from docs/zh-cn/stage-2/backend/2.2-database-supabase/images/image19.png rename to docs/zh-cn/stage-2/backend/database-supabase/images/image19.png diff --git a/docs/zh-cn/stage-2/backend/2.2-database-supabase/images/image2.png b/docs/zh-cn/stage-2/backend/database-supabase/images/image2.png similarity index 100% rename from docs/zh-cn/stage-2/backend/2.2-database-supabase/images/image2.png rename to docs/zh-cn/stage-2/backend/database-supabase/images/image2.png diff --git a/docs/zh-cn/stage-2/backend/2.2-database-supabase/images/image20.png b/docs/zh-cn/stage-2/backend/database-supabase/images/image20.png similarity index 100% rename from docs/zh-cn/stage-2/backend/2.2-database-supabase/images/image20.png rename to docs/zh-cn/stage-2/backend/database-supabase/images/image20.png diff --git a/docs/zh-cn/stage-2/backend/2.2-database-supabase/images/image21.png b/docs/zh-cn/stage-2/backend/database-supabase/images/image21.png similarity index 100% rename from docs/zh-cn/stage-2/backend/2.2-database-supabase/images/image21.png rename to docs/zh-cn/stage-2/backend/database-supabase/images/image21.png diff --git a/docs/zh-cn/stage-2/backend/2.2-database-supabase/images/image22.png b/docs/zh-cn/stage-2/backend/database-supabase/images/image22.png similarity index 100% rename from docs/zh-cn/stage-2/backend/2.2-database-supabase/images/image22.png rename to docs/zh-cn/stage-2/backend/database-supabase/images/image22.png diff --git a/docs/zh-cn/stage-2/backend/2.2-database-supabase/images/image23.png b/docs/zh-cn/stage-2/backend/database-supabase/images/image23.png similarity index 100% rename from docs/zh-cn/stage-2/backend/2.2-database-supabase/images/image23.png rename to docs/zh-cn/stage-2/backend/database-supabase/images/image23.png diff --git a/docs/zh-cn/stage-2/backend/2.2-database-supabase/images/image24.png b/docs/zh-cn/stage-2/backend/database-supabase/images/image24.png similarity index 100% rename from docs/zh-cn/stage-2/backend/2.2-database-supabase/images/image24.png rename to docs/zh-cn/stage-2/backend/database-supabase/images/image24.png diff --git a/docs/zh-cn/stage-2/backend/2.2-database-supabase/images/image25.png b/docs/zh-cn/stage-2/backend/database-supabase/images/image25.png similarity index 100% rename from docs/zh-cn/stage-2/backend/2.2-database-supabase/images/image25.png rename to docs/zh-cn/stage-2/backend/database-supabase/images/image25.png diff --git a/docs/zh-cn/stage-2/backend/2.2-database-supabase/images/image26.png b/docs/zh-cn/stage-2/backend/database-supabase/images/image26.png similarity index 100% rename from docs/zh-cn/stage-2/backend/2.2-database-supabase/images/image26.png rename to docs/zh-cn/stage-2/backend/database-supabase/images/image26.png diff --git a/docs/zh-cn/stage-2/backend/2.2-database-supabase/images/image27.png b/docs/zh-cn/stage-2/backend/database-supabase/images/image27.png similarity index 100% rename from docs/zh-cn/stage-2/backend/2.2-database-supabase/images/image27.png rename to docs/zh-cn/stage-2/backend/database-supabase/images/image27.png diff --git a/docs/zh-cn/stage-2/backend/2.2-database-supabase/images/image28.png b/docs/zh-cn/stage-2/backend/database-supabase/images/image28.png similarity index 100% rename from docs/zh-cn/stage-2/backend/2.2-database-supabase/images/image28.png rename to docs/zh-cn/stage-2/backend/database-supabase/images/image28.png diff --git a/docs/zh-cn/stage-2/backend/2.2-database-supabase/images/image29.png b/docs/zh-cn/stage-2/backend/database-supabase/images/image29.png similarity index 100% rename from docs/zh-cn/stage-2/backend/2.2-database-supabase/images/image29.png rename to docs/zh-cn/stage-2/backend/database-supabase/images/image29.png diff --git a/docs/zh-cn/stage-2/backend/2.2-database-supabase/images/image3.png b/docs/zh-cn/stage-2/backend/database-supabase/images/image3.png similarity index 100% rename from docs/zh-cn/stage-2/backend/2.2-database-supabase/images/image3.png rename to docs/zh-cn/stage-2/backend/database-supabase/images/image3.png diff --git a/docs/zh-cn/stage-2/backend/2.2-database-supabase/images/image30.png b/docs/zh-cn/stage-2/backend/database-supabase/images/image30.png similarity index 100% rename from docs/zh-cn/stage-2/backend/2.2-database-supabase/images/image30.png rename to docs/zh-cn/stage-2/backend/database-supabase/images/image30.png diff --git a/docs/zh-cn/stage-2/backend/2.2-database-supabase/images/image31.png b/docs/zh-cn/stage-2/backend/database-supabase/images/image31.png similarity index 100% rename from docs/zh-cn/stage-2/backend/2.2-database-supabase/images/image31.png rename to docs/zh-cn/stage-2/backend/database-supabase/images/image31.png diff --git a/docs/zh-cn/stage-2/backend/2.2-database-supabase/images/image32.png b/docs/zh-cn/stage-2/backend/database-supabase/images/image32.png similarity index 100% rename from docs/zh-cn/stage-2/backend/2.2-database-supabase/images/image32.png rename to docs/zh-cn/stage-2/backend/database-supabase/images/image32.png diff --git a/docs/zh-cn/stage-2/backend/2.2-database-supabase/images/image33.png b/docs/zh-cn/stage-2/backend/database-supabase/images/image33.png similarity index 100% rename from docs/zh-cn/stage-2/backend/2.2-database-supabase/images/image33.png rename to docs/zh-cn/stage-2/backend/database-supabase/images/image33.png diff --git a/docs/zh-cn/stage-2/backend/2.2-database-supabase/images/image34.png b/docs/zh-cn/stage-2/backend/database-supabase/images/image34.png similarity index 100% rename from docs/zh-cn/stage-2/backend/2.2-database-supabase/images/image34.png rename to docs/zh-cn/stage-2/backend/database-supabase/images/image34.png diff --git a/docs/zh-cn/stage-2/backend/2.2-database-supabase/images/image35.png b/docs/zh-cn/stage-2/backend/database-supabase/images/image35.png similarity index 100% rename from docs/zh-cn/stage-2/backend/2.2-database-supabase/images/image35.png rename to docs/zh-cn/stage-2/backend/database-supabase/images/image35.png diff --git a/docs/zh-cn/stage-2/backend/2.2-database-supabase/images/image36.png b/docs/zh-cn/stage-2/backend/database-supabase/images/image36.png similarity index 100% rename from docs/zh-cn/stage-2/backend/2.2-database-supabase/images/image36.png rename to docs/zh-cn/stage-2/backend/database-supabase/images/image36.png diff --git a/docs/zh-cn/stage-2/backend/2.2-database-supabase/images/image37.png b/docs/zh-cn/stage-2/backend/database-supabase/images/image37.png similarity index 100% rename from docs/zh-cn/stage-2/backend/2.2-database-supabase/images/image37.png rename to docs/zh-cn/stage-2/backend/database-supabase/images/image37.png diff --git a/docs/zh-cn/stage-2/backend/2.2-database-supabase/images/image38.png b/docs/zh-cn/stage-2/backend/database-supabase/images/image38.png similarity index 100% rename from docs/zh-cn/stage-2/backend/2.2-database-supabase/images/image38.png rename to docs/zh-cn/stage-2/backend/database-supabase/images/image38.png diff --git a/docs/zh-cn/stage-2/backend/2.2-database-supabase/images/image39.png b/docs/zh-cn/stage-2/backend/database-supabase/images/image39.png similarity index 100% rename from docs/zh-cn/stage-2/backend/2.2-database-supabase/images/image39.png rename to docs/zh-cn/stage-2/backend/database-supabase/images/image39.png diff --git a/docs/zh-cn/stage-2/backend/2.2-database-supabase/images/image4.png b/docs/zh-cn/stage-2/backend/database-supabase/images/image4.png similarity index 100% rename from docs/zh-cn/stage-2/backend/2.2-database-supabase/images/image4.png rename to docs/zh-cn/stage-2/backend/database-supabase/images/image4.png diff --git a/docs/zh-cn/stage-2/backend/2.2-database-supabase/images/image40.png b/docs/zh-cn/stage-2/backend/database-supabase/images/image40.png similarity index 100% rename from docs/zh-cn/stage-2/backend/2.2-database-supabase/images/image40.png rename to docs/zh-cn/stage-2/backend/database-supabase/images/image40.png diff --git a/docs/zh-cn/stage-2/backend/2.2-database-supabase/images/image41.png b/docs/zh-cn/stage-2/backend/database-supabase/images/image41.png similarity index 100% rename from docs/zh-cn/stage-2/backend/2.2-database-supabase/images/image41.png rename to docs/zh-cn/stage-2/backend/database-supabase/images/image41.png diff --git a/docs/zh-cn/stage-2/backend/2.2-database-supabase/images/image42.png b/docs/zh-cn/stage-2/backend/database-supabase/images/image42.png similarity index 100% rename from docs/zh-cn/stage-2/backend/2.2-database-supabase/images/image42.png rename to docs/zh-cn/stage-2/backend/database-supabase/images/image42.png diff --git a/docs/zh-cn/stage-2/backend/2.2-database-supabase/images/image43.png b/docs/zh-cn/stage-2/backend/database-supabase/images/image43.png similarity index 100% rename from docs/zh-cn/stage-2/backend/2.2-database-supabase/images/image43.png rename to docs/zh-cn/stage-2/backend/database-supabase/images/image43.png diff --git a/docs/zh-cn/stage-2/backend/2.2-database-supabase/images/image44.png b/docs/zh-cn/stage-2/backend/database-supabase/images/image44.png similarity index 100% rename from docs/zh-cn/stage-2/backend/2.2-database-supabase/images/image44.png rename to docs/zh-cn/stage-2/backend/database-supabase/images/image44.png diff --git a/docs/zh-cn/stage-2/backend/2.2-database-supabase/images/image45.png b/docs/zh-cn/stage-2/backend/database-supabase/images/image45.png similarity index 100% rename from docs/zh-cn/stage-2/backend/2.2-database-supabase/images/image45.png rename to docs/zh-cn/stage-2/backend/database-supabase/images/image45.png diff --git a/docs/zh-cn/stage-2/backend/2.2-database-supabase/images/image46.png b/docs/zh-cn/stage-2/backend/database-supabase/images/image46.png similarity index 100% rename from docs/zh-cn/stage-2/backend/2.2-database-supabase/images/image46.png rename to docs/zh-cn/stage-2/backend/database-supabase/images/image46.png diff --git a/docs/zh-cn/stage-2/backend/2.2-database-supabase/images/image47.png b/docs/zh-cn/stage-2/backend/database-supabase/images/image47.png similarity index 100% rename from docs/zh-cn/stage-2/backend/2.2-database-supabase/images/image47.png rename to docs/zh-cn/stage-2/backend/database-supabase/images/image47.png diff --git a/docs/zh-cn/stage-2/backend/2.2-database-supabase/images/image48.png b/docs/zh-cn/stage-2/backend/database-supabase/images/image48.png similarity index 100% rename from docs/zh-cn/stage-2/backend/2.2-database-supabase/images/image48.png rename to docs/zh-cn/stage-2/backend/database-supabase/images/image48.png diff --git a/docs/zh-cn/stage-2/backend/2.2-database-supabase/images/image49.png b/docs/zh-cn/stage-2/backend/database-supabase/images/image49.png similarity index 100% rename from docs/zh-cn/stage-2/backend/2.2-database-supabase/images/image49.png rename to docs/zh-cn/stage-2/backend/database-supabase/images/image49.png diff --git a/docs/zh-cn/stage-2/backend/2.2-database-supabase/images/image5.png b/docs/zh-cn/stage-2/backend/database-supabase/images/image5.png similarity index 100% rename from docs/zh-cn/stage-2/backend/2.2-database-supabase/images/image5.png rename to docs/zh-cn/stage-2/backend/database-supabase/images/image5.png diff --git a/docs/zh-cn/stage-2/backend/2.2-database-supabase/images/image50.png b/docs/zh-cn/stage-2/backend/database-supabase/images/image50.png similarity index 100% rename from docs/zh-cn/stage-2/backend/2.2-database-supabase/images/image50.png rename to docs/zh-cn/stage-2/backend/database-supabase/images/image50.png diff --git a/docs/zh-cn/stage-2/backend/2.2-database-supabase/images/image51.png b/docs/zh-cn/stage-2/backend/database-supabase/images/image51.png similarity index 100% rename from docs/zh-cn/stage-2/backend/2.2-database-supabase/images/image51.png rename to docs/zh-cn/stage-2/backend/database-supabase/images/image51.png diff --git a/docs/zh-cn/stage-2/backend/2.2-database-supabase/images/image52.png b/docs/zh-cn/stage-2/backend/database-supabase/images/image52.png similarity index 100% rename from docs/zh-cn/stage-2/backend/2.2-database-supabase/images/image52.png rename to docs/zh-cn/stage-2/backend/database-supabase/images/image52.png diff --git a/docs/zh-cn/stage-2/backend/2.2-database-supabase/images/image53.png b/docs/zh-cn/stage-2/backend/database-supabase/images/image53.png similarity index 100% rename from docs/zh-cn/stage-2/backend/2.2-database-supabase/images/image53.png rename to docs/zh-cn/stage-2/backend/database-supabase/images/image53.png diff --git a/docs/zh-cn/stage-2/backend/2.2-database-supabase/images/image54.png b/docs/zh-cn/stage-2/backend/database-supabase/images/image54.png similarity index 100% rename from docs/zh-cn/stage-2/backend/2.2-database-supabase/images/image54.png rename to docs/zh-cn/stage-2/backend/database-supabase/images/image54.png diff --git a/docs/zh-cn/stage-2/backend/2.2-database-supabase/images/image55.png b/docs/zh-cn/stage-2/backend/database-supabase/images/image55.png similarity index 100% rename from docs/zh-cn/stage-2/backend/2.2-database-supabase/images/image55.png rename to docs/zh-cn/stage-2/backend/database-supabase/images/image55.png diff --git a/docs/zh-cn/stage-2/backend/2.2-database-supabase/images/image56.png b/docs/zh-cn/stage-2/backend/database-supabase/images/image56.png similarity index 100% rename from docs/zh-cn/stage-2/backend/2.2-database-supabase/images/image56.png rename to docs/zh-cn/stage-2/backend/database-supabase/images/image56.png diff --git a/docs/zh-cn/stage-2/backend/2.2-database-supabase/images/image57.png b/docs/zh-cn/stage-2/backend/database-supabase/images/image57.png similarity index 100% rename from docs/zh-cn/stage-2/backend/2.2-database-supabase/images/image57.png rename to docs/zh-cn/stage-2/backend/database-supabase/images/image57.png diff --git a/docs/zh-cn/stage-2/backend/2.2-database-supabase/images/image58.png b/docs/zh-cn/stage-2/backend/database-supabase/images/image58.png similarity index 100% rename from docs/zh-cn/stage-2/backend/2.2-database-supabase/images/image58.png rename to docs/zh-cn/stage-2/backend/database-supabase/images/image58.png diff --git a/docs/zh-cn/stage-2/backend/2.2-database-supabase/images/image59.png b/docs/zh-cn/stage-2/backend/database-supabase/images/image59.png similarity index 100% rename from docs/zh-cn/stage-2/backend/2.2-database-supabase/images/image59.png rename to docs/zh-cn/stage-2/backend/database-supabase/images/image59.png diff --git a/docs/zh-cn/stage-2/backend/2.2-database-supabase/images/image6.png b/docs/zh-cn/stage-2/backend/database-supabase/images/image6.png similarity index 100% rename from docs/zh-cn/stage-2/backend/2.2-database-supabase/images/image6.png rename to docs/zh-cn/stage-2/backend/database-supabase/images/image6.png diff --git a/docs/zh-cn/stage-2/backend/2.2-database-supabase/images/image60.png b/docs/zh-cn/stage-2/backend/database-supabase/images/image60.png similarity index 100% rename from docs/zh-cn/stage-2/backend/2.2-database-supabase/images/image60.png rename to docs/zh-cn/stage-2/backend/database-supabase/images/image60.png diff --git a/docs/zh-cn/stage-2/backend/2.2-database-supabase/images/image61.png b/docs/zh-cn/stage-2/backend/database-supabase/images/image61.png similarity index 100% rename from docs/zh-cn/stage-2/backend/2.2-database-supabase/images/image61.png rename to docs/zh-cn/stage-2/backend/database-supabase/images/image61.png diff --git a/docs/zh-cn/stage-2/backend/2.2-database-supabase/images/image62.png b/docs/zh-cn/stage-2/backend/database-supabase/images/image62.png similarity index 100% rename from docs/zh-cn/stage-2/backend/2.2-database-supabase/images/image62.png rename to docs/zh-cn/stage-2/backend/database-supabase/images/image62.png diff --git a/docs/zh-cn/stage-2/backend/2.2-database-supabase/images/image63.png b/docs/zh-cn/stage-2/backend/database-supabase/images/image63.png similarity index 100% rename from docs/zh-cn/stage-2/backend/2.2-database-supabase/images/image63.png rename to docs/zh-cn/stage-2/backend/database-supabase/images/image63.png diff --git a/docs/zh-cn/stage-2/backend/2.2-database-supabase/images/image64.png b/docs/zh-cn/stage-2/backend/database-supabase/images/image64.png similarity index 100% rename from docs/zh-cn/stage-2/backend/2.2-database-supabase/images/image64.png rename to docs/zh-cn/stage-2/backend/database-supabase/images/image64.png diff --git a/docs/zh-cn/stage-2/backend/2.2-database-supabase/images/image65.png b/docs/zh-cn/stage-2/backend/database-supabase/images/image65.png similarity index 100% rename from docs/zh-cn/stage-2/backend/2.2-database-supabase/images/image65.png rename to docs/zh-cn/stage-2/backend/database-supabase/images/image65.png diff --git a/docs/zh-cn/stage-2/backend/2.2-database-supabase/images/image7.png b/docs/zh-cn/stage-2/backend/database-supabase/images/image7.png similarity index 100% rename from docs/zh-cn/stage-2/backend/2.2-database-supabase/images/image7.png rename to docs/zh-cn/stage-2/backend/database-supabase/images/image7.png diff --git a/docs/zh-cn/stage-2/backend/2.2-database-supabase/images/image8.png b/docs/zh-cn/stage-2/backend/database-supabase/images/image8.png similarity index 100% rename from docs/zh-cn/stage-2/backend/2.2-database-supabase/images/image8.png rename to docs/zh-cn/stage-2/backend/database-supabase/images/image8.png diff --git a/docs/zh-cn/stage-2/backend/2.2-database-supabase/images/image9.png b/docs/zh-cn/stage-2/backend/database-supabase/images/image9.png similarity index 100% rename from docs/zh-cn/stage-2/backend/2.2-database-supabase/images/image9.png rename to docs/zh-cn/stage-2/backend/database-supabase/images/image9.png diff --git a/docs/zh-cn/stage-2/backend/2.2-database-supabase/index.md b/docs/zh-cn/stage-2/backend/database-supabase/index.md similarity index 100% rename from docs/zh-cn/stage-2/backend/2.2-database-supabase/index.md rename to docs/zh-cn/stage-2/backend/database-supabase/index.md diff --git a/docs/zh-cn/stage-2/backend/2.4-git-workflow/images/image1.png b/docs/zh-cn/stage-2/backend/git-workflow/images/image1.png similarity index 100% rename from docs/zh-cn/stage-2/backend/2.4-git-workflow/images/image1.png rename to docs/zh-cn/stage-2/backend/git-workflow/images/image1.png diff --git a/docs/zh-cn/stage-2/backend/2.4-git-workflow/images/image10.png b/docs/zh-cn/stage-2/backend/git-workflow/images/image10.png similarity index 100% rename from docs/zh-cn/stage-2/backend/2.4-git-workflow/images/image10.png rename to docs/zh-cn/stage-2/backend/git-workflow/images/image10.png diff --git a/docs/zh-cn/stage-2/backend/2.4-git-workflow/images/image11.png b/docs/zh-cn/stage-2/backend/git-workflow/images/image11.png similarity index 100% rename from docs/zh-cn/stage-2/backend/2.4-git-workflow/images/image11.png rename to docs/zh-cn/stage-2/backend/git-workflow/images/image11.png diff --git a/docs/zh-cn/stage-2/backend/2.4-git-workflow/images/image12.png b/docs/zh-cn/stage-2/backend/git-workflow/images/image12.png similarity index 100% rename from docs/zh-cn/stage-2/backend/2.4-git-workflow/images/image12.png rename to docs/zh-cn/stage-2/backend/git-workflow/images/image12.png diff --git a/docs/zh-cn/stage-2/backend/2.4-git-workflow/images/image13.png b/docs/zh-cn/stage-2/backend/git-workflow/images/image13.png similarity index 100% rename from docs/zh-cn/stage-2/backend/2.4-git-workflow/images/image13.png rename to docs/zh-cn/stage-2/backend/git-workflow/images/image13.png diff --git a/docs/zh-cn/stage-2/backend/2.4-git-workflow/images/image14.png b/docs/zh-cn/stage-2/backend/git-workflow/images/image14.png similarity index 100% rename from docs/zh-cn/stage-2/backend/2.4-git-workflow/images/image14.png rename to docs/zh-cn/stage-2/backend/git-workflow/images/image14.png diff --git a/docs/zh-cn/stage-2/backend/2.4-git-workflow/images/image15.png b/docs/zh-cn/stage-2/backend/git-workflow/images/image15.png similarity index 100% rename from docs/zh-cn/stage-2/backend/2.4-git-workflow/images/image15.png rename to docs/zh-cn/stage-2/backend/git-workflow/images/image15.png diff --git a/docs/zh-cn/stage-2/backend/2.4-git-workflow/images/image16.png b/docs/zh-cn/stage-2/backend/git-workflow/images/image16.png similarity index 100% rename from docs/zh-cn/stage-2/backend/2.4-git-workflow/images/image16.png rename to docs/zh-cn/stage-2/backend/git-workflow/images/image16.png diff --git a/docs/zh-cn/stage-2/backend/2.4-git-workflow/images/image17.png b/docs/zh-cn/stage-2/backend/git-workflow/images/image17.png similarity index 100% rename from docs/zh-cn/stage-2/backend/2.4-git-workflow/images/image17.png rename to docs/zh-cn/stage-2/backend/git-workflow/images/image17.png diff --git a/docs/zh-cn/stage-2/backend/2.4-git-workflow/images/image18.png b/docs/zh-cn/stage-2/backend/git-workflow/images/image18.png similarity index 100% rename from docs/zh-cn/stage-2/backend/2.4-git-workflow/images/image18.png rename to docs/zh-cn/stage-2/backend/git-workflow/images/image18.png diff --git a/docs/zh-cn/stage-2/backend/2.4-git-workflow/images/image19.png b/docs/zh-cn/stage-2/backend/git-workflow/images/image19.png similarity index 100% rename from docs/zh-cn/stage-2/backend/2.4-git-workflow/images/image19.png rename to docs/zh-cn/stage-2/backend/git-workflow/images/image19.png diff --git a/docs/zh-cn/stage-2/backend/2.4-git-workflow/images/image2.png b/docs/zh-cn/stage-2/backend/git-workflow/images/image2.png similarity index 100% rename from docs/zh-cn/stage-2/backend/2.4-git-workflow/images/image2.png rename to docs/zh-cn/stage-2/backend/git-workflow/images/image2.png diff --git a/docs/zh-cn/stage-2/backend/2.4-git-workflow/images/image20.png b/docs/zh-cn/stage-2/backend/git-workflow/images/image20.png similarity index 100% rename from docs/zh-cn/stage-2/backend/2.4-git-workflow/images/image20.png rename to docs/zh-cn/stage-2/backend/git-workflow/images/image20.png diff --git a/docs/zh-cn/stage-2/backend/2.4-git-workflow/images/image21.png b/docs/zh-cn/stage-2/backend/git-workflow/images/image21.png similarity index 100% rename from docs/zh-cn/stage-2/backend/2.4-git-workflow/images/image21.png rename to docs/zh-cn/stage-2/backend/git-workflow/images/image21.png diff --git a/docs/zh-cn/stage-2/backend/2.4-git-workflow/images/image22.png b/docs/zh-cn/stage-2/backend/git-workflow/images/image22.png similarity index 100% rename from docs/zh-cn/stage-2/backend/2.4-git-workflow/images/image22.png rename to docs/zh-cn/stage-2/backend/git-workflow/images/image22.png diff --git a/docs/zh-cn/stage-2/backend/2.4-git-workflow/images/image23.png b/docs/zh-cn/stage-2/backend/git-workflow/images/image23.png similarity index 100% rename from docs/zh-cn/stage-2/backend/2.4-git-workflow/images/image23.png rename to docs/zh-cn/stage-2/backend/git-workflow/images/image23.png diff --git a/docs/zh-cn/stage-2/backend/2.4-git-workflow/images/image24.png b/docs/zh-cn/stage-2/backend/git-workflow/images/image24.png similarity index 100% rename from docs/zh-cn/stage-2/backend/2.4-git-workflow/images/image24.png rename to docs/zh-cn/stage-2/backend/git-workflow/images/image24.png diff --git a/docs/zh-cn/stage-2/backend/2.4-git-workflow/images/image25.png b/docs/zh-cn/stage-2/backend/git-workflow/images/image25.png similarity index 100% rename from docs/zh-cn/stage-2/backend/2.4-git-workflow/images/image25.png rename to docs/zh-cn/stage-2/backend/git-workflow/images/image25.png diff --git a/docs/zh-cn/stage-2/backend/2.4-git-workflow/images/image3.png b/docs/zh-cn/stage-2/backend/git-workflow/images/image3.png similarity index 100% rename from docs/zh-cn/stage-2/backend/2.4-git-workflow/images/image3.png rename to docs/zh-cn/stage-2/backend/git-workflow/images/image3.png diff --git a/docs/zh-cn/stage-2/backend/2.4-git-workflow/images/image4.png b/docs/zh-cn/stage-2/backend/git-workflow/images/image4.png similarity index 100% rename from docs/zh-cn/stage-2/backend/2.4-git-workflow/images/image4.png rename to docs/zh-cn/stage-2/backend/git-workflow/images/image4.png diff --git a/docs/zh-cn/stage-2/backend/2.4-git-workflow/images/image5.png b/docs/zh-cn/stage-2/backend/git-workflow/images/image5.png similarity index 100% rename from docs/zh-cn/stage-2/backend/2.4-git-workflow/images/image5.png rename to docs/zh-cn/stage-2/backend/git-workflow/images/image5.png diff --git a/docs/zh-cn/stage-2/backend/2.4-git-workflow/images/image6.png b/docs/zh-cn/stage-2/backend/git-workflow/images/image6.png similarity index 100% rename from docs/zh-cn/stage-2/backend/2.4-git-workflow/images/image6.png rename to docs/zh-cn/stage-2/backend/git-workflow/images/image6.png diff --git a/docs/zh-cn/stage-2/backend/2.4-git-workflow/images/image7.png b/docs/zh-cn/stage-2/backend/git-workflow/images/image7.png similarity index 100% rename from docs/zh-cn/stage-2/backend/2.4-git-workflow/images/image7.png rename to docs/zh-cn/stage-2/backend/git-workflow/images/image7.png diff --git a/docs/zh-cn/stage-2/backend/2.4-git-workflow/images/image8.png b/docs/zh-cn/stage-2/backend/git-workflow/images/image8.png similarity index 100% rename from docs/zh-cn/stage-2/backend/2.4-git-workflow/images/image8.png rename to docs/zh-cn/stage-2/backend/git-workflow/images/image8.png diff --git a/docs/zh-cn/stage-2/backend/2.4-git-workflow/images/image9.png b/docs/zh-cn/stage-2/backend/git-workflow/images/image9.png similarity index 100% rename from docs/zh-cn/stage-2/backend/2.4-git-workflow/images/image9.png rename to docs/zh-cn/stage-2/backend/git-workflow/images/image9.png diff --git a/docs/zh-cn/stage-2/backend/2.4-git-workflow/index.md b/docs/zh-cn/stage-2/backend/git-workflow/index.md similarity index 100% rename from docs/zh-cn/stage-2/backend/2.4-git-workflow/index.md rename to docs/zh-cn/stage-2/backend/git-workflow/index.md diff --git a/docs/zh-cn/stage-2/backend/2.6-modern-cli/images/image1.png b/docs/zh-cn/stage-2/backend/modern-cli/images/image1.png similarity index 100% rename from docs/zh-cn/stage-2/backend/2.6-modern-cli/images/image1.png rename to docs/zh-cn/stage-2/backend/modern-cli/images/image1.png diff --git a/docs/zh-cn/stage-2/backend/2.6-modern-cli/images/image10.png b/docs/zh-cn/stage-2/backend/modern-cli/images/image10.png similarity index 100% rename from docs/zh-cn/stage-2/backend/2.6-modern-cli/images/image10.png rename to docs/zh-cn/stage-2/backend/modern-cli/images/image10.png diff --git a/docs/zh-cn/stage-2/backend/2.6-modern-cli/images/image11.png b/docs/zh-cn/stage-2/backend/modern-cli/images/image11.png similarity index 100% rename from docs/zh-cn/stage-2/backend/2.6-modern-cli/images/image11.png rename to docs/zh-cn/stage-2/backend/modern-cli/images/image11.png diff --git a/docs/zh-cn/stage-2/backend/2.6-modern-cli/images/image12.png b/docs/zh-cn/stage-2/backend/modern-cli/images/image12.png similarity index 100% rename from docs/zh-cn/stage-2/backend/2.6-modern-cli/images/image12.png rename to docs/zh-cn/stage-2/backend/modern-cli/images/image12.png diff --git a/docs/zh-cn/stage-2/backend/2.6-modern-cli/images/image13.png b/docs/zh-cn/stage-2/backend/modern-cli/images/image13.png similarity index 100% rename from docs/zh-cn/stage-2/backend/2.6-modern-cli/images/image13.png rename to docs/zh-cn/stage-2/backend/modern-cli/images/image13.png diff --git a/docs/zh-cn/stage-2/backend/2.6-modern-cli/images/image14.png b/docs/zh-cn/stage-2/backend/modern-cli/images/image14.png similarity index 100% rename from docs/zh-cn/stage-2/backend/2.6-modern-cli/images/image14.png rename to docs/zh-cn/stage-2/backend/modern-cli/images/image14.png diff --git a/docs/zh-cn/stage-2/backend/2.6-modern-cli/images/image15.png b/docs/zh-cn/stage-2/backend/modern-cli/images/image15.png similarity index 100% rename from docs/zh-cn/stage-2/backend/2.6-modern-cli/images/image15.png rename to docs/zh-cn/stage-2/backend/modern-cli/images/image15.png diff --git a/docs/zh-cn/stage-2/backend/2.6-modern-cli/images/image16.png b/docs/zh-cn/stage-2/backend/modern-cli/images/image16.png similarity index 100% rename from docs/zh-cn/stage-2/backend/2.6-modern-cli/images/image16.png rename to docs/zh-cn/stage-2/backend/modern-cli/images/image16.png diff --git a/docs/zh-cn/stage-2/backend/2.6-modern-cli/images/image17.png b/docs/zh-cn/stage-2/backend/modern-cli/images/image17.png similarity index 100% rename from docs/zh-cn/stage-2/backend/2.6-modern-cli/images/image17.png rename to docs/zh-cn/stage-2/backend/modern-cli/images/image17.png diff --git a/docs/zh-cn/stage-2/backend/2.6-modern-cli/images/image18.png b/docs/zh-cn/stage-2/backend/modern-cli/images/image18.png similarity index 100% rename from docs/zh-cn/stage-2/backend/2.6-modern-cli/images/image18.png rename to docs/zh-cn/stage-2/backend/modern-cli/images/image18.png diff --git a/docs/zh-cn/stage-2/backend/2.6-modern-cli/images/image19.png b/docs/zh-cn/stage-2/backend/modern-cli/images/image19.png similarity index 100% rename from docs/zh-cn/stage-2/backend/2.6-modern-cli/images/image19.png rename to docs/zh-cn/stage-2/backend/modern-cli/images/image19.png diff --git a/docs/zh-cn/stage-2/backend/2.6-modern-cli/images/image2.png b/docs/zh-cn/stage-2/backend/modern-cli/images/image2.png similarity index 100% rename from docs/zh-cn/stage-2/backend/2.6-modern-cli/images/image2.png rename to docs/zh-cn/stage-2/backend/modern-cli/images/image2.png diff --git a/docs/zh-cn/stage-2/backend/2.6-modern-cli/images/image20.png b/docs/zh-cn/stage-2/backend/modern-cli/images/image20.png similarity index 100% rename from docs/zh-cn/stage-2/backend/2.6-modern-cli/images/image20.png rename to docs/zh-cn/stage-2/backend/modern-cli/images/image20.png diff --git a/docs/zh-cn/stage-2/backend/2.6-modern-cli/images/image21.png b/docs/zh-cn/stage-2/backend/modern-cli/images/image21.png similarity index 100% rename from docs/zh-cn/stage-2/backend/2.6-modern-cli/images/image21.png rename to docs/zh-cn/stage-2/backend/modern-cli/images/image21.png diff --git a/docs/zh-cn/stage-2/backend/2.6-modern-cli/images/image22.png b/docs/zh-cn/stage-2/backend/modern-cli/images/image22.png similarity index 100% rename from docs/zh-cn/stage-2/backend/2.6-modern-cli/images/image22.png rename to docs/zh-cn/stage-2/backend/modern-cli/images/image22.png diff --git a/docs/zh-cn/stage-2/backend/2.6-modern-cli/images/image23.png b/docs/zh-cn/stage-2/backend/modern-cli/images/image23.png similarity index 100% rename from docs/zh-cn/stage-2/backend/2.6-modern-cli/images/image23.png rename to docs/zh-cn/stage-2/backend/modern-cli/images/image23.png diff --git a/docs/zh-cn/stage-2/backend/2.6-modern-cli/images/image24.png b/docs/zh-cn/stage-2/backend/modern-cli/images/image24.png similarity index 100% rename from docs/zh-cn/stage-2/backend/2.6-modern-cli/images/image24.png rename to docs/zh-cn/stage-2/backend/modern-cli/images/image24.png diff --git a/docs/zh-cn/stage-2/backend/2.6-modern-cli/images/image25.png b/docs/zh-cn/stage-2/backend/modern-cli/images/image25.png similarity index 100% rename from docs/zh-cn/stage-2/backend/2.6-modern-cli/images/image25.png rename to docs/zh-cn/stage-2/backend/modern-cli/images/image25.png diff --git a/docs/zh-cn/stage-2/backend/2.6-modern-cli/images/image26.png b/docs/zh-cn/stage-2/backend/modern-cli/images/image26.png similarity index 100% rename from docs/zh-cn/stage-2/backend/2.6-modern-cli/images/image26.png rename to docs/zh-cn/stage-2/backend/modern-cli/images/image26.png diff --git a/docs/zh-cn/stage-2/backend/2.6-modern-cli/images/image27.png b/docs/zh-cn/stage-2/backend/modern-cli/images/image27.png similarity index 100% rename from docs/zh-cn/stage-2/backend/2.6-modern-cli/images/image27.png rename to docs/zh-cn/stage-2/backend/modern-cli/images/image27.png diff --git a/docs/zh-cn/stage-2/backend/2.6-modern-cli/images/image28.png b/docs/zh-cn/stage-2/backend/modern-cli/images/image28.png similarity index 100% rename from docs/zh-cn/stage-2/backend/2.6-modern-cli/images/image28.png rename to docs/zh-cn/stage-2/backend/modern-cli/images/image28.png diff --git a/docs/zh-cn/stage-2/backend/2.6-modern-cli/images/image29.png b/docs/zh-cn/stage-2/backend/modern-cli/images/image29.png similarity index 100% rename from docs/zh-cn/stage-2/backend/2.6-modern-cli/images/image29.png rename to docs/zh-cn/stage-2/backend/modern-cli/images/image29.png diff --git a/docs/zh-cn/stage-2/backend/2.6-modern-cli/images/image3.png b/docs/zh-cn/stage-2/backend/modern-cli/images/image3.png similarity index 100% rename from docs/zh-cn/stage-2/backend/2.6-modern-cli/images/image3.png rename to docs/zh-cn/stage-2/backend/modern-cli/images/image3.png diff --git a/docs/zh-cn/stage-2/backend/2.6-modern-cli/images/image30.png b/docs/zh-cn/stage-2/backend/modern-cli/images/image30.png similarity index 100% rename from docs/zh-cn/stage-2/backend/2.6-modern-cli/images/image30.png rename to docs/zh-cn/stage-2/backend/modern-cli/images/image30.png diff --git a/docs/zh-cn/stage-2/backend/2.6-modern-cli/images/image31.png b/docs/zh-cn/stage-2/backend/modern-cli/images/image31.png similarity index 100% rename from docs/zh-cn/stage-2/backend/2.6-modern-cli/images/image31.png rename to docs/zh-cn/stage-2/backend/modern-cli/images/image31.png diff --git a/docs/zh-cn/stage-2/backend/2.6-modern-cli/images/image4.png b/docs/zh-cn/stage-2/backend/modern-cli/images/image4.png similarity index 100% rename from docs/zh-cn/stage-2/backend/2.6-modern-cli/images/image4.png rename to docs/zh-cn/stage-2/backend/modern-cli/images/image4.png diff --git a/docs/zh-cn/stage-2/backend/2.6-modern-cli/images/image5.png b/docs/zh-cn/stage-2/backend/modern-cli/images/image5.png similarity index 100% rename from docs/zh-cn/stage-2/backend/2.6-modern-cli/images/image5.png rename to docs/zh-cn/stage-2/backend/modern-cli/images/image5.png diff --git a/docs/zh-cn/stage-2/backend/2.6-modern-cli/images/image6.png b/docs/zh-cn/stage-2/backend/modern-cli/images/image6.png similarity index 100% rename from docs/zh-cn/stage-2/backend/2.6-modern-cli/images/image6.png rename to docs/zh-cn/stage-2/backend/modern-cli/images/image6.png diff --git a/docs/zh-cn/stage-2/backend/2.6-modern-cli/images/image7.png b/docs/zh-cn/stage-2/backend/modern-cli/images/image7.png similarity index 100% rename from docs/zh-cn/stage-2/backend/2.6-modern-cli/images/image7.png rename to docs/zh-cn/stage-2/backend/modern-cli/images/image7.png diff --git a/docs/zh-cn/stage-2/backend/2.6-modern-cli/images/image8.png b/docs/zh-cn/stage-2/backend/modern-cli/images/image8.png similarity index 100% rename from docs/zh-cn/stage-2/backend/2.6-modern-cli/images/image8.png rename to docs/zh-cn/stage-2/backend/modern-cli/images/image8.png diff --git a/docs/zh-cn/stage-2/backend/2.6-modern-cli/images/image9.png b/docs/zh-cn/stage-2/backend/modern-cli/images/image9.png similarity index 100% rename from docs/zh-cn/stage-2/backend/2.6-modern-cli/images/image9.png rename to docs/zh-cn/stage-2/backend/modern-cli/images/image9.png diff --git a/docs/zh-cn/stage-2/backend/2.6-modern-cli/index.md b/docs/zh-cn/stage-2/backend/modern-cli/index.md similarity index 100% rename from docs/zh-cn/stage-2/backend/2.6-modern-cli/index.md rename to docs/zh-cn/stage-2/backend/modern-cli/index.md diff --git a/docs/zh-cn/stage-2/backend/2.7-stripe-payment/index.md b/docs/zh-cn/stage-2/backend/stripe-payment/index.md similarity index 99% rename from docs/zh-cn/stage-2/backend/2.7-stripe-payment/index.md rename to docs/zh-cn/stage-2/backend/stripe-payment/index.md index 15b3a94..ebc7470 100644 --- a/docs/zh-cn/stage-2/backend/2.7-stripe-payment/index.md +++ b/docs/zh-cn/stage-2/backend/stripe-payment/index.md @@ -11,9 +11,9 @@ > 💡 建议先学完这些章节再继续 > -> - [从数据库到 Supabase](../2.2-database-supabase/) -> - [大模型辅助编写接口代码与接口文档](../2.3-ai-interface-code/) -> - [如何部署 Web 应用](../2.5-zeabur-deployment/) +> - [从数据库到 Supabase](../database-supabase/) +> - [大模型辅助编写接口代码与接口文档](../ai-interface-code/) +> - [如何部署 Web 应用](../zeabur-deployment/) # 你将学到 diff --git a/docs/zh-cn/stage-2/backend/2.5-zeabur-deployment/images/image1.png b/docs/zh-cn/stage-2/backend/zeabur-deployment/images/image1.png similarity index 100% rename from docs/zh-cn/stage-2/backend/2.5-zeabur-deployment/images/image1.png rename to docs/zh-cn/stage-2/backend/zeabur-deployment/images/image1.png diff --git a/docs/zh-cn/stage-2/backend/2.5-zeabur-deployment/images/image10.png b/docs/zh-cn/stage-2/backend/zeabur-deployment/images/image10.png similarity index 100% rename from docs/zh-cn/stage-2/backend/2.5-zeabur-deployment/images/image10.png rename to docs/zh-cn/stage-2/backend/zeabur-deployment/images/image10.png diff --git a/docs/zh-cn/stage-2/backend/2.5-zeabur-deployment/images/image11.png b/docs/zh-cn/stage-2/backend/zeabur-deployment/images/image11.png similarity index 100% rename from docs/zh-cn/stage-2/backend/2.5-zeabur-deployment/images/image11.png rename to docs/zh-cn/stage-2/backend/zeabur-deployment/images/image11.png diff --git a/docs/zh-cn/stage-2/backend/2.5-zeabur-deployment/images/image12.png b/docs/zh-cn/stage-2/backend/zeabur-deployment/images/image12.png similarity index 100% rename from docs/zh-cn/stage-2/backend/2.5-zeabur-deployment/images/image12.png rename to docs/zh-cn/stage-2/backend/zeabur-deployment/images/image12.png diff --git a/docs/zh-cn/stage-2/backend/2.5-zeabur-deployment/images/image13.png b/docs/zh-cn/stage-2/backend/zeabur-deployment/images/image13.png similarity index 100% rename from docs/zh-cn/stage-2/backend/2.5-zeabur-deployment/images/image13.png rename to docs/zh-cn/stage-2/backend/zeabur-deployment/images/image13.png diff --git a/docs/zh-cn/stage-2/backend/2.5-zeabur-deployment/images/image14.png b/docs/zh-cn/stage-2/backend/zeabur-deployment/images/image14.png similarity index 100% rename from docs/zh-cn/stage-2/backend/2.5-zeabur-deployment/images/image14.png rename to docs/zh-cn/stage-2/backend/zeabur-deployment/images/image14.png diff --git a/docs/zh-cn/stage-2/backend/2.5-zeabur-deployment/images/image15.png b/docs/zh-cn/stage-2/backend/zeabur-deployment/images/image15.png similarity index 100% rename from docs/zh-cn/stage-2/backend/2.5-zeabur-deployment/images/image15.png rename to docs/zh-cn/stage-2/backend/zeabur-deployment/images/image15.png diff --git a/docs/zh-cn/stage-2/backend/2.5-zeabur-deployment/images/image16.png b/docs/zh-cn/stage-2/backend/zeabur-deployment/images/image16.png similarity index 100% rename from docs/zh-cn/stage-2/backend/2.5-zeabur-deployment/images/image16.png rename to docs/zh-cn/stage-2/backend/zeabur-deployment/images/image16.png diff --git a/docs/zh-cn/stage-2/backend/2.5-zeabur-deployment/images/image17.png b/docs/zh-cn/stage-2/backend/zeabur-deployment/images/image17.png similarity index 100% rename from docs/zh-cn/stage-2/backend/2.5-zeabur-deployment/images/image17.png rename to docs/zh-cn/stage-2/backend/zeabur-deployment/images/image17.png diff --git a/docs/zh-cn/stage-2/backend/2.5-zeabur-deployment/images/image18.png b/docs/zh-cn/stage-2/backend/zeabur-deployment/images/image18.png similarity index 100% rename from docs/zh-cn/stage-2/backend/2.5-zeabur-deployment/images/image18.png rename to docs/zh-cn/stage-2/backend/zeabur-deployment/images/image18.png diff --git a/docs/zh-cn/stage-2/backend/2.5-zeabur-deployment/images/image19.png b/docs/zh-cn/stage-2/backend/zeabur-deployment/images/image19.png similarity index 100% rename from docs/zh-cn/stage-2/backend/2.5-zeabur-deployment/images/image19.png rename to docs/zh-cn/stage-2/backend/zeabur-deployment/images/image19.png diff --git a/docs/zh-cn/stage-2/backend/2.5-zeabur-deployment/images/image2.png b/docs/zh-cn/stage-2/backend/zeabur-deployment/images/image2.png similarity index 100% rename from docs/zh-cn/stage-2/backend/2.5-zeabur-deployment/images/image2.png rename to docs/zh-cn/stage-2/backend/zeabur-deployment/images/image2.png diff --git a/docs/zh-cn/stage-2/backend/2.5-zeabur-deployment/images/image20.png b/docs/zh-cn/stage-2/backend/zeabur-deployment/images/image20.png similarity index 100% rename from docs/zh-cn/stage-2/backend/2.5-zeabur-deployment/images/image20.png rename to docs/zh-cn/stage-2/backend/zeabur-deployment/images/image20.png diff --git a/docs/zh-cn/stage-2/backend/2.5-zeabur-deployment/images/image21.png b/docs/zh-cn/stage-2/backend/zeabur-deployment/images/image21.png similarity index 100% rename from docs/zh-cn/stage-2/backend/2.5-zeabur-deployment/images/image21.png rename to docs/zh-cn/stage-2/backend/zeabur-deployment/images/image21.png diff --git a/docs/zh-cn/stage-2/backend/2.5-zeabur-deployment/images/image22.png b/docs/zh-cn/stage-2/backend/zeabur-deployment/images/image22.png similarity index 100% rename from docs/zh-cn/stage-2/backend/2.5-zeabur-deployment/images/image22.png rename to docs/zh-cn/stage-2/backend/zeabur-deployment/images/image22.png diff --git a/docs/zh-cn/stage-2/backend/2.5-zeabur-deployment/images/image23.png b/docs/zh-cn/stage-2/backend/zeabur-deployment/images/image23.png similarity index 100% rename from docs/zh-cn/stage-2/backend/2.5-zeabur-deployment/images/image23.png rename to docs/zh-cn/stage-2/backend/zeabur-deployment/images/image23.png diff --git a/docs/zh-cn/stage-2/backend/2.5-zeabur-deployment/images/image24.png b/docs/zh-cn/stage-2/backend/zeabur-deployment/images/image24.png similarity index 100% rename from docs/zh-cn/stage-2/backend/2.5-zeabur-deployment/images/image24.png rename to docs/zh-cn/stage-2/backend/zeabur-deployment/images/image24.png diff --git a/docs/zh-cn/stage-2/backend/2.5-zeabur-deployment/images/image25.png b/docs/zh-cn/stage-2/backend/zeabur-deployment/images/image25.png similarity index 100% rename from docs/zh-cn/stage-2/backend/2.5-zeabur-deployment/images/image25.png rename to docs/zh-cn/stage-2/backend/zeabur-deployment/images/image25.png diff --git a/docs/zh-cn/stage-2/backend/2.5-zeabur-deployment/images/image26.png b/docs/zh-cn/stage-2/backend/zeabur-deployment/images/image26.png similarity index 100% rename from docs/zh-cn/stage-2/backend/2.5-zeabur-deployment/images/image26.png rename to docs/zh-cn/stage-2/backend/zeabur-deployment/images/image26.png diff --git a/docs/zh-cn/stage-2/backend/2.5-zeabur-deployment/images/image27.png b/docs/zh-cn/stage-2/backend/zeabur-deployment/images/image27.png similarity index 100% rename from docs/zh-cn/stage-2/backend/2.5-zeabur-deployment/images/image27.png rename to docs/zh-cn/stage-2/backend/zeabur-deployment/images/image27.png diff --git a/docs/zh-cn/stage-2/backend/2.5-zeabur-deployment/images/image28.png b/docs/zh-cn/stage-2/backend/zeabur-deployment/images/image28.png similarity index 100% rename from docs/zh-cn/stage-2/backend/2.5-zeabur-deployment/images/image28.png rename to docs/zh-cn/stage-2/backend/zeabur-deployment/images/image28.png diff --git a/docs/zh-cn/stage-2/backend/2.5-zeabur-deployment/images/image29.png b/docs/zh-cn/stage-2/backend/zeabur-deployment/images/image29.png similarity index 100% rename from docs/zh-cn/stage-2/backend/2.5-zeabur-deployment/images/image29.png rename to docs/zh-cn/stage-2/backend/zeabur-deployment/images/image29.png diff --git a/docs/zh-cn/stage-2/backend/2.5-zeabur-deployment/images/image3.png b/docs/zh-cn/stage-2/backend/zeabur-deployment/images/image3.png similarity index 100% rename from docs/zh-cn/stage-2/backend/2.5-zeabur-deployment/images/image3.png rename to docs/zh-cn/stage-2/backend/zeabur-deployment/images/image3.png diff --git a/docs/zh-cn/stage-2/backend/2.5-zeabur-deployment/images/image30.png b/docs/zh-cn/stage-2/backend/zeabur-deployment/images/image30.png similarity index 100% rename from docs/zh-cn/stage-2/backend/2.5-zeabur-deployment/images/image30.png rename to docs/zh-cn/stage-2/backend/zeabur-deployment/images/image30.png diff --git a/docs/zh-cn/stage-2/backend/2.5-zeabur-deployment/images/image31.png b/docs/zh-cn/stage-2/backend/zeabur-deployment/images/image31.png similarity index 100% rename from docs/zh-cn/stage-2/backend/2.5-zeabur-deployment/images/image31.png rename to docs/zh-cn/stage-2/backend/zeabur-deployment/images/image31.png diff --git a/docs/zh-cn/stage-2/backend/2.5-zeabur-deployment/images/image32.png b/docs/zh-cn/stage-2/backend/zeabur-deployment/images/image32.png similarity index 100% rename from docs/zh-cn/stage-2/backend/2.5-zeabur-deployment/images/image32.png rename to docs/zh-cn/stage-2/backend/zeabur-deployment/images/image32.png diff --git a/docs/zh-cn/stage-2/backend/2.5-zeabur-deployment/images/image33.png b/docs/zh-cn/stage-2/backend/zeabur-deployment/images/image33.png similarity index 100% rename from docs/zh-cn/stage-2/backend/2.5-zeabur-deployment/images/image33.png rename to docs/zh-cn/stage-2/backend/zeabur-deployment/images/image33.png diff --git a/docs/zh-cn/stage-2/backend/2.5-zeabur-deployment/images/image34.png b/docs/zh-cn/stage-2/backend/zeabur-deployment/images/image34.png similarity index 100% rename from docs/zh-cn/stage-2/backend/2.5-zeabur-deployment/images/image34.png rename to docs/zh-cn/stage-2/backend/zeabur-deployment/images/image34.png diff --git a/docs/zh-cn/stage-2/backend/2.5-zeabur-deployment/images/image35.png b/docs/zh-cn/stage-2/backend/zeabur-deployment/images/image35.png similarity index 100% rename from docs/zh-cn/stage-2/backend/2.5-zeabur-deployment/images/image35.png rename to docs/zh-cn/stage-2/backend/zeabur-deployment/images/image35.png diff --git a/docs/zh-cn/stage-2/backend/2.5-zeabur-deployment/images/image36.png b/docs/zh-cn/stage-2/backend/zeabur-deployment/images/image36.png similarity index 100% rename from docs/zh-cn/stage-2/backend/2.5-zeabur-deployment/images/image36.png rename to docs/zh-cn/stage-2/backend/zeabur-deployment/images/image36.png diff --git a/docs/zh-cn/stage-2/backend/2.5-zeabur-deployment/images/image4.png b/docs/zh-cn/stage-2/backend/zeabur-deployment/images/image4.png similarity index 100% rename from docs/zh-cn/stage-2/backend/2.5-zeabur-deployment/images/image4.png rename to docs/zh-cn/stage-2/backend/zeabur-deployment/images/image4.png diff --git a/docs/zh-cn/stage-2/backend/2.5-zeabur-deployment/images/image5.png b/docs/zh-cn/stage-2/backend/zeabur-deployment/images/image5.png similarity index 100% rename from docs/zh-cn/stage-2/backend/2.5-zeabur-deployment/images/image5.png rename to docs/zh-cn/stage-2/backend/zeabur-deployment/images/image5.png diff --git a/docs/zh-cn/stage-2/backend/2.5-zeabur-deployment/images/image6.png b/docs/zh-cn/stage-2/backend/zeabur-deployment/images/image6.png similarity index 100% rename from docs/zh-cn/stage-2/backend/2.5-zeabur-deployment/images/image6.png rename to docs/zh-cn/stage-2/backend/zeabur-deployment/images/image6.png diff --git a/docs/zh-cn/stage-2/backend/2.5-zeabur-deployment/images/image7.png b/docs/zh-cn/stage-2/backend/zeabur-deployment/images/image7.png similarity index 100% rename from docs/zh-cn/stage-2/backend/2.5-zeabur-deployment/images/image7.png rename to docs/zh-cn/stage-2/backend/zeabur-deployment/images/image7.png diff --git a/docs/zh-cn/stage-2/backend/2.5-zeabur-deployment/images/image8.png b/docs/zh-cn/stage-2/backend/zeabur-deployment/images/image8.png similarity index 100% rename from docs/zh-cn/stage-2/backend/2.5-zeabur-deployment/images/image8.png rename to docs/zh-cn/stage-2/backend/zeabur-deployment/images/image8.png diff --git a/docs/zh-cn/stage-2/backend/2.5-zeabur-deployment/images/image9.png b/docs/zh-cn/stage-2/backend/zeabur-deployment/images/image9.png similarity index 100% rename from docs/zh-cn/stage-2/backend/2.5-zeabur-deployment/images/image9.png rename to docs/zh-cn/stage-2/backend/zeabur-deployment/images/image9.png diff --git a/docs/zh-cn/stage-2/backend/2.5-zeabur-deployment/index.md b/docs/zh-cn/stage-2/backend/zeabur-deployment/index.md similarity index 100% rename from docs/zh-cn/stage-2/backend/2.5-zeabur-deployment/index.md rename to docs/zh-cn/stage-2/backend/zeabur-deployment/index.md diff --git a/docs/zh-cn/stage-2/frontend/2.1-figma-mastergo/images/image42.png b/docs/zh-cn/stage-2/frontend/design-to-code/images/image42.png similarity index 100% rename from docs/zh-cn/stage-2/frontend/2.1-figma-mastergo/images/image42.png rename to docs/zh-cn/stage-2/frontend/design-to-code/images/image42.png diff --git a/docs/zh-cn/stage-2/frontend/2.1-figma-mastergo/images/image43.png b/docs/zh-cn/stage-2/frontend/design-to-code/images/image43.png similarity index 100% rename from docs/zh-cn/stage-2/frontend/2.1-figma-mastergo/images/image43.png rename to docs/zh-cn/stage-2/frontend/design-to-code/images/image43.png diff --git a/docs/zh-cn/stage-2/frontend/2.1-figma-mastergo/images/image44.png b/docs/zh-cn/stage-2/frontend/design-to-code/images/image44.png similarity index 100% rename from docs/zh-cn/stage-2/frontend/2.1-figma-mastergo/images/image44.png rename to docs/zh-cn/stage-2/frontend/design-to-code/images/image44.png diff --git a/docs/zh-cn/stage-2/frontend/2.1-figma-mastergo/images/image45.png b/docs/zh-cn/stage-2/frontend/design-to-code/images/image45.png similarity index 100% rename from docs/zh-cn/stage-2/frontend/2.1-figma-mastergo/images/image45.png rename to docs/zh-cn/stage-2/frontend/design-to-code/images/image45.png diff --git a/docs/zh-cn/stage-2/frontend/2.1-figma-mastergo/images/image46.png b/docs/zh-cn/stage-2/frontend/design-to-code/images/image46.png similarity index 100% rename from docs/zh-cn/stage-2/frontend/2.1-figma-mastergo/images/image46.png rename to docs/zh-cn/stage-2/frontend/design-to-code/images/image46.png diff --git a/docs/zh-cn/stage-2/frontend/2.1-figma-mastergo/images/image47.png b/docs/zh-cn/stage-2/frontend/design-to-code/images/image47.png similarity index 100% rename from docs/zh-cn/stage-2/frontend/2.1-figma-mastergo/images/image47.png rename to docs/zh-cn/stage-2/frontend/design-to-code/images/image47.png diff --git a/docs/zh-cn/stage-2/frontend/2.1-figma-mastergo/images/image48.png b/docs/zh-cn/stage-2/frontend/design-to-code/images/image48.png similarity index 100% rename from docs/zh-cn/stage-2/frontend/2.1-figma-mastergo/images/image48.png rename to docs/zh-cn/stage-2/frontend/design-to-code/images/image48.png diff --git a/docs/zh-cn/stage-2/frontend/2.1-figma-mastergo/images/image49.png b/docs/zh-cn/stage-2/frontend/design-to-code/images/image49.png similarity index 100% rename from docs/zh-cn/stage-2/frontend/2.1-figma-mastergo/images/image49.png rename to docs/zh-cn/stage-2/frontend/design-to-code/images/image49.png diff --git a/docs/zh-cn/stage-2/frontend/2.1-figma-mastergo/images/image50.png b/docs/zh-cn/stage-2/frontend/design-to-code/images/image50.png similarity index 100% rename from docs/zh-cn/stage-2/frontend/2.1-figma-mastergo/images/image50.png rename to docs/zh-cn/stage-2/frontend/design-to-code/images/image50.png diff --git a/docs/zh-cn/stage-2/frontend/2.6-design-to-code/index.md b/docs/zh-cn/stage-2/frontend/design-to-code/index.md similarity index 98% rename from docs/zh-cn/stage-2/frontend/2.6-design-to-code/index.md rename to docs/zh-cn/stage-2/frontend/design-to-code/index.md index b8f3b80..b05789f 100644 --- a/docs/zh-cn/stage-2/frontend/2.6-design-to-code/index.md +++ b/docs/zh-cn/stage-2/frontend/design-to-code/index.md @@ -21,7 +21,7 @@ 本文将详细介绍这三种路径的具体实现方法,帮助你根据项目需求选择最合适的工作流。 ::: tip 📚 前置知识 -在开始本节之前,建议你先学习 [Figma 与 MasterGo 入门](../2.1-figma-mastergo/) 教程,掌握前端设计工具的基础操作。 +在开始本节之前,建议你先学习 [Figma 与 MasterGo 入门](../figma-mastergo/) 教程,掌握前端设计工具的基础操作。 ::: --- @@ -354,8 +354,8 @@ MCP 协议正在快速发展,未来设计工具与开发环境的集成将更 ## 参考资源 -- [Figma 与 MasterGo 入门](../2.1-figma-mastergo/) - 学习设计工具基础 -- [一起做霍格沃茨画像](../2.4-hogwarts-portraits/) - 完整项目实战 +- [Figma 与 MasterGo 入门](../figma-mastergo/) - 学习设计工具基础 +- [一起做霍格沃茨画像](../hogwarts-portraits/) - 完整项目实战 - [MCP 官方文档](https://modelcontextprotocol.io/) - 了解协议详情 - [Figma Make 官方文档](https://help.figma.com/hc/en-us/sections/360007453634-Figma-Make) - [MasterGo AI 教程](https://mastergo.com/tutorials) diff --git a/docs/zh-cn/stage-2/frontend/2.1-figma-mastergo/images/image10.png b/docs/zh-cn/stage-2/frontend/figma-mastergo/images/image10.png similarity index 100% rename from docs/zh-cn/stage-2/frontend/2.1-figma-mastergo/images/image10.png rename to docs/zh-cn/stage-2/frontend/figma-mastergo/images/image10.png diff --git a/docs/zh-cn/stage-2/frontend/2.1-figma-mastergo/images/image11.png b/docs/zh-cn/stage-2/frontend/figma-mastergo/images/image11.png similarity index 100% rename from docs/zh-cn/stage-2/frontend/2.1-figma-mastergo/images/image11.png rename to docs/zh-cn/stage-2/frontend/figma-mastergo/images/image11.png diff --git a/docs/zh-cn/stage-2/frontend/2.1-figma-mastergo/images/image12.png b/docs/zh-cn/stage-2/frontend/figma-mastergo/images/image12.png similarity index 100% rename from docs/zh-cn/stage-2/frontend/2.1-figma-mastergo/images/image12.png rename to docs/zh-cn/stage-2/frontend/figma-mastergo/images/image12.png diff --git a/docs/zh-cn/stage-2/frontend/2.1-figma-mastergo/images/image13.png b/docs/zh-cn/stage-2/frontend/figma-mastergo/images/image13.png similarity index 100% rename from docs/zh-cn/stage-2/frontend/2.1-figma-mastergo/images/image13.png rename to docs/zh-cn/stage-2/frontend/figma-mastergo/images/image13.png diff --git a/docs/zh-cn/stage-2/frontend/2.1-figma-mastergo/images/image14.png b/docs/zh-cn/stage-2/frontend/figma-mastergo/images/image14.png similarity index 100% rename from docs/zh-cn/stage-2/frontend/2.1-figma-mastergo/images/image14.png rename to docs/zh-cn/stage-2/frontend/figma-mastergo/images/image14.png diff --git a/docs/zh-cn/stage-2/frontend/2.1-figma-mastergo/images/image15.png b/docs/zh-cn/stage-2/frontend/figma-mastergo/images/image15.png similarity index 100% rename from docs/zh-cn/stage-2/frontend/2.1-figma-mastergo/images/image15.png rename to docs/zh-cn/stage-2/frontend/figma-mastergo/images/image15.png diff --git a/docs/zh-cn/stage-2/frontend/2.1-figma-mastergo/images/image16.png b/docs/zh-cn/stage-2/frontend/figma-mastergo/images/image16.png similarity index 100% rename from docs/zh-cn/stage-2/frontend/2.1-figma-mastergo/images/image16.png rename to docs/zh-cn/stage-2/frontend/figma-mastergo/images/image16.png diff --git a/docs/zh-cn/stage-2/frontend/2.1-figma-mastergo/images/image17.png b/docs/zh-cn/stage-2/frontend/figma-mastergo/images/image17.png similarity index 100% rename from docs/zh-cn/stage-2/frontend/2.1-figma-mastergo/images/image17.png rename to docs/zh-cn/stage-2/frontend/figma-mastergo/images/image17.png diff --git a/docs/zh-cn/stage-2/frontend/2.1-figma-mastergo/images/image18.png b/docs/zh-cn/stage-2/frontend/figma-mastergo/images/image18.png similarity index 100% rename from docs/zh-cn/stage-2/frontend/2.1-figma-mastergo/images/image18.png rename to docs/zh-cn/stage-2/frontend/figma-mastergo/images/image18.png diff --git a/docs/zh-cn/stage-2/frontend/2.1-figma-mastergo/images/image19.png b/docs/zh-cn/stage-2/frontend/figma-mastergo/images/image19.png similarity index 100% rename from docs/zh-cn/stage-2/frontend/2.1-figma-mastergo/images/image19.png rename to docs/zh-cn/stage-2/frontend/figma-mastergo/images/image19.png diff --git a/docs/zh-cn/stage-2/frontend/2.1-figma-mastergo/images/image20.png b/docs/zh-cn/stage-2/frontend/figma-mastergo/images/image20.png similarity index 100% rename from docs/zh-cn/stage-2/frontend/2.1-figma-mastergo/images/image20.png rename to docs/zh-cn/stage-2/frontend/figma-mastergo/images/image20.png diff --git a/docs/zh-cn/stage-2/frontend/2.1-figma-mastergo/images/image21.png b/docs/zh-cn/stage-2/frontend/figma-mastergo/images/image21.png similarity index 100% rename from docs/zh-cn/stage-2/frontend/2.1-figma-mastergo/images/image21.png rename to docs/zh-cn/stage-2/frontend/figma-mastergo/images/image21.png diff --git a/docs/zh-cn/stage-2/frontend/2.1-figma-mastergo/images/image22.png b/docs/zh-cn/stage-2/frontend/figma-mastergo/images/image22.png similarity index 100% rename from docs/zh-cn/stage-2/frontend/2.1-figma-mastergo/images/image22.png rename to docs/zh-cn/stage-2/frontend/figma-mastergo/images/image22.png diff --git a/docs/zh-cn/stage-2/frontend/2.1-figma-mastergo/images/image23.png b/docs/zh-cn/stage-2/frontend/figma-mastergo/images/image23.png similarity index 100% rename from docs/zh-cn/stage-2/frontend/2.1-figma-mastergo/images/image23.png rename to docs/zh-cn/stage-2/frontend/figma-mastergo/images/image23.png diff --git a/docs/zh-cn/stage-2/frontend/2.1-figma-mastergo/images/image24.png b/docs/zh-cn/stage-2/frontend/figma-mastergo/images/image24.png similarity index 100% rename from docs/zh-cn/stage-2/frontend/2.1-figma-mastergo/images/image24.png rename to docs/zh-cn/stage-2/frontend/figma-mastergo/images/image24.png diff --git a/docs/zh-cn/stage-2/frontend/2.1-figma-mastergo/images/image25.png b/docs/zh-cn/stage-2/frontend/figma-mastergo/images/image25.png similarity index 100% rename from docs/zh-cn/stage-2/frontend/2.1-figma-mastergo/images/image25.png rename to docs/zh-cn/stage-2/frontend/figma-mastergo/images/image25.png diff --git a/docs/zh-cn/stage-2/frontend/2.1-figma-mastergo/images/image26.png b/docs/zh-cn/stage-2/frontend/figma-mastergo/images/image26.png similarity index 100% rename from docs/zh-cn/stage-2/frontend/2.1-figma-mastergo/images/image26.png rename to docs/zh-cn/stage-2/frontend/figma-mastergo/images/image26.png diff --git a/docs/zh-cn/stage-2/frontend/2.1-figma-mastergo/images/image27.png b/docs/zh-cn/stage-2/frontend/figma-mastergo/images/image27.png similarity index 100% rename from docs/zh-cn/stage-2/frontend/2.1-figma-mastergo/images/image27.png rename to docs/zh-cn/stage-2/frontend/figma-mastergo/images/image27.png diff --git a/docs/zh-cn/stage-2/frontend/2.1-figma-mastergo/images/image28.png b/docs/zh-cn/stage-2/frontend/figma-mastergo/images/image28.png similarity index 100% rename from docs/zh-cn/stage-2/frontend/2.1-figma-mastergo/images/image28.png rename to docs/zh-cn/stage-2/frontend/figma-mastergo/images/image28.png diff --git a/docs/zh-cn/stage-2/frontend/2.1-figma-mastergo/images/image29.png b/docs/zh-cn/stage-2/frontend/figma-mastergo/images/image29.png similarity index 100% rename from docs/zh-cn/stage-2/frontend/2.1-figma-mastergo/images/image29.png rename to docs/zh-cn/stage-2/frontend/figma-mastergo/images/image29.png diff --git a/docs/zh-cn/stage-2/frontend/2.1-figma-mastergo/images/image30.png b/docs/zh-cn/stage-2/frontend/figma-mastergo/images/image30.png similarity index 100% rename from docs/zh-cn/stage-2/frontend/2.1-figma-mastergo/images/image30.png rename to docs/zh-cn/stage-2/frontend/figma-mastergo/images/image30.png diff --git a/docs/zh-cn/stage-2/frontend/2.1-figma-mastergo/images/image31.png b/docs/zh-cn/stage-2/frontend/figma-mastergo/images/image31.png similarity index 100% rename from docs/zh-cn/stage-2/frontend/2.1-figma-mastergo/images/image31.png rename to docs/zh-cn/stage-2/frontend/figma-mastergo/images/image31.png diff --git a/docs/zh-cn/stage-2/frontend/2.1-figma-mastergo/images/image32.png b/docs/zh-cn/stage-2/frontend/figma-mastergo/images/image32.png similarity index 100% rename from docs/zh-cn/stage-2/frontend/2.1-figma-mastergo/images/image32.png rename to docs/zh-cn/stage-2/frontend/figma-mastergo/images/image32.png diff --git a/docs/zh-cn/stage-2/frontend/2.1-figma-mastergo/images/image33.png b/docs/zh-cn/stage-2/frontend/figma-mastergo/images/image33.png similarity index 100% rename from docs/zh-cn/stage-2/frontend/2.1-figma-mastergo/images/image33.png rename to docs/zh-cn/stage-2/frontend/figma-mastergo/images/image33.png diff --git a/docs/zh-cn/stage-2/frontend/2.1-figma-mastergo/images/image34.png b/docs/zh-cn/stage-2/frontend/figma-mastergo/images/image34.png similarity index 100% rename from docs/zh-cn/stage-2/frontend/2.1-figma-mastergo/images/image34.png rename to docs/zh-cn/stage-2/frontend/figma-mastergo/images/image34.png diff --git a/docs/zh-cn/stage-2/frontend/2.1-figma-mastergo/images/image35.png b/docs/zh-cn/stage-2/frontend/figma-mastergo/images/image35.png similarity index 100% rename from docs/zh-cn/stage-2/frontend/2.1-figma-mastergo/images/image35.png rename to docs/zh-cn/stage-2/frontend/figma-mastergo/images/image35.png diff --git a/docs/zh-cn/stage-2/frontend/2.1-figma-mastergo/images/image36.png b/docs/zh-cn/stage-2/frontend/figma-mastergo/images/image36.png similarity index 100% rename from docs/zh-cn/stage-2/frontend/2.1-figma-mastergo/images/image36.png rename to docs/zh-cn/stage-2/frontend/figma-mastergo/images/image36.png diff --git a/docs/zh-cn/stage-2/frontend/2.1-figma-mastergo/images/image37.png b/docs/zh-cn/stage-2/frontend/figma-mastergo/images/image37.png similarity index 100% rename from docs/zh-cn/stage-2/frontend/2.1-figma-mastergo/images/image37.png rename to docs/zh-cn/stage-2/frontend/figma-mastergo/images/image37.png diff --git a/docs/zh-cn/stage-2/frontend/2.1-figma-mastergo/images/image38.png b/docs/zh-cn/stage-2/frontend/figma-mastergo/images/image38.png similarity index 100% rename from docs/zh-cn/stage-2/frontend/2.1-figma-mastergo/images/image38.png rename to docs/zh-cn/stage-2/frontend/figma-mastergo/images/image38.png diff --git a/docs/zh-cn/stage-2/frontend/2.1-figma-mastergo/images/image39.png b/docs/zh-cn/stage-2/frontend/figma-mastergo/images/image39.png similarity index 100% rename from docs/zh-cn/stage-2/frontend/2.1-figma-mastergo/images/image39.png rename to docs/zh-cn/stage-2/frontend/figma-mastergo/images/image39.png diff --git a/docs/zh-cn/stage-2/frontend/2.1-figma-mastergo/images/image40.png b/docs/zh-cn/stage-2/frontend/figma-mastergo/images/image40.png similarity index 100% rename from docs/zh-cn/stage-2/frontend/2.1-figma-mastergo/images/image40.png rename to docs/zh-cn/stage-2/frontend/figma-mastergo/images/image40.png diff --git a/docs/zh-cn/stage-2/frontend/2.1-figma-mastergo/images/image41.png b/docs/zh-cn/stage-2/frontend/figma-mastergo/images/image41.png similarity index 100% rename from docs/zh-cn/stage-2/frontend/2.1-figma-mastergo/images/image41.png rename to docs/zh-cn/stage-2/frontend/figma-mastergo/images/image41.png diff --git a/docs/zh-cn/stage-2/frontend/2.5-hogwarts-portraits/images/image42.png b/docs/zh-cn/stage-2/frontend/figma-mastergo/images/image42.png similarity index 100% rename from docs/zh-cn/stage-2/frontend/2.5-hogwarts-portraits/images/image42.png rename to docs/zh-cn/stage-2/frontend/figma-mastergo/images/image42.png diff --git a/docs/zh-cn/stage-2/frontend/2.5-hogwarts-portraits/images/image43.png b/docs/zh-cn/stage-2/frontend/figma-mastergo/images/image43.png similarity index 100% rename from docs/zh-cn/stage-2/frontend/2.5-hogwarts-portraits/images/image43.png rename to docs/zh-cn/stage-2/frontend/figma-mastergo/images/image43.png diff --git a/docs/zh-cn/stage-2/frontend/2.5-hogwarts-portraits/images/image44.png b/docs/zh-cn/stage-2/frontend/figma-mastergo/images/image44.png similarity index 100% rename from docs/zh-cn/stage-2/frontend/2.5-hogwarts-portraits/images/image44.png rename to docs/zh-cn/stage-2/frontend/figma-mastergo/images/image44.png diff --git a/docs/zh-cn/stage-2/frontend/2.5-hogwarts-portraits/images/image45.png b/docs/zh-cn/stage-2/frontend/figma-mastergo/images/image45.png similarity index 100% rename from docs/zh-cn/stage-2/frontend/2.5-hogwarts-portraits/images/image45.png rename to docs/zh-cn/stage-2/frontend/figma-mastergo/images/image45.png diff --git a/docs/zh-cn/stage-2/frontend/2.5-hogwarts-portraits/images/image46.png b/docs/zh-cn/stage-2/frontend/figma-mastergo/images/image46.png similarity index 100% rename from docs/zh-cn/stage-2/frontend/2.5-hogwarts-portraits/images/image46.png rename to docs/zh-cn/stage-2/frontend/figma-mastergo/images/image46.png diff --git a/docs/zh-cn/stage-2/frontend/2.5-hogwarts-portraits/images/image47.png b/docs/zh-cn/stage-2/frontend/figma-mastergo/images/image47.png similarity index 100% rename from docs/zh-cn/stage-2/frontend/2.5-hogwarts-portraits/images/image47.png rename to docs/zh-cn/stage-2/frontend/figma-mastergo/images/image47.png diff --git a/docs/zh-cn/stage-2/frontend/2.5-hogwarts-portraits/images/image48.png b/docs/zh-cn/stage-2/frontend/figma-mastergo/images/image48.png similarity index 100% rename from docs/zh-cn/stage-2/frontend/2.5-hogwarts-portraits/images/image48.png rename to docs/zh-cn/stage-2/frontend/figma-mastergo/images/image48.png diff --git a/docs/zh-cn/stage-2/frontend/2.5-hogwarts-portraits/images/image49.png b/docs/zh-cn/stage-2/frontend/figma-mastergo/images/image49.png similarity index 100% rename from docs/zh-cn/stage-2/frontend/2.5-hogwarts-portraits/images/image49.png rename to docs/zh-cn/stage-2/frontend/figma-mastergo/images/image49.png diff --git a/docs/zh-cn/stage-2/frontend/2.5-hogwarts-portraits/images/image50.png b/docs/zh-cn/stage-2/frontend/figma-mastergo/images/image50.png similarity index 100% rename from docs/zh-cn/stage-2/frontend/2.5-hogwarts-portraits/images/image50.png rename to docs/zh-cn/stage-2/frontend/figma-mastergo/images/image50.png diff --git a/docs/zh-cn/stage-2/frontend/2.1-figma-mastergo/images/image8.png b/docs/zh-cn/stage-2/frontend/figma-mastergo/images/image8.png similarity index 100% rename from docs/zh-cn/stage-2/frontend/2.1-figma-mastergo/images/image8.png rename to docs/zh-cn/stage-2/frontend/figma-mastergo/images/image8.png diff --git a/docs/zh-cn/stage-2/frontend/2.1-figma-mastergo/images/image9.png b/docs/zh-cn/stage-2/frontend/figma-mastergo/images/image9.png similarity index 100% rename from docs/zh-cn/stage-2/frontend/2.1-figma-mastergo/images/image9.png rename to docs/zh-cn/stage-2/frontend/figma-mastergo/images/image9.png diff --git a/docs/zh-cn/stage-2/frontend/2.1-figma-mastergo/index.md b/docs/zh-cn/stage-2/frontend/figma-mastergo/index.md similarity index 98% rename from docs/zh-cn/stage-2/frontend/2.1-figma-mastergo/index.md rename to docs/zh-cn/stage-2/frontend/figma-mastergo/index.md index 2b0545a..884a11e 100644 --- a/docs/zh-cn/stage-2/frontend/2.1-figma-mastergo/index.md +++ b/docs/zh-cn/stage-2/frontend/figma-mastergo/index.md @@ -3,7 +3,7 @@ ::: tip 🎯 核心问题 @@ -259,7 +259,7 @@ const relatedArticles = relatedArticlesMap['zh-cn/stage-2/frontend/2.1-figma-mas 在前面的内容中,我们已经学习了 Figma 和 MasterGo 的基础操作,能够创建出结构完整的界面原型。接下来的关键步骤是:**如何将这些设计稿转化为真正能在浏览器里运行的前端代码?** ::: tip 📚 后续教程 -详细的方法介绍请参考 [从设计原型到项目代码](../2.5-design-to-code/),你将学习到: +详细的方法介绍请参考 [从设计原型到项目代码](../design-to-code/),你将学习到: - **多模态 AI 直接转换**:将设计稿截图发给 AI,直接生成 HTML/React 代码 - **Figma Make**:使用 Figma 官方 AI 工具高精度还原设计并导出代码 @@ -291,9 +291,9 @@ const relatedArticles = relatedArticlesMap['zh-cn/stage-2/frontend/2.1-figma-mas 现在你已经掌握了前端设计工具的基础使用方法,可以尝试: - 为自己设计一个个人作品集页面 - 为接下来的项目设计界面原型 -- 学习 [从设计原型到项目代码](../2.5-design-to-code/),将设计稿转化为可运行的代码 +- 学习 [从设计原型到项目代码](../design-to-code/),将设计稿转化为可运行的代码 -如果你在完成 [一起做霍格沃茨画像](../2.4-hogwarts-portraits/) 项目,可以先设计界面原型,再导出代码与 AI 对话功能结合。 +如果你在完成 [一起做霍格沃茨画像](../hogwarts-portraits/) 项目,可以先设计界面原型,再导出代码与 AI 对话功能结合。 ::: import { relatedArticlesMap } from '@theme/data/relatedArticles' -const relatedArticles = relatedArticlesMap['zh-cn/stage-2/frontend/2.0-lovart-assets'] ?? [] +const relatedArticles = relatedArticlesMap['zh-cn/stage-2/frontend/lovart-assets'] ?? [] # 从 NanoBanana 出发,搭建自己的素材生产Agent diff --git a/docs/zh-cn/stage-2/frontend/2.7-modern-component-library/index.md b/docs/zh-cn/stage-2/frontend/modern-component-library/index.md similarity index 100% rename from docs/zh-cn/stage-2/frontend/2.7-modern-component-library/index.md rename to docs/zh-cn/stage-2/frontend/modern-component-library/index.md diff --git a/docs/zh-cn/stage-2/frontend/2.3-multi-product-ui/index.md b/docs/zh-cn/stage-2/frontend/multi-product-ui/index.md similarity index 100% rename from docs/zh-cn/stage-2/frontend/2.3-multi-product-ui/index.md rename to docs/zh-cn/stage-2/frontend/multi-product-ui/index.md diff --git a/docs/zh-cn/stage-2/frontend/2.2-ui-design/index.md b/docs/zh-cn/stage-2/frontend/ui-design/index.md similarity index 100% rename from docs/zh-cn/stage-2/frontend/2.2-ui-design/index.md rename to docs/zh-cn/stage-2/frontend/ui-design/index.md diff --git a/docs/zh-cn/stage-2/index.md b/docs/zh-cn/stage-2/index.md index 0577fa3..d9bb9e7 100644 --- a/docs/zh-cn/stage-2/index.md +++ b/docs/zh-cn/stage-2/index.md @@ -10,42 +10,42 @@ @@ -57,32 +57,32 @@ @@ -171,7 +171,7 @@ flowchart LR diff --git a/docs/zh-cn/stage-3/ai-advanced/3.a2-langgraph-advanced-rag/index.md b/docs/zh-cn/stage-3/ai-advanced/langgraph-advanced-rag/index.md similarity index 100% rename from docs/zh-cn/stage-3/ai-advanced/3.a2-langgraph-advanced-rag/index.md rename to docs/zh-cn/stage-3/ai-advanced/langgraph-advanced-rag/index.md diff --git a/docs/zh-cn/stage-3/ai-advanced/3.a3-llamaindex-enterprise-knowledge-base/index.md b/docs/zh-cn/stage-3/ai-advanced/llamaindex-enterprise-knowledge-base/index.md similarity index 100% rename from docs/zh-cn/stage-3/ai-advanced/3.a3-llamaindex-enterprise-knowledge-base/index.md rename to docs/zh-cn/stage-3/ai-advanced/llamaindex-enterprise-knowledge-base/index.md diff --git a/docs/zh-cn/stage-3/ai-advanced/3.a1-rag-introduction/images/image1.png b/docs/zh-cn/stage-3/ai-advanced/rag-introduction/images/image1.png similarity index 100% rename from docs/zh-cn/stage-3/ai-advanced/3.a1-rag-introduction/images/image1.png rename to docs/zh-cn/stage-3/ai-advanced/rag-introduction/images/image1.png diff --git a/docs/zh-cn/stage-3/ai-advanced/3.a1-rag-introduction/images/image10.png b/docs/zh-cn/stage-3/ai-advanced/rag-introduction/images/image10.png similarity index 100% rename from docs/zh-cn/stage-3/ai-advanced/3.a1-rag-introduction/images/image10.png rename to docs/zh-cn/stage-3/ai-advanced/rag-introduction/images/image10.png diff --git a/docs/zh-cn/stage-3/ai-advanced/3.a1-rag-introduction/images/image11.png b/docs/zh-cn/stage-3/ai-advanced/rag-introduction/images/image11.png similarity index 100% rename from docs/zh-cn/stage-3/ai-advanced/3.a1-rag-introduction/images/image11.png rename to docs/zh-cn/stage-3/ai-advanced/rag-introduction/images/image11.png diff --git a/docs/zh-cn/stage-3/ai-advanced/3.a1-rag-introduction/images/image12.png b/docs/zh-cn/stage-3/ai-advanced/rag-introduction/images/image12.png similarity index 100% rename from docs/zh-cn/stage-3/ai-advanced/3.a1-rag-introduction/images/image12.png rename to docs/zh-cn/stage-3/ai-advanced/rag-introduction/images/image12.png diff --git a/docs/zh-cn/stage-3/ai-advanced/3.a1-rag-introduction/images/image13.png b/docs/zh-cn/stage-3/ai-advanced/rag-introduction/images/image13.png similarity index 100% rename from docs/zh-cn/stage-3/ai-advanced/3.a1-rag-introduction/images/image13.png rename to docs/zh-cn/stage-3/ai-advanced/rag-introduction/images/image13.png diff --git a/docs/zh-cn/stage-3/ai-advanced/3.a1-rag-introduction/images/image14.png b/docs/zh-cn/stage-3/ai-advanced/rag-introduction/images/image14.png similarity index 100% rename from docs/zh-cn/stage-3/ai-advanced/3.a1-rag-introduction/images/image14.png rename to docs/zh-cn/stage-3/ai-advanced/rag-introduction/images/image14.png diff --git a/docs/zh-cn/stage-3/ai-advanced/3.a1-rag-introduction/images/image15.png b/docs/zh-cn/stage-3/ai-advanced/rag-introduction/images/image15.png similarity index 100% rename from docs/zh-cn/stage-3/ai-advanced/3.a1-rag-introduction/images/image15.png rename to docs/zh-cn/stage-3/ai-advanced/rag-introduction/images/image15.png diff --git a/docs/zh-cn/stage-3/ai-advanced/3.a1-rag-introduction/images/image2.png b/docs/zh-cn/stage-3/ai-advanced/rag-introduction/images/image2.png similarity index 100% rename from docs/zh-cn/stage-3/ai-advanced/3.a1-rag-introduction/images/image2.png rename to docs/zh-cn/stage-3/ai-advanced/rag-introduction/images/image2.png diff --git a/docs/zh-cn/stage-3/ai-advanced/3.a1-rag-introduction/images/image3.png b/docs/zh-cn/stage-3/ai-advanced/rag-introduction/images/image3.png similarity index 100% rename from docs/zh-cn/stage-3/ai-advanced/3.a1-rag-introduction/images/image3.png rename to docs/zh-cn/stage-3/ai-advanced/rag-introduction/images/image3.png diff --git a/docs/zh-cn/stage-3/ai-advanced/3.a1-rag-introduction/images/image4.png b/docs/zh-cn/stage-3/ai-advanced/rag-introduction/images/image4.png similarity index 100% rename from docs/zh-cn/stage-3/ai-advanced/3.a1-rag-introduction/images/image4.png rename to docs/zh-cn/stage-3/ai-advanced/rag-introduction/images/image4.png diff --git a/docs/zh-cn/stage-3/ai-advanced/3.a1-rag-introduction/images/image5.png b/docs/zh-cn/stage-3/ai-advanced/rag-introduction/images/image5.png similarity index 100% rename from docs/zh-cn/stage-3/ai-advanced/3.a1-rag-introduction/images/image5.png rename to docs/zh-cn/stage-3/ai-advanced/rag-introduction/images/image5.png diff --git a/docs/zh-cn/stage-3/ai-advanced/3.a1-rag-introduction/images/image6.png b/docs/zh-cn/stage-3/ai-advanced/rag-introduction/images/image6.png similarity index 100% rename from docs/zh-cn/stage-3/ai-advanced/3.a1-rag-introduction/images/image6.png rename to docs/zh-cn/stage-3/ai-advanced/rag-introduction/images/image6.png diff --git a/docs/zh-cn/stage-3/ai-advanced/3.a1-rag-introduction/images/image7.png b/docs/zh-cn/stage-3/ai-advanced/rag-introduction/images/image7.png similarity index 100% rename from docs/zh-cn/stage-3/ai-advanced/3.a1-rag-introduction/images/image7.png rename to docs/zh-cn/stage-3/ai-advanced/rag-introduction/images/image7.png diff --git a/docs/zh-cn/stage-3/ai-advanced/3.a1-rag-introduction/images/image8.png b/docs/zh-cn/stage-3/ai-advanced/rag-introduction/images/image8.png similarity index 100% rename from docs/zh-cn/stage-3/ai-advanced/3.a1-rag-introduction/images/image8.png rename to docs/zh-cn/stage-3/ai-advanced/rag-introduction/images/image8.png diff --git a/docs/zh-cn/stage-3/ai-advanced/3.a1-rag-introduction/images/image9.png b/docs/zh-cn/stage-3/ai-advanced/rag-introduction/images/image9.png similarity index 100% rename from docs/zh-cn/stage-3/ai-advanced/3.a1-rag-introduction/images/image9.png rename to docs/zh-cn/stage-3/ai-advanced/rag-introduction/images/image9.png diff --git a/docs/zh-cn/stage-3/ai-advanced/3.a1-rag-introduction/index.md b/docs/zh-cn/stage-3/ai-advanced/rag-introduction/index.md similarity index 100% rename from docs/zh-cn/stage-3/ai-advanced/3.a1-rag-introduction/index.md rename to docs/zh-cn/stage-3/ai-advanced/rag-introduction/index.md diff --git a/docs/zh-cn/stage-3/core-skills/basics/index.md b/docs/zh-cn/stage-3/core-skills/basics/index.md index e39edde..d1cf987 100644 --- a/docs/zh-cn/stage-3/core-skills/basics/index.md +++ b/docs/zh-cn/stage-3/core-skills/basics/index.md @@ -88,7 +88,7 @@ claude **推荐做法**:直接让 AI Agent 帮你完成配置。只需提供厂商给的配置信息(如 API 地址、密钥等),AI 会自动设置正确的环境变量。 -**更详细的配置指南请参考:** [如何安装 claudecode 以及如何配置环境变量](/zh-cn/stage-2/backend/2.6-modern-cli/) +**更详细的配置指南请参考:** [如何安装 claudecode 以及如何配置环境变量](/zh-cn/stage-2/backend/modern-cli/) ::: diff --git a/docs/zh-cn/stage-3/core-skills/workflow/index.md b/docs/zh-cn/stage-3/core-skills/workflow/index.md index 18e8e04..ba327f3 100644 --- a/docs/zh-cn/stage-3/core-skills/workflow/index.md +++ b/docs/zh-cn/stage-3/core-skills/workflow/index.md @@ -15,8 +15,8 @@ > > 在学习本节之前,建议你先了解以下内容: > - [AI IDE 基础](../../stage-1/ai-ide/) - 掌握 AI IDE 的基本使用 -> - [Git 和 GitHub 工作流](../../stage-2/backend/2.4-git-workflow/) - 了解代码版本管理 -> - [大模型辅助编写接口代码](../../stage-2/backend/2.3-ai-interface-code/) - 了解 AI 辅助开发的基本概念 +> - [Git 和 GitHub 工作流](../../stage-2/backend/git-workflow/) - 了解代码版本管理 +> - [大模型辅助编写接口代码](../../stage-2/backend/ai-interface-code/) - 了解 AI 辅助开发的基本概念 ::: info 📚 你将学到 diff --git a/docs/zh-cn/stage-3/cross-platform/3.5-android-app/images/image1.png b/docs/zh-cn/stage-3/cross-platform/android-app/images/image1.png similarity index 100% rename from docs/zh-cn/stage-3/cross-platform/3.5-android-app/images/image1.png rename to docs/zh-cn/stage-3/cross-platform/android-app/images/image1.png diff --git a/docs/zh-cn/stage-3/cross-platform/3.5-android-app/images/image10.png b/docs/zh-cn/stage-3/cross-platform/android-app/images/image10.png similarity index 100% rename from docs/zh-cn/stage-3/cross-platform/3.5-android-app/images/image10.png rename to docs/zh-cn/stage-3/cross-platform/android-app/images/image10.png diff --git a/docs/zh-cn/stage-3/cross-platform/3.5-android-app/images/image11.png b/docs/zh-cn/stage-3/cross-platform/android-app/images/image11.png similarity index 100% rename from docs/zh-cn/stage-3/cross-platform/3.5-android-app/images/image11.png rename to docs/zh-cn/stage-3/cross-platform/android-app/images/image11.png diff --git a/docs/zh-cn/stage-3/cross-platform/3.5-android-app/images/image12.png b/docs/zh-cn/stage-3/cross-platform/android-app/images/image12.png similarity index 100% rename from docs/zh-cn/stage-3/cross-platform/3.5-android-app/images/image12.png rename to docs/zh-cn/stage-3/cross-platform/android-app/images/image12.png diff --git a/docs/zh-cn/stage-3/cross-platform/3.5-android-app/images/image13.png b/docs/zh-cn/stage-3/cross-platform/android-app/images/image13.png similarity index 100% rename from docs/zh-cn/stage-3/cross-platform/3.5-android-app/images/image13.png rename to docs/zh-cn/stage-3/cross-platform/android-app/images/image13.png diff --git a/docs/zh-cn/stage-3/cross-platform/3.5-android-app/images/image14.png b/docs/zh-cn/stage-3/cross-platform/android-app/images/image14.png similarity index 100% rename from docs/zh-cn/stage-3/cross-platform/3.5-android-app/images/image14.png rename to docs/zh-cn/stage-3/cross-platform/android-app/images/image14.png diff --git a/docs/zh-cn/stage-3/cross-platform/3.5-android-app/images/image15.png b/docs/zh-cn/stage-3/cross-platform/android-app/images/image15.png similarity index 100% rename from docs/zh-cn/stage-3/cross-platform/3.5-android-app/images/image15.png rename to docs/zh-cn/stage-3/cross-platform/android-app/images/image15.png diff --git a/docs/zh-cn/stage-3/cross-platform/3.5-android-app/images/image16.png b/docs/zh-cn/stage-3/cross-platform/android-app/images/image16.png similarity index 100% rename from docs/zh-cn/stage-3/cross-platform/3.5-android-app/images/image16.png rename to docs/zh-cn/stage-3/cross-platform/android-app/images/image16.png diff --git a/docs/zh-cn/stage-3/cross-platform/3.5-android-app/images/image17.png b/docs/zh-cn/stage-3/cross-platform/android-app/images/image17.png similarity index 100% rename from docs/zh-cn/stage-3/cross-platform/3.5-android-app/images/image17.png rename to docs/zh-cn/stage-3/cross-platform/android-app/images/image17.png diff --git a/docs/zh-cn/stage-3/cross-platform/3.5-android-app/images/image18.png b/docs/zh-cn/stage-3/cross-platform/android-app/images/image18.png similarity index 100% rename from docs/zh-cn/stage-3/cross-platform/3.5-android-app/images/image18.png rename to docs/zh-cn/stage-3/cross-platform/android-app/images/image18.png diff --git a/docs/zh-cn/stage-3/cross-platform/3.5-android-app/images/image19.png b/docs/zh-cn/stage-3/cross-platform/android-app/images/image19.png similarity index 100% rename from docs/zh-cn/stage-3/cross-platform/3.5-android-app/images/image19.png rename to docs/zh-cn/stage-3/cross-platform/android-app/images/image19.png diff --git a/docs/zh-cn/stage-3/cross-platform/3.5-android-app/images/image2.png b/docs/zh-cn/stage-3/cross-platform/android-app/images/image2.png similarity index 100% rename from docs/zh-cn/stage-3/cross-platform/3.5-android-app/images/image2.png rename to docs/zh-cn/stage-3/cross-platform/android-app/images/image2.png diff --git a/docs/zh-cn/stage-3/cross-platform/3.5-android-app/images/image20.png b/docs/zh-cn/stage-3/cross-platform/android-app/images/image20.png similarity index 100% rename from docs/zh-cn/stage-3/cross-platform/3.5-android-app/images/image20.png rename to docs/zh-cn/stage-3/cross-platform/android-app/images/image20.png diff --git a/docs/zh-cn/stage-3/cross-platform/3.5-android-app/images/image21.png b/docs/zh-cn/stage-3/cross-platform/android-app/images/image21.png similarity index 100% rename from docs/zh-cn/stage-3/cross-platform/3.5-android-app/images/image21.png rename to docs/zh-cn/stage-3/cross-platform/android-app/images/image21.png diff --git a/docs/zh-cn/stage-3/cross-platform/3.5-android-app/images/image22.png b/docs/zh-cn/stage-3/cross-platform/android-app/images/image22.png similarity index 100% rename from docs/zh-cn/stage-3/cross-platform/3.5-android-app/images/image22.png rename to docs/zh-cn/stage-3/cross-platform/android-app/images/image22.png diff --git a/docs/zh-cn/stage-3/cross-platform/3.5-android-app/images/image23.png b/docs/zh-cn/stage-3/cross-platform/android-app/images/image23.png similarity index 100% rename from docs/zh-cn/stage-3/cross-platform/3.5-android-app/images/image23.png rename to docs/zh-cn/stage-3/cross-platform/android-app/images/image23.png diff --git a/docs/zh-cn/stage-3/cross-platform/3.5-android-app/images/image24.png b/docs/zh-cn/stage-3/cross-platform/android-app/images/image24.png similarity index 100% rename from docs/zh-cn/stage-3/cross-platform/3.5-android-app/images/image24.png rename to docs/zh-cn/stage-3/cross-platform/android-app/images/image24.png diff --git a/docs/zh-cn/stage-3/cross-platform/3.5-android-app/images/image25.png b/docs/zh-cn/stage-3/cross-platform/android-app/images/image25.png similarity index 100% rename from docs/zh-cn/stage-3/cross-platform/3.5-android-app/images/image25.png rename to docs/zh-cn/stage-3/cross-platform/android-app/images/image25.png diff --git a/docs/zh-cn/stage-3/cross-platform/3.5-android-app/images/image26.png b/docs/zh-cn/stage-3/cross-platform/android-app/images/image26.png similarity index 100% rename from docs/zh-cn/stage-3/cross-platform/3.5-android-app/images/image26.png rename to docs/zh-cn/stage-3/cross-platform/android-app/images/image26.png diff --git a/docs/zh-cn/stage-3/cross-platform/3.5-android-app/images/image27.png b/docs/zh-cn/stage-3/cross-platform/android-app/images/image27.png similarity index 100% rename from docs/zh-cn/stage-3/cross-platform/3.5-android-app/images/image27.png rename to docs/zh-cn/stage-3/cross-platform/android-app/images/image27.png diff --git a/docs/zh-cn/stage-3/cross-platform/3.5-android-app/images/image28.png b/docs/zh-cn/stage-3/cross-platform/android-app/images/image28.png similarity index 100% rename from docs/zh-cn/stage-3/cross-platform/3.5-android-app/images/image28.png rename to docs/zh-cn/stage-3/cross-platform/android-app/images/image28.png diff --git a/docs/zh-cn/stage-3/cross-platform/3.5-android-app/images/image29.png b/docs/zh-cn/stage-3/cross-platform/android-app/images/image29.png similarity index 100% rename from docs/zh-cn/stage-3/cross-platform/3.5-android-app/images/image29.png rename to docs/zh-cn/stage-3/cross-platform/android-app/images/image29.png diff --git a/docs/zh-cn/stage-3/cross-platform/3.5-android-app/images/image3.png b/docs/zh-cn/stage-3/cross-platform/android-app/images/image3.png similarity index 100% rename from docs/zh-cn/stage-3/cross-platform/3.5-android-app/images/image3.png rename to docs/zh-cn/stage-3/cross-platform/android-app/images/image3.png diff --git a/docs/zh-cn/stage-3/cross-platform/3.5-android-app/images/image30.png b/docs/zh-cn/stage-3/cross-platform/android-app/images/image30.png similarity index 100% rename from docs/zh-cn/stage-3/cross-platform/3.5-android-app/images/image30.png rename to docs/zh-cn/stage-3/cross-platform/android-app/images/image30.png diff --git a/docs/zh-cn/stage-3/cross-platform/3.5-android-app/images/image31.png b/docs/zh-cn/stage-3/cross-platform/android-app/images/image31.png similarity index 100% rename from docs/zh-cn/stage-3/cross-platform/3.5-android-app/images/image31.png rename to docs/zh-cn/stage-3/cross-platform/android-app/images/image31.png diff --git a/docs/zh-cn/stage-3/cross-platform/3.5-android-app/images/image32.png b/docs/zh-cn/stage-3/cross-platform/android-app/images/image32.png similarity index 100% rename from docs/zh-cn/stage-3/cross-platform/3.5-android-app/images/image32.png rename to docs/zh-cn/stage-3/cross-platform/android-app/images/image32.png diff --git a/docs/zh-cn/stage-3/cross-platform/3.5-android-app/images/image33.png b/docs/zh-cn/stage-3/cross-platform/android-app/images/image33.png similarity index 100% rename from docs/zh-cn/stage-3/cross-platform/3.5-android-app/images/image33.png rename to docs/zh-cn/stage-3/cross-platform/android-app/images/image33.png diff --git a/docs/zh-cn/stage-3/cross-platform/3.5-android-app/images/image34.png b/docs/zh-cn/stage-3/cross-platform/android-app/images/image34.png similarity index 100% rename from docs/zh-cn/stage-3/cross-platform/3.5-android-app/images/image34.png rename to docs/zh-cn/stage-3/cross-platform/android-app/images/image34.png diff --git a/docs/zh-cn/stage-3/cross-platform/3.5-android-app/images/image35.png b/docs/zh-cn/stage-3/cross-platform/android-app/images/image35.png similarity index 100% rename from docs/zh-cn/stage-3/cross-platform/3.5-android-app/images/image35.png rename to docs/zh-cn/stage-3/cross-platform/android-app/images/image35.png diff --git a/docs/zh-cn/stage-3/cross-platform/3.5-android-app/images/image36.png b/docs/zh-cn/stage-3/cross-platform/android-app/images/image36.png similarity index 100% rename from docs/zh-cn/stage-3/cross-platform/3.5-android-app/images/image36.png rename to docs/zh-cn/stage-3/cross-platform/android-app/images/image36.png diff --git a/docs/zh-cn/stage-3/cross-platform/3.5-android-app/images/image37.png b/docs/zh-cn/stage-3/cross-platform/android-app/images/image37.png similarity index 100% rename from docs/zh-cn/stage-3/cross-platform/3.5-android-app/images/image37.png rename to docs/zh-cn/stage-3/cross-platform/android-app/images/image37.png diff --git a/docs/zh-cn/stage-3/cross-platform/3.5-android-app/images/image38.png b/docs/zh-cn/stage-3/cross-platform/android-app/images/image38.png similarity index 100% rename from docs/zh-cn/stage-3/cross-platform/3.5-android-app/images/image38.png rename to docs/zh-cn/stage-3/cross-platform/android-app/images/image38.png diff --git a/docs/zh-cn/stage-3/cross-platform/3.5-android-app/images/image39.png b/docs/zh-cn/stage-3/cross-platform/android-app/images/image39.png similarity index 100% rename from docs/zh-cn/stage-3/cross-platform/3.5-android-app/images/image39.png rename to docs/zh-cn/stage-3/cross-platform/android-app/images/image39.png diff --git a/docs/zh-cn/stage-3/cross-platform/3.5-android-app/images/image4.png b/docs/zh-cn/stage-3/cross-platform/android-app/images/image4.png similarity index 100% rename from docs/zh-cn/stage-3/cross-platform/3.5-android-app/images/image4.png rename to docs/zh-cn/stage-3/cross-platform/android-app/images/image4.png diff --git a/docs/zh-cn/stage-3/cross-platform/3.5-android-app/images/image40.png b/docs/zh-cn/stage-3/cross-platform/android-app/images/image40.png similarity index 100% rename from docs/zh-cn/stage-3/cross-platform/3.5-android-app/images/image40.png rename to docs/zh-cn/stage-3/cross-platform/android-app/images/image40.png diff --git a/docs/zh-cn/stage-3/cross-platform/3.5-android-app/images/image41.png b/docs/zh-cn/stage-3/cross-platform/android-app/images/image41.png similarity index 100% rename from docs/zh-cn/stage-3/cross-platform/3.5-android-app/images/image41.png rename to docs/zh-cn/stage-3/cross-platform/android-app/images/image41.png diff --git a/docs/zh-cn/stage-3/cross-platform/3.5-android-app/images/image42.png b/docs/zh-cn/stage-3/cross-platform/android-app/images/image42.png similarity index 100% rename from docs/zh-cn/stage-3/cross-platform/3.5-android-app/images/image42.png rename to docs/zh-cn/stage-3/cross-platform/android-app/images/image42.png diff --git a/docs/zh-cn/stage-3/cross-platform/3.5-android-app/images/image43.png b/docs/zh-cn/stage-3/cross-platform/android-app/images/image43.png similarity index 100% rename from docs/zh-cn/stage-3/cross-platform/3.5-android-app/images/image43.png rename to docs/zh-cn/stage-3/cross-platform/android-app/images/image43.png diff --git a/docs/zh-cn/stage-3/cross-platform/3.5-android-app/images/image44.png b/docs/zh-cn/stage-3/cross-platform/android-app/images/image44.png similarity index 100% rename from docs/zh-cn/stage-3/cross-platform/3.5-android-app/images/image44.png rename to docs/zh-cn/stage-3/cross-platform/android-app/images/image44.png diff --git a/docs/zh-cn/stage-3/cross-platform/3.5-android-app/images/image45.png b/docs/zh-cn/stage-3/cross-platform/android-app/images/image45.png similarity index 100% rename from docs/zh-cn/stage-3/cross-platform/3.5-android-app/images/image45.png rename to docs/zh-cn/stage-3/cross-platform/android-app/images/image45.png diff --git a/docs/zh-cn/stage-3/cross-platform/3.5-android-app/images/image46.png b/docs/zh-cn/stage-3/cross-platform/android-app/images/image46.png similarity index 100% rename from docs/zh-cn/stage-3/cross-platform/3.5-android-app/images/image46.png rename to docs/zh-cn/stage-3/cross-platform/android-app/images/image46.png diff --git a/docs/zh-cn/stage-3/cross-platform/3.5-android-app/images/image47.png b/docs/zh-cn/stage-3/cross-platform/android-app/images/image47.png similarity index 100% rename from docs/zh-cn/stage-3/cross-platform/3.5-android-app/images/image47.png rename to docs/zh-cn/stage-3/cross-platform/android-app/images/image47.png diff --git a/docs/zh-cn/stage-3/cross-platform/3.5-android-app/images/image48.png b/docs/zh-cn/stage-3/cross-platform/android-app/images/image48.png similarity index 100% rename from docs/zh-cn/stage-3/cross-platform/3.5-android-app/images/image48.png rename to docs/zh-cn/stage-3/cross-platform/android-app/images/image48.png diff --git a/docs/zh-cn/stage-3/cross-platform/3.5-android-app/images/image49.png b/docs/zh-cn/stage-3/cross-platform/android-app/images/image49.png similarity index 100% rename from docs/zh-cn/stage-3/cross-platform/3.5-android-app/images/image49.png rename to docs/zh-cn/stage-3/cross-platform/android-app/images/image49.png diff --git a/docs/zh-cn/stage-3/cross-platform/3.5-android-app/images/image5.png b/docs/zh-cn/stage-3/cross-platform/android-app/images/image5.png similarity index 100% rename from docs/zh-cn/stage-3/cross-platform/3.5-android-app/images/image5.png rename to docs/zh-cn/stage-3/cross-platform/android-app/images/image5.png diff --git a/docs/zh-cn/stage-3/cross-platform/3.5-android-app/images/image50.png b/docs/zh-cn/stage-3/cross-platform/android-app/images/image50.png similarity index 100% rename from docs/zh-cn/stage-3/cross-platform/3.5-android-app/images/image50.png rename to docs/zh-cn/stage-3/cross-platform/android-app/images/image50.png diff --git a/docs/zh-cn/stage-3/cross-platform/3.5-android-app/images/image51.png b/docs/zh-cn/stage-3/cross-platform/android-app/images/image51.png similarity index 100% rename from docs/zh-cn/stage-3/cross-platform/3.5-android-app/images/image51.png rename to docs/zh-cn/stage-3/cross-platform/android-app/images/image51.png diff --git a/docs/zh-cn/stage-3/cross-platform/3.5-android-app/images/image52.png b/docs/zh-cn/stage-3/cross-platform/android-app/images/image52.png similarity index 100% rename from docs/zh-cn/stage-3/cross-platform/3.5-android-app/images/image52.png rename to docs/zh-cn/stage-3/cross-platform/android-app/images/image52.png diff --git a/docs/zh-cn/stage-3/cross-platform/3.5-android-app/images/image53.png b/docs/zh-cn/stage-3/cross-platform/android-app/images/image53.png similarity index 100% rename from docs/zh-cn/stage-3/cross-platform/3.5-android-app/images/image53.png rename to docs/zh-cn/stage-3/cross-platform/android-app/images/image53.png diff --git a/docs/zh-cn/stage-3/cross-platform/3.5-android-app/images/image54.png b/docs/zh-cn/stage-3/cross-platform/android-app/images/image54.png similarity index 100% rename from docs/zh-cn/stage-3/cross-platform/3.5-android-app/images/image54.png rename to docs/zh-cn/stage-3/cross-platform/android-app/images/image54.png diff --git a/docs/zh-cn/stage-3/cross-platform/3.5-android-app/images/image55.png b/docs/zh-cn/stage-3/cross-platform/android-app/images/image55.png similarity index 100% rename from docs/zh-cn/stage-3/cross-platform/3.5-android-app/images/image55.png rename to docs/zh-cn/stage-3/cross-platform/android-app/images/image55.png diff --git a/docs/zh-cn/stage-3/cross-platform/3.5-android-app/images/image56.png b/docs/zh-cn/stage-3/cross-platform/android-app/images/image56.png similarity index 100% rename from docs/zh-cn/stage-3/cross-platform/3.5-android-app/images/image56.png rename to docs/zh-cn/stage-3/cross-platform/android-app/images/image56.png diff --git a/docs/zh-cn/stage-3/cross-platform/3.5-android-app/images/image57.png b/docs/zh-cn/stage-3/cross-platform/android-app/images/image57.png similarity index 100% rename from docs/zh-cn/stage-3/cross-platform/3.5-android-app/images/image57.png rename to docs/zh-cn/stage-3/cross-platform/android-app/images/image57.png diff --git a/docs/zh-cn/stage-3/cross-platform/3.5-android-app/images/image58.png b/docs/zh-cn/stage-3/cross-platform/android-app/images/image58.png similarity index 100% rename from docs/zh-cn/stage-3/cross-platform/3.5-android-app/images/image58.png rename to docs/zh-cn/stage-3/cross-platform/android-app/images/image58.png diff --git a/docs/zh-cn/stage-3/cross-platform/3.5-android-app/images/image59.png b/docs/zh-cn/stage-3/cross-platform/android-app/images/image59.png similarity index 100% rename from docs/zh-cn/stage-3/cross-platform/3.5-android-app/images/image59.png rename to docs/zh-cn/stage-3/cross-platform/android-app/images/image59.png diff --git a/docs/zh-cn/stage-3/cross-platform/3.5-android-app/images/image6.png b/docs/zh-cn/stage-3/cross-platform/android-app/images/image6.png similarity index 100% rename from docs/zh-cn/stage-3/cross-platform/3.5-android-app/images/image6.png rename to docs/zh-cn/stage-3/cross-platform/android-app/images/image6.png diff --git a/docs/zh-cn/stage-3/cross-platform/3.5-android-app/images/image60.png b/docs/zh-cn/stage-3/cross-platform/android-app/images/image60.png similarity index 100% rename from docs/zh-cn/stage-3/cross-platform/3.5-android-app/images/image60.png rename to docs/zh-cn/stage-3/cross-platform/android-app/images/image60.png diff --git a/docs/zh-cn/stage-3/cross-platform/3.5-android-app/images/image61.png b/docs/zh-cn/stage-3/cross-platform/android-app/images/image61.png similarity index 100% rename from docs/zh-cn/stage-3/cross-platform/3.5-android-app/images/image61.png rename to docs/zh-cn/stage-3/cross-platform/android-app/images/image61.png diff --git a/docs/zh-cn/stage-3/cross-platform/3.5-android-app/images/image62.png b/docs/zh-cn/stage-3/cross-platform/android-app/images/image62.png similarity index 100% rename from docs/zh-cn/stage-3/cross-platform/3.5-android-app/images/image62.png rename to docs/zh-cn/stage-3/cross-platform/android-app/images/image62.png diff --git a/docs/zh-cn/stage-3/cross-platform/3.5-android-app/images/image63.png b/docs/zh-cn/stage-3/cross-platform/android-app/images/image63.png similarity index 100% rename from docs/zh-cn/stage-3/cross-platform/3.5-android-app/images/image63.png rename to docs/zh-cn/stage-3/cross-platform/android-app/images/image63.png diff --git a/docs/zh-cn/stage-3/cross-platform/3.5-android-app/images/image64.png b/docs/zh-cn/stage-3/cross-platform/android-app/images/image64.png similarity index 100% rename from docs/zh-cn/stage-3/cross-platform/3.5-android-app/images/image64.png rename to docs/zh-cn/stage-3/cross-platform/android-app/images/image64.png diff --git a/docs/zh-cn/stage-3/cross-platform/3.5-android-app/images/image65.png b/docs/zh-cn/stage-3/cross-platform/android-app/images/image65.png similarity index 100% rename from docs/zh-cn/stage-3/cross-platform/3.5-android-app/images/image65.png rename to docs/zh-cn/stage-3/cross-platform/android-app/images/image65.png diff --git a/docs/zh-cn/stage-3/cross-platform/3.5-android-app/images/image7.png b/docs/zh-cn/stage-3/cross-platform/android-app/images/image7.png similarity index 100% rename from docs/zh-cn/stage-3/cross-platform/3.5-android-app/images/image7.png rename to docs/zh-cn/stage-3/cross-platform/android-app/images/image7.png diff --git a/docs/zh-cn/stage-3/cross-platform/3.5-android-app/images/image8.png b/docs/zh-cn/stage-3/cross-platform/android-app/images/image8.png similarity index 100% rename from docs/zh-cn/stage-3/cross-platform/3.5-android-app/images/image8.png rename to docs/zh-cn/stage-3/cross-platform/android-app/images/image8.png diff --git a/docs/zh-cn/stage-3/cross-platform/3.5-android-app/images/image9.png b/docs/zh-cn/stage-3/cross-platform/android-app/images/image9.png similarity index 100% rename from docs/zh-cn/stage-3/cross-platform/3.5-android-app/images/image9.png rename to docs/zh-cn/stage-3/cross-platform/android-app/images/image9.png diff --git a/docs/zh-cn/stage-3/cross-platform/3.5-android-app/index.md b/docs/zh-cn/stage-3/cross-platform/android-app/index.md similarity index 100% rename from docs/zh-cn/stage-3/cross-platform/3.5-android-app/index.md rename to docs/zh-cn/stage-3/cross-platform/android-app/index.md diff --git a/docs/zh-cn/stage-3/cross-platform/3.9-browser-ai-extension/images/image1.png b/docs/zh-cn/stage-3/cross-platform/browser-ai-extension/images/image1.png similarity index 100% rename from docs/zh-cn/stage-3/cross-platform/3.9-browser-ai-extension/images/image1.png rename to docs/zh-cn/stage-3/cross-platform/browser-ai-extension/images/image1.png diff --git a/docs/zh-cn/stage-3/cross-platform/3.9-browser-ai-extension/images/image10-1.png b/docs/zh-cn/stage-3/cross-platform/browser-ai-extension/images/image10-1.png similarity index 100% rename from docs/zh-cn/stage-3/cross-platform/3.9-browser-ai-extension/images/image10-1.png rename to docs/zh-cn/stage-3/cross-platform/browser-ai-extension/images/image10-1.png diff --git a/docs/zh-cn/stage-3/cross-platform/3.9-browser-ai-extension/images/image10.png b/docs/zh-cn/stage-3/cross-platform/browser-ai-extension/images/image10.png similarity index 100% rename from docs/zh-cn/stage-3/cross-platform/3.9-browser-ai-extension/images/image10.png rename to docs/zh-cn/stage-3/cross-platform/browser-ai-extension/images/image10.png diff --git a/docs/zh-cn/stage-3/cross-platform/3.9-browser-ai-extension/images/image2.png b/docs/zh-cn/stage-3/cross-platform/browser-ai-extension/images/image2.png similarity index 100% rename from docs/zh-cn/stage-3/cross-platform/3.9-browser-ai-extension/images/image2.png rename to docs/zh-cn/stage-3/cross-platform/browser-ai-extension/images/image2.png diff --git a/docs/zh-cn/stage-3/cross-platform/3.9-browser-ai-extension/images/image2b.png b/docs/zh-cn/stage-3/cross-platform/browser-ai-extension/images/image2b.png similarity index 100% rename from docs/zh-cn/stage-3/cross-platform/3.9-browser-ai-extension/images/image2b.png rename to docs/zh-cn/stage-3/cross-platform/browser-ai-extension/images/image2b.png diff --git a/docs/zh-cn/stage-3/cross-platform/3.9-browser-ai-extension/images/image3.png b/docs/zh-cn/stage-3/cross-platform/browser-ai-extension/images/image3.png similarity index 100% rename from docs/zh-cn/stage-3/cross-platform/3.9-browser-ai-extension/images/image3.png rename to docs/zh-cn/stage-3/cross-platform/browser-ai-extension/images/image3.png diff --git a/docs/zh-cn/stage-3/cross-platform/3.9-browser-ai-extension/images/image4.png b/docs/zh-cn/stage-3/cross-platform/browser-ai-extension/images/image4.png similarity index 100% rename from docs/zh-cn/stage-3/cross-platform/3.9-browser-ai-extension/images/image4.png rename to docs/zh-cn/stage-3/cross-platform/browser-ai-extension/images/image4.png diff --git a/docs/zh-cn/stage-3/cross-platform/3.9-browser-ai-extension/images/image5.png b/docs/zh-cn/stage-3/cross-platform/browser-ai-extension/images/image5.png similarity index 100% rename from docs/zh-cn/stage-3/cross-platform/3.9-browser-ai-extension/images/image5.png rename to docs/zh-cn/stage-3/cross-platform/browser-ai-extension/images/image5.png diff --git a/docs/zh-cn/stage-3/cross-platform/3.9-browser-ai-extension/images/image6-1.png b/docs/zh-cn/stage-3/cross-platform/browser-ai-extension/images/image6-1.png similarity index 100% rename from docs/zh-cn/stage-3/cross-platform/3.9-browser-ai-extension/images/image6-1.png rename to docs/zh-cn/stage-3/cross-platform/browser-ai-extension/images/image6-1.png diff --git a/docs/zh-cn/stage-3/cross-platform/3.9-browser-ai-extension/images/image6-2.png b/docs/zh-cn/stage-3/cross-platform/browser-ai-extension/images/image6-2.png similarity index 100% rename from docs/zh-cn/stage-3/cross-platform/3.9-browser-ai-extension/images/image6-2.png rename to docs/zh-cn/stage-3/cross-platform/browser-ai-extension/images/image6-2.png diff --git a/docs/zh-cn/stage-3/cross-platform/3.9-browser-ai-extension/images/image6-3.png b/docs/zh-cn/stage-3/cross-platform/browser-ai-extension/images/image6-3.png similarity index 100% rename from docs/zh-cn/stage-3/cross-platform/3.9-browser-ai-extension/images/image6-3.png rename to docs/zh-cn/stage-3/cross-platform/browser-ai-extension/images/image6-3.png diff --git a/docs/zh-cn/stage-3/cross-platform/3.9-browser-ai-extension/images/image7.png b/docs/zh-cn/stage-3/cross-platform/browser-ai-extension/images/image7.png similarity index 100% rename from docs/zh-cn/stage-3/cross-platform/3.9-browser-ai-extension/images/image7.png rename to docs/zh-cn/stage-3/cross-platform/browser-ai-extension/images/image7.png diff --git a/docs/zh-cn/stage-3/cross-platform/3.9-browser-ai-extension/images/image8.png b/docs/zh-cn/stage-3/cross-platform/browser-ai-extension/images/image8.png similarity index 100% rename from docs/zh-cn/stage-3/cross-platform/3.9-browser-ai-extension/images/image8.png rename to docs/zh-cn/stage-3/cross-platform/browser-ai-extension/images/image8.png diff --git a/docs/zh-cn/stage-3/cross-platform/3.9-browser-ai-extension/images/image9.png b/docs/zh-cn/stage-3/cross-platform/browser-ai-extension/images/image9.png similarity index 100% rename from docs/zh-cn/stage-3/cross-platform/3.9-browser-ai-extension/images/image9.png rename to docs/zh-cn/stage-3/cross-platform/browser-ai-extension/images/image9.png diff --git a/docs/zh-cn/stage-3/cross-platform/3.9-browser-ai-extension/index.md b/docs/zh-cn/stage-3/cross-platform/browser-ai-extension/index.md similarity index 100% rename from docs/zh-cn/stage-3/cross-platform/3.9-browser-ai-extension/index.md rename to docs/zh-cn/stage-3/cross-platform/browser-ai-extension/index.md diff --git a/docs/zh-cn/stage-3/cross-platform/3.1-choose-platform/index.md b/docs/zh-cn/stage-3/cross-platform/choose-platform/index.md similarity index 98% rename from docs/zh-cn/stage-3/cross-platform/3.1-choose-platform/index.md rename to docs/zh-cn/stage-3/cross-platform/choose-platform/index.md index aa292ae..7d7d55e 100644 --- a/docs/zh-cn/stage-3/cross-platform/3.1-choose-platform/index.md +++ b/docs/zh-cn/stage-3/cross-platform/choose-platform/index.md @@ -508,42 +508,42 @@ Prettier、ESLint、GitHub Copilot 都是 VS Code 插件。 diff --git a/docs/zh-cn/stage-3/cross-platform/3.10-electron-voice-to-text/images/image1.png b/docs/zh-cn/stage-3/cross-platform/electron-voice-to-text/images/image1.png similarity index 100% rename from docs/zh-cn/stage-3/cross-platform/3.10-electron-voice-to-text/images/image1.png rename to docs/zh-cn/stage-3/cross-platform/electron-voice-to-text/images/image1.png diff --git a/docs/zh-cn/stage-3/cross-platform/3.10-electron-voice-to-text/images/image10.png b/docs/zh-cn/stage-3/cross-platform/electron-voice-to-text/images/image10.png similarity index 100% rename from docs/zh-cn/stage-3/cross-platform/3.10-electron-voice-to-text/images/image10.png rename to docs/zh-cn/stage-3/cross-platform/electron-voice-to-text/images/image10.png diff --git a/docs/zh-cn/stage-3/cross-platform/3.10-electron-voice-to-text/images/image2.png b/docs/zh-cn/stage-3/cross-platform/electron-voice-to-text/images/image2.png similarity index 100% rename from docs/zh-cn/stage-3/cross-platform/3.10-electron-voice-to-text/images/image2.png rename to docs/zh-cn/stage-3/cross-platform/electron-voice-to-text/images/image2.png diff --git a/docs/zh-cn/stage-3/cross-platform/3.10-electron-voice-to-text/images/image3.png b/docs/zh-cn/stage-3/cross-platform/electron-voice-to-text/images/image3.png similarity index 100% rename from docs/zh-cn/stage-3/cross-platform/3.10-electron-voice-to-text/images/image3.png rename to docs/zh-cn/stage-3/cross-platform/electron-voice-to-text/images/image3.png diff --git a/docs/zh-cn/stage-3/cross-platform/3.10-electron-voice-to-text/images/image4.png b/docs/zh-cn/stage-3/cross-platform/electron-voice-to-text/images/image4.png similarity index 100% rename from docs/zh-cn/stage-3/cross-platform/3.10-electron-voice-to-text/images/image4.png rename to docs/zh-cn/stage-3/cross-platform/electron-voice-to-text/images/image4.png diff --git a/docs/zh-cn/stage-3/cross-platform/3.10-electron-voice-to-text/images/image5.png b/docs/zh-cn/stage-3/cross-platform/electron-voice-to-text/images/image5.png similarity index 100% rename from docs/zh-cn/stage-3/cross-platform/3.10-electron-voice-to-text/images/image5.png rename to docs/zh-cn/stage-3/cross-platform/electron-voice-to-text/images/image5.png diff --git a/docs/zh-cn/stage-3/cross-platform/3.10-electron-voice-to-text/images/image6.png b/docs/zh-cn/stage-3/cross-platform/electron-voice-to-text/images/image6.png similarity index 100% rename from docs/zh-cn/stage-3/cross-platform/3.10-electron-voice-to-text/images/image6.png rename to docs/zh-cn/stage-3/cross-platform/electron-voice-to-text/images/image6.png diff --git a/docs/zh-cn/stage-3/cross-platform/3.10-electron-voice-to-text/images/image7.png b/docs/zh-cn/stage-3/cross-platform/electron-voice-to-text/images/image7.png similarity index 100% rename from docs/zh-cn/stage-3/cross-platform/3.10-electron-voice-to-text/images/image7.png rename to docs/zh-cn/stage-3/cross-platform/electron-voice-to-text/images/image7.png diff --git a/docs/zh-cn/stage-3/cross-platform/3.10-electron-voice-to-text/images/image8.png b/docs/zh-cn/stage-3/cross-platform/electron-voice-to-text/images/image8.png similarity index 100% rename from docs/zh-cn/stage-3/cross-platform/3.10-electron-voice-to-text/images/image8.png rename to docs/zh-cn/stage-3/cross-platform/electron-voice-to-text/images/image8.png diff --git a/docs/zh-cn/stage-3/cross-platform/3.10-electron-voice-to-text/images/image9.png b/docs/zh-cn/stage-3/cross-platform/electron-voice-to-text/images/image9.png similarity index 100% rename from docs/zh-cn/stage-3/cross-platform/3.10-electron-voice-to-text/images/image9.png rename to docs/zh-cn/stage-3/cross-platform/electron-voice-to-text/images/image9.png diff --git a/docs/zh-cn/stage-3/cross-platform/3.10-electron-voice-to-text/index.md b/docs/zh-cn/stage-3/cross-platform/electron-voice-to-text/index.md similarity index 100% rename from docs/zh-cn/stage-3/cross-platform/3.10-electron-voice-to-text/index.md rename to docs/zh-cn/stage-3/cross-platform/electron-voice-to-text/index.md diff --git a/docs/zh-cn/stage-3/cross-platform/3.6-ios-app/images/image1.png b/docs/zh-cn/stage-3/cross-platform/ios-app/images/image1.png similarity index 100% rename from docs/zh-cn/stage-3/cross-platform/3.6-ios-app/images/image1.png rename to docs/zh-cn/stage-3/cross-platform/ios-app/images/image1.png diff --git a/docs/zh-cn/stage-3/cross-platform/3.6-ios-app/images/image10.png b/docs/zh-cn/stage-3/cross-platform/ios-app/images/image10.png similarity index 100% rename from docs/zh-cn/stage-3/cross-platform/3.6-ios-app/images/image10.png rename to docs/zh-cn/stage-3/cross-platform/ios-app/images/image10.png diff --git a/docs/zh-cn/stage-3/cross-platform/3.6-ios-app/images/image11.png b/docs/zh-cn/stage-3/cross-platform/ios-app/images/image11.png similarity index 100% rename from docs/zh-cn/stage-3/cross-platform/3.6-ios-app/images/image11.png rename to docs/zh-cn/stage-3/cross-platform/ios-app/images/image11.png diff --git a/docs/zh-cn/stage-3/cross-platform/3.6-ios-app/images/image12.png b/docs/zh-cn/stage-3/cross-platform/ios-app/images/image12.png similarity index 100% rename from docs/zh-cn/stage-3/cross-platform/3.6-ios-app/images/image12.png rename to docs/zh-cn/stage-3/cross-platform/ios-app/images/image12.png diff --git a/docs/zh-cn/stage-3/cross-platform/3.6-ios-app/images/image13.png b/docs/zh-cn/stage-3/cross-platform/ios-app/images/image13.png similarity index 100% rename from docs/zh-cn/stage-3/cross-platform/3.6-ios-app/images/image13.png rename to docs/zh-cn/stage-3/cross-platform/ios-app/images/image13.png diff --git a/docs/zh-cn/stage-3/cross-platform/3.6-ios-app/images/image14.png b/docs/zh-cn/stage-3/cross-platform/ios-app/images/image14.png similarity index 100% rename from docs/zh-cn/stage-3/cross-platform/3.6-ios-app/images/image14.png rename to docs/zh-cn/stage-3/cross-platform/ios-app/images/image14.png diff --git a/docs/zh-cn/stage-3/cross-platform/3.6-ios-app/images/image15.png b/docs/zh-cn/stage-3/cross-platform/ios-app/images/image15.png similarity index 100% rename from docs/zh-cn/stage-3/cross-platform/3.6-ios-app/images/image15.png rename to docs/zh-cn/stage-3/cross-platform/ios-app/images/image15.png diff --git a/docs/zh-cn/stage-3/cross-platform/3.6-ios-app/images/image16.png b/docs/zh-cn/stage-3/cross-platform/ios-app/images/image16.png similarity index 100% rename from docs/zh-cn/stage-3/cross-platform/3.6-ios-app/images/image16.png rename to docs/zh-cn/stage-3/cross-platform/ios-app/images/image16.png diff --git a/docs/zh-cn/stage-3/cross-platform/3.6-ios-app/images/image17.png b/docs/zh-cn/stage-3/cross-platform/ios-app/images/image17.png similarity index 100% rename from docs/zh-cn/stage-3/cross-platform/3.6-ios-app/images/image17.png rename to docs/zh-cn/stage-3/cross-platform/ios-app/images/image17.png diff --git a/docs/zh-cn/stage-3/cross-platform/3.6-ios-app/images/image18.png b/docs/zh-cn/stage-3/cross-platform/ios-app/images/image18.png similarity index 100% rename from docs/zh-cn/stage-3/cross-platform/3.6-ios-app/images/image18.png rename to docs/zh-cn/stage-3/cross-platform/ios-app/images/image18.png diff --git a/docs/zh-cn/stage-3/cross-platform/3.6-ios-app/images/image19.png b/docs/zh-cn/stage-3/cross-platform/ios-app/images/image19.png similarity index 100% rename from docs/zh-cn/stage-3/cross-platform/3.6-ios-app/images/image19.png rename to docs/zh-cn/stage-3/cross-platform/ios-app/images/image19.png diff --git a/docs/zh-cn/stage-3/cross-platform/3.6-ios-app/images/image2.png b/docs/zh-cn/stage-3/cross-platform/ios-app/images/image2.png similarity index 100% rename from docs/zh-cn/stage-3/cross-platform/3.6-ios-app/images/image2.png rename to docs/zh-cn/stage-3/cross-platform/ios-app/images/image2.png diff --git a/docs/zh-cn/stage-3/cross-platform/3.6-ios-app/images/image20.png b/docs/zh-cn/stage-3/cross-platform/ios-app/images/image20.png similarity index 100% rename from docs/zh-cn/stage-3/cross-platform/3.6-ios-app/images/image20.png rename to docs/zh-cn/stage-3/cross-platform/ios-app/images/image20.png diff --git a/docs/zh-cn/stage-3/cross-platform/3.6-ios-app/images/image21.png b/docs/zh-cn/stage-3/cross-platform/ios-app/images/image21.png similarity index 100% rename from docs/zh-cn/stage-3/cross-platform/3.6-ios-app/images/image21.png rename to docs/zh-cn/stage-3/cross-platform/ios-app/images/image21.png diff --git a/docs/zh-cn/stage-3/cross-platform/3.6-ios-app/images/image22.png b/docs/zh-cn/stage-3/cross-platform/ios-app/images/image22.png similarity index 100% rename from docs/zh-cn/stage-3/cross-platform/3.6-ios-app/images/image22.png rename to docs/zh-cn/stage-3/cross-platform/ios-app/images/image22.png diff --git a/docs/zh-cn/stage-3/cross-platform/3.6-ios-app/images/image23.png b/docs/zh-cn/stage-3/cross-platform/ios-app/images/image23.png similarity index 100% rename from docs/zh-cn/stage-3/cross-platform/3.6-ios-app/images/image23.png rename to docs/zh-cn/stage-3/cross-platform/ios-app/images/image23.png diff --git a/docs/zh-cn/stage-3/cross-platform/3.6-ios-app/images/image24.png b/docs/zh-cn/stage-3/cross-platform/ios-app/images/image24.png similarity index 100% rename from docs/zh-cn/stage-3/cross-platform/3.6-ios-app/images/image24.png rename to docs/zh-cn/stage-3/cross-platform/ios-app/images/image24.png diff --git a/docs/zh-cn/stage-3/cross-platform/3.6-ios-app/images/image25.png b/docs/zh-cn/stage-3/cross-platform/ios-app/images/image25.png similarity index 100% rename from docs/zh-cn/stage-3/cross-platform/3.6-ios-app/images/image25.png rename to docs/zh-cn/stage-3/cross-platform/ios-app/images/image25.png diff --git a/docs/zh-cn/stage-3/cross-platform/3.6-ios-app/images/image26.png b/docs/zh-cn/stage-3/cross-platform/ios-app/images/image26.png similarity index 100% rename from docs/zh-cn/stage-3/cross-platform/3.6-ios-app/images/image26.png rename to docs/zh-cn/stage-3/cross-platform/ios-app/images/image26.png diff --git a/docs/zh-cn/stage-3/cross-platform/3.6-ios-app/images/image27.png b/docs/zh-cn/stage-3/cross-platform/ios-app/images/image27.png similarity index 100% rename from docs/zh-cn/stage-3/cross-platform/3.6-ios-app/images/image27.png rename to docs/zh-cn/stage-3/cross-platform/ios-app/images/image27.png diff --git a/docs/zh-cn/stage-3/cross-platform/3.6-ios-app/images/image28.png b/docs/zh-cn/stage-3/cross-platform/ios-app/images/image28.png similarity index 100% rename from docs/zh-cn/stage-3/cross-platform/3.6-ios-app/images/image28.png rename to docs/zh-cn/stage-3/cross-platform/ios-app/images/image28.png diff --git a/docs/zh-cn/stage-3/cross-platform/3.6-ios-app/images/image29.png b/docs/zh-cn/stage-3/cross-platform/ios-app/images/image29.png similarity index 100% rename from docs/zh-cn/stage-3/cross-platform/3.6-ios-app/images/image29.png rename to docs/zh-cn/stage-3/cross-platform/ios-app/images/image29.png diff --git a/docs/zh-cn/stage-3/cross-platform/3.6-ios-app/images/image3.png b/docs/zh-cn/stage-3/cross-platform/ios-app/images/image3.png similarity index 100% rename from docs/zh-cn/stage-3/cross-platform/3.6-ios-app/images/image3.png rename to docs/zh-cn/stage-3/cross-platform/ios-app/images/image3.png diff --git a/docs/zh-cn/stage-3/cross-platform/3.6-ios-app/images/image30.png b/docs/zh-cn/stage-3/cross-platform/ios-app/images/image30.png similarity index 100% rename from docs/zh-cn/stage-3/cross-platform/3.6-ios-app/images/image30.png rename to docs/zh-cn/stage-3/cross-platform/ios-app/images/image30.png diff --git a/docs/zh-cn/stage-3/cross-platform/3.6-ios-app/images/image31.png b/docs/zh-cn/stage-3/cross-platform/ios-app/images/image31.png similarity index 100% rename from docs/zh-cn/stage-3/cross-platform/3.6-ios-app/images/image31.png rename to docs/zh-cn/stage-3/cross-platform/ios-app/images/image31.png diff --git a/docs/zh-cn/stage-3/cross-platform/3.6-ios-app/images/image32.png b/docs/zh-cn/stage-3/cross-platform/ios-app/images/image32.png similarity index 100% rename from docs/zh-cn/stage-3/cross-platform/3.6-ios-app/images/image32.png rename to docs/zh-cn/stage-3/cross-platform/ios-app/images/image32.png diff --git a/docs/zh-cn/stage-3/cross-platform/3.6-ios-app/images/image33.png b/docs/zh-cn/stage-3/cross-platform/ios-app/images/image33.png similarity index 100% rename from docs/zh-cn/stage-3/cross-platform/3.6-ios-app/images/image33.png rename to docs/zh-cn/stage-3/cross-platform/ios-app/images/image33.png diff --git a/docs/zh-cn/stage-3/cross-platform/3.6-ios-app/images/image34.png b/docs/zh-cn/stage-3/cross-platform/ios-app/images/image34.png similarity index 100% rename from docs/zh-cn/stage-3/cross-platform/3.6-ios-app/images/image34.png rename to docs/zh-cn/stage-3/cross-platform/ios-app/images/image34.png diff --git a/docs/zh-cn/stage-3/cross-platform/3.6-ios-app/images/image35.png b/docs/zh-cn/stage-3/cross-platform/ios-app/images/image35.png similarity index 100% rename from docs/zh-cn/stage-3/cross-platform/3.6-ios-app/images/image35.png rename to docs/zh-cn/stage-3/cross-platform/ios-app/images/image35.png diff --git a/docs/zh-cn/stage-3/cross-platform/3.6-ios-app/images/image36.png b/docs/zh-cn/stage-3/cross-platform/ios-app/images/image36.png similarity index 100% rename from docs/zh-cn/stage-3/cross-platform/3.6-ios-app/images/image36.png rename to docs/zh-cn/stage-3/cross-platform/ios-app/images/image36.png diff --git a/docs/zh-cn/stage-3/cross-platform/3.6-ios-app/images/image37.png b/docs/zh-cn/stage-3/cross-platform/ios-app/images/image37.png similarity index 100% rename from docs/zh-cn/stage-3/cross-platform/3.6-ios-app/images/image37.png rename to docs/zh-cn/stage-3/cross-platform/ios-app/images/image37.png diff --git a/docs/zh-cn/stage-3/cross-platform/3.6-ios-app/images/image38.png b/docs/zh-cn/stage-3/cross-platform/ios-app/images/image38.png similarity index 100% rename from docs/zh-cn/stage-3/cross-platform/3.6-ios-app/images/image38.png rename to docs/zh-cn/stage-3/cross-platform/ios-app/images/image38.png diff --git a/docs/zh-cn/stage-3/cross-platform/3.6-ios-app/images/image39.png b/docs/zh-cn/stage-3/cross-platform/ios-app/images/image39.png similarity index 100% rename from docs/zh-cn/stage-3/cross-platform/3.6-ios-app/images/image39.png rename to docs/zh-cn/stage-3/cross-platform/ios-app/images/image39.png diff --git a/docs/zh-cn/stage-3/cross-platform/3.6-ios-app/images/image4.png b/docs/zh-cn/stage-3/cross-platform/ios-app/images/image4.png similarity index 100% rename from docs/zh-cn/stage-3/cross-platform/3.6-ios-app/images/image4.png rename to docs/zh-cn/stage-3/cross-platform/ios-app/images/image4.png diff --git a/docs/zh-cn/stage-3/cross-platform/3.6-ios-app/images/image40.png b/docs/zh-cn/stage-3/cross-platform/ios-app/images/image40.png similarity index 100% rename from docs/zh-cn/stage-3/cross-platform/3.6-ios-app/images/image40.png rename to docs/zh-cn/stage-3/cross-platform/ios-app/images/image40.png diff --git a/docs/zh-cn/stage-3/cross-platform/3.6-ios-app/images/image41.png b/docs/zh-cn/stage-3/cross-platform/ios-app/images/image41.png similarity index 100% rename from docs/zh-cn/stage-3/cross-platform/3.6-ios-app/images/image41.png rename to docs/zh-cn/stage-3/cross-platform/ios-app/images/image41.png diff --git a/docs/zh-cn/stage-3/cross-platform/3.6-ios-app/images/image42.png b/docs/zh-cn/stage-3/cross-platform/ios-app/images/image42.png similarity index 100% rename from docs/zh-cn/stage-3/cross-platform/3.6-ios-app/images/image42.png rename to docs/zh-cn/stage-3/cross-platform/ios-app/images/image42.png diff --git a/docs/zh-cn/stage-3/cross-platform/3.6-ios-app/images/image43.png b/docs/zh-cn/stage-3/cross-platform/ios-app/images/image43.png similarity index 100% rename from docs/zh-cn/stage-3/cross-platform/3.6-ios-app/images/image43.png rename to docs/zh-cn/stage-3/cross-platform/ios-app/images/image43.png diff --git a/docs/zh-cn/stage-3/cross-platform/3.6-ios-app/images/image44.png b/docs/zh-cn/stage-3/cross-platform/ios-app/images/image44.png similarity index 100% rename from docs/zh-cn/stage-3/cross-platform/3.6-ios-app/images/image44.png rename to docs/zh-cn/stage-3/cross-platform/ios-app/images/image44.png diff --git a/docs/zh-cn/stage-3/cross-platform/3.6-ios-app/images/image45.png b/docs/zh-cn/stage-3/cross-platform/ios-app/images/image45.png similarity index 100% rename from docs/zh-cn/stage-3/cross-platform/3.6-ios-app/images/image45.png rename to docs/zh-cn/stage-3/cross-platform/ios-app/images/image45.png diff --git a/docs/zh-cn/stage-3/cross-platform/3.6-ios-app/images/image46.png b/docs/zh-cn/stage-3/cross-platform/ios-app/images/image46.png similarity index 100% rename from docs/zh-cn/stage-3/cross-platform/3.6-ios-app/images/image46.png rename to docs/zh-cn/stage-3/cross-platform/ios-app/images/image46.png diff --git a/docs/zh-cn/stage-3/cross-platform/3.6-ios-app/images/image47.png b/docs/zh-cn/stage-3/cross-platform/ios-app/images/image47.png similarity index 100% rename from docs/zh-cn/stage-3/cross-platform/3.6-ios-app/images/image47.png rename to docs/zh-cn/stage-3/cross-platform/ios-app/images/image47.png diff --git a/docs/zh-cn/stage-3/cross-platform/3.6-ios-app/images/image5.png b/docs/zh-cn/stage-3/cross-platform/ios-app/images/image5.png similarity index 100% rename from docs/zh-cn/stage-3/cross-platform/3.6-ios-app/images/image5.png rename to docs/zh-cn/stage-3/cross-platform/ios-app/images/image5.png diff --git a/docs/zh-cn/stage-3/cross-platform/3.6-ios-app/images/image6.png b/docs/zh-cn/stage-3/cross-platform/ios-app/images/image6.png similarity index 100% rename from docs/zh-cn/stage-3/cross-platform/3.6-ios-app/images/image6.png rename to docs/zh-cn/stage-3/cross-platform/ios-app/images/image6.png diff --git a/docs/zh-cn/stage-3/cross-platform/3.6-ios-app/images/image7.png b/docs/zh-cn/stage-3/cross-platform/ios-app/images/image7.png similarity index 100% rename from docs/zh-cn/stage-3/cross-platform/3.6-ios-app/images/image7.png rename to docs/zh-cn/stage-3/cross-platform/ios-app/images/image7.png diff --git a/docs/zh-cn/stage-3/cross-platform/3.6-ios-app/images/image8.png b/docs/zh-cn/stage-3/cross-platform/ios-app/images/image8.png similarity index 100% rename from docs/zh-cn/stage-3/cross-platform/3.6-ios-app/images/image8.png rename to docs/zh-cn/stage-3/cross-platform/ios-app/images/image8.png diff --git a/docs/zh-cn/stage-3/cross-platform/3.6-ios-app/images/image9.png b/docs/zh-cn/stage-3/cross-platform/ios-app/images/image9.png similarity index 100% rename from docs/zh-cn/stage-3/cross-platform/3.6-ios-app/images/image9.png rename to docs/zh-cn/stage-3/cross-platform/ios-app/images/image9.png diff --git a/docs/zh-cn/stage-3/cross-platform/3.6-ios-app/index.md b/docs/zh-cn/stage-3/cross-platform/ios-app/index.md similarity index 100% rename from docs/zh-cn/stage-3/cross-platform/3.6-ios-app/index.md rename to docs/zh-cn/stage-3/cross-platform/ios-app/index.md diff --git a/docs/zh-cn/stage-3/cross-platform/3.11-nft-minting/index.md b/docs/zh-cn/stage-3/cross-platform/nft-minting/index.md similarity index 100% rename from docs/zh-cn/stage-3/cross-platform/3.11-nft-minting/index.md rename to docs/zh-cn/stage-3/cross-platform/nft-minting/index.md diff --git a/docs/zh-cn/stage-3/cross-platform/3.8-pwa-local-app/images/icon-192.png b/docs/zh-cn/stage-3/cross-platform/pwa-local-app/images/icon-192.png similarity index 100% rename from docs/zh-cn/stage-3/cross-platform/3.8-pwa-local-app/images/icon-192.png rename to docs/zh-cn/stage-3/cross-platform/pwa-local-app/images/icon-192.png diff --git a/docs/zh-cn/stage-3/cross-platform/3.8-pwa-local-app/images/icon-512.png b/docs/zh-cn/stage-3/cross-platform/pwa-local-app/images/icon-512.png similarity index 100% rename from docs/zh-cn/stage-3/cross-platform/3.8-pwa-local-app/images/icon-512.png rename to docs/zh-cn/stage-3/cross-platform/pwa-local-app/images/icon-512.png diff --git a/docs/zh-cn/stage-3/cross-platform/3.8-pwa-local-app/images/image0.png b/docs/zh-cn/stage-3/cross-platform/pwa-local-app/images/image0.png similarity index 100% rename from docs/zh-cn/stage-3/cross-platform/3.8-pwa-local-app/images/image0.png rename to docs/zh-cn/stage-3/cross-platform/pwa-local-app/images/image0.png diff --git a/docs/zh-cn/stage-3/cross-platform/3.8-pwa-local-app/images/image1.png b/docs/zh-cn/stage-3/cross-platform/pwa-local-app/images/image1.png similarity index 100% rename from docs/zh-cn/stage-3/cross-platform/3.8-pwa-local-app/images/image1.png rename to docs/zh-cn/stage-3/cross-platform/pwa-local-app/images/image1.png diff --git a/docs/zh-cn/stage-3/cross-platform/3.8-pwa-local-app/images/image10.png b/docs/zh-cn/stage-3/cross-platform/pwa-local-app/images/image10.png similarity index 100% rename from docs/zh-cn/stage-3/cross-platform/3.8-pwa-local-app/images/image10.png rename to docs/zh-cn/stage-3/cross-platform/pwa-local-app/images/image10.png diff --git a/docs/zh-cn/stage-3/cross-platform/3.8-pwa-local-app/images/image11.png b/docs/zh-cn/stage-3/cross-platform/pwa-local-app/images/image11.png similarity index 100% rename from docs/zh-cn/stage-3/cross-platform/3.8-pwa-local-app/images/image11.png rename to docs/zh-cn/stage-3/cross-platform/pwa-local-app/images/image11.png diff --git a/docs/zh-cn/stage-3/cross-platform/3.8-pwa-local-app/images/image2.png b/docs/zh-cn/stage-3/cross-platform/pwa-local-app/images/image2.png similarity index 100% rename from docs/zh-cn/stage-3/cross-platform/3.8-pwa-local-app/images/image2.png rename to docs/zh-cn/stage-3/cross-platform/pwa-local-app/images/image2.png diff --git a/docs/zh-cn/stage-3/cross-platform/3.8-pwa-local-app/images/image3.png b/docs/zh-cn/stage-3/cross-platform/pwa-local-app/images/image3.png similarity index 100% rename from docs/zh-cn/stage-3/cross-platform/3.8-pwa-local-app/images/image3.png rename to docs/zh-cn/stage-3/cross-platform/pwa-local-app/images/image3.png diff --git a/docs/zh-cn/stage-3/cross-platform/3.8-pwa-local-app/images/image4.png b/docs/zh-cn/stage-3/cross-platform/pwa-local-app/images/image4.png similarity index 100% rename from docs/zh-cn/stage-3/cross-platform/3.8-pwa-local-app/images/image4.png rename to docs/zh-cn/stage-3/cross-platform/pwa-local-app/images/image4.png diff --git a/docs/zh-cn/stage-3/cross-platform/3.8-pwa-local-app/images/image5.png b/docs/zh-cn/stage-3/cross-platform/pwa-local-app/images/image5.png similarity index 100% rename from docs/zh-cn/stage-3/cross-platform/3.8-pwa-local-app/images/image5.png rename to docs/zh-cn/stage-3/cross-platform/pwa-local-app/images/image5.png diff --git a/docs/zh-cn/stage-3/cross-platform/3.8-pwa-local-app/images/image6.png b/docs/zh-cn/stage-3/cross-platform/pwa-local-app/images/image6.png similarity index 100% rename from docs/zh-cn/stage-3/cross-platform/3.8-pwa-local-app/images/image6.png rename to docs/zh-cn/stage-3/cross-platform/pwa-local-app/images/image6.png diff --git a/docs/zh-cn/stage-3/cross-platform/3.8-pwa-local-app/images/image7.png b/docs/zh-cn/stage-3/cross-platform/pwa-local-app/images/image7.png similarity index 100% rename from docs/zh-cn/stage-3/cross-platform/3.8-pwa-local-app/images/image7.png rename to docs/zh-cn/stage-3/cross-platform/pwa-local-app/images/image7.png diff --git a/docs/zh-cn/stage-3/cross-platform/3.8-pwa-local-app/images/image8.png b/docs/zh-cn/stage-3/cross-platform/pwa-local-app/images/image8.png similarity index 100% rename from docs/zh-cn/stage-3/cross-platform/3.8-pwa-local-app/images/image8.png rename to docs/zh-cn/stage-3/cross-platform/pwa-local-app/images/image8.png diff --git a/docs/zh-cn/stage-3/cross-platform/3.8-pwa-local-app/images/image9.png b/docs/zh-cn/stage-3/cross-platform/pwa-local-app/images/image9.png similarity index 100% rename from docs/zh-cn/stage-3/cross-platform/3.8-pwa-local-app/images/image9.png rename to docs/zh-cn/stage-3/cross-platform/pwa-local-app/images/image9.png diff --git a/docs/zh-cn/stage-3/cross-platform/3.8-pwa-local-app/index.md b/docs/zh-cn/stage-3/cross-platform/pwa-local-app/index.md similarity index 100% rename from docs/zh-cn/stage-3/cross-platform/3.8-pwa-local-app/index.md rename to docs/zh-cn/stage-3/cross-platform/pwa-local-app/index.md diff --git a/docs/zh-cn/stage-3/cross-platform/3.13-qt-industrial-hmi/index.md b/docs/zh-cn/stage-3/cross-platform/qt-industrial-hmi/index.md similarity index 100% rename from docs/zh-cn/stage-3/cross-platform/3.13-qt-industrial-hmi/index.md rename to docs/zh-cn/stage-3/cross-platform/qt-industrial-hmi/index.md diff --git a/docs/zh-cn/stage-3/cross-platform/3.12-vscode-extension/images/image1.png b/docs/zh-cn/stage-3/cross-platform/vscode-extension/images/image1.png similarity index 100% rename from docs/zh-cn/stage-3/cross-platform/3.12-vscode-extension/images/image1.png rename to docs/zh-cn/stage-3/cross-platform/vscode-extension/images/image1.png diff --git a/docs/zh-cn/stage-3/cross-platform/3.12-vscode-extension/images/image10.png b/docs/zh-cn/stage-3/cross-platform/vscode-extension/images/image10.png similarity index 100% rename from docs/zh-cn/stage-3/cross-platform/3.12-vscode-extension/images/image10.png rename to docs/zh-cn/stage-3/cross-platform/vscode-extension/images/image10.png diff --git a/docs/zh-cn/stage-3/cross-platform/3.12-vscode-extension/images/image11.png b/docs/zh-cn/stage-3/cross-platform/vscode-extension/images/image11.png similarity index 100% rename from docs/zh-cn/stage-3/cross-platform/3.12-vscode-extension/images/image11.png rename to docs/zh-cn/stage-3/cross-platform/vscode-extension/images/image11.png diff --git a/docs/zh-cn/stage-3/cross-platform/3.12-vscode-extension/images/image2.png b/docs/zh-cn/stage-3/cross-platform/vscode-extension/images/image2.png similarity index 100% rename from docs/zh-cn/stage-3/cross-platform/3.12-vscode-extension/images/image2.png rename to docs/zh-cn/stage-3/cross-platform/vscode-extension/images/image2.png diff --git a/docs/zh-cn/stage-3/cross-platform/3.12-vscode-extension/images/image3.png b/docs/zh-cn/stage-3/cross-platform/vscode-extension/images/image3.png similarity index 100% rename from docs/zh-cn/stage-3/cross-platform/3.12-vscode-extension/images/image3.png rename to docs/zh-cn/stage-3/cross-platform/vscode-extension/images/image3.png diff --git a/docs/zh-cn/stage-3/cross-platform/3.12-vscode-extension/images/image4.png b/docs/zh-cn/stage-3/cross-platform/vscode-extension/images/image4.png similarity index 100% rename from docs/zh-cn/stage-3/cross-platform/3.12-vscode-extension/images/image4.png rename to docs/zh-cn/stage-3/cross-platform/vscode-extension/images/image4.png diff --git a/docs/zh-cn/stage-3/cross-platform/3.12-vscode-extension/images/image5.png b/docs/zh-cn/stage-3/cross-platform/vscode-extension/images/image5.png similarity index 100% rename from docs/zh-cn/stage-3/cross-platform/3.12-vscode-extension/images/image5.png rename to docs/zh-cn/stage-3/cross-platform/vscode-extension/images/image5.png diff --git a/docs/zh-cn/stage-3/cross-platform/3.12-vscode-extension/images/image6.png b/docs/zh-cn/stage-3/cross-platform/vscode-extension/images/image6.png similarity index 100% rename from docs/zh-cn/stage-3/cross-platform/3.12-vscode-extension/images/image6.png rename to docs/zh-cn/stage-3/cross-platform/vscode-extension/images/image6.png diff --git a/docs/zh-cn/stage-3/cross-platform/3.12-vscode-extension/images/image7.png b/docs/zh-cn/stage-3/cross-platform/vscode-extension/images/image7.png similarity index 100% rename from docs/zh-cn/stage-3/cross-platform/3.12-vscode-extension/images/image7.png rename to docs/zh-cn/stage-3/cross-platform/vscode-extension/images/image7.png diff --git a/docs/zh-cn/stage-3/cross-platform/3.12-vscode-extension/images/image8.png b/docs/zh-cn/stage-3/cross-platform/vscode-extension/images/image8.png similarity index 100% rename from docs/zh-cn/stage-3/cross-platform/3.12-vscode-extension/images/image8.png rename to docs/zh-cn/stage-3/cross-platform/vscode-extension/images/image8.png diff --git a/docs/zh-cn/stage-3/cross-platform/3.12-vscode-extension/images/image9.png b/docs/zh-cn/stage-3/cross-platform/vscode-extension/images/image9.png similarity index 100% rename from docs/zh-cn/stage-3/cross-platform/3.12-vscode-extension/images/image9.png rename to docs/zh-cn/stage-3/cross-platform/vscode-extension/images/image9.png diff --git a/docs/zh-cn/stage-3/cross-platform/3.12-vscode-extension/index.md b/docs/zh-cn/stage-3/cross-platform/vscode-extension/index.md similarity index 100% rename from docs/zh-cn/stage-3/cross-platform/3.12-vscode-extension/index.md rename to docs/zh-cn/stage-3/cross-platform/vscode-extension/index.md diff --git a/docs/zh-cn/stage-3/cross-platform/3.4-wechat-miniprogram-backend/index.md b/docs/zh-cn/stage-3/cross-platform/wechat-miniprogram-backend/index.md similarity index 100% rename from docs/zh-cn/stage-3/cross-platform/3.4-wechat-miniprogram-backend/index.md rename to docs/zh-cn/stage-3/cross-platform/wechat-miniprogram-backend/index.md diff --git a/docs/zh-cn/stage-3/cross-platform/3.3-wechat-miniprogram/images/image1.png b/docs/zh-cn/stage-3/cross-platform/wechat-miniprogram/images/image1.png similarity index 100% rename from docs/zh-cn/stage-3/cross-platform/3.3-wechat-miniprogram/images/image1.png rename to docs/zh-cn/stage-3/cross-platform/wechat-miniprogram/images/image1.png diff --git a/docs/zh-cn/stage-3/cross-platform/3.3-wechat-miniprogram/images/image10.png b/docs/zh-cn/stage-3/cross-platform/wechat-miniprogram/images/image10.png similarity index 100% rename from docs/zh-cn/stage-3/cross-platform/3.3-wechat-miniprogram/images/image10.png rename to docs/zh-cn/stage-3/cross-platform/wechat-miniprogram/images/image10.png diff --git a/docs/zh-cn/stage-3/cross-platform/3.3-wechat-miniprogram/images/image11.png b/docs/zh-cn/stage-3/cross-platform/wechat-miniprogram/images/image11.png similarity index 100% rename from docs/zh-cn/stage-3/cross-platform/3.3-wechat-miniprogram/images/image11.png rename to docs/zh-cn/stage-3/cross-platform/wechat-miniprogram/images/image11.png diff --git a/docs/zh-cn/stage-3/cross-platform/3.3-wechat-miniprogram/images/image12.png b/docs/zh-cn/stage-3/cross-platform/wechat-miniprogram/images/image12.png similarity index 100% rename from docs/zh-cn/stage-3/cross-platform/3.3-wechat-miniprogram/images/image12.png rename to docs/zh-cn/stage-3/cross-platform/wechat-miniprogram/images/image12.png diff --git a/docs/zh-cn/stage-3/cross-platform/3.3-wechat-miniprogram/images/image13.png b/docs/zh-cn/stage-3/cross-platform/wechat-miniprogram/images/image13.png similarity index 100% rename from docs/zh-cn/stage-3/cross-platform/3.3-wechat-miniprogram/images/image13.png rename to docs/zh-cn/stage-3/cross-platform/wechat-miniprogram/images/image13.png diff --git a/docs/zh-cn/stage-3/cross-platform/3.3-wechat-miniprogram/images/image14.png b/docs/zh-cn/stage-3/cross-platform/wechat-miniprogram/images/image14.png similarity index 100% rename from docs/zh-cn/stage-3/cross-platform/3.3-wechat-miniprogram/images/image14.png rename to docs/zh-cn/stage-3/cross-platform/wechat-miniprogram/images/image14.png diff --git a/docs/zh-cn/stage-3/cross-platform/3.3-wechat-miniprogram/images/image15.png b/docs/zh-cn/stage-3/cross-platform/wechat-miniprogram/images/image15.png similarity index 100% rename from docs/zh-cn/stage-3/cross-platform/3.3-wechat-miniprogram/images/image15.png rename to docs/zh-cn/stage-3/cross-platform/wechat-miniprogram/images/image15.png diff --git a/docs/zh-cn/stage-3/cross-platform/3.3-wechat-miniprogram/images/image16.png b/docs/zh-cn/stage-3/cross-platform/wechat-miniprogram/images/image16.png similarity index 100% rename from docs/zh-cn/stage-3/cross-platform/3.3-wechat-miniprogram/images/image16.png rename to docs/zh-cn/stage-3/cross-platform/wechat-miniprogram/images/image16.png diff --git a/docs/zh-cn/stage-3/cross-platform/3.3-wechat-miniprogram/images/image17.png b/docs/zh-cn/stage-3/cross-platform/wechat-miniprogram/images/image17.png similarity index 100% rename from docs/zh-cn/stage-3/cross-platform/3.3-wechat-miniprogram/images/image17.png rename to docs/zh-cn/stage-3/cross-platform/wechat-miniprogram/images/image17.png diff --git a/docs/zh-cn/stage-3/cross-platform/3.3-wechat-miniprogram/images/image18.png b/docs/zh-cn/stage-3/cross-platform/wechat-miniprogram/images/image18.png similarity index 100% rename from docs/zh-cn/stage-3/cross-platform/3.3-wechat-miniprogram/images/image18.png rename to docs/zh-cn/stage-3/cross-platform/wechat-miniprogram/images/image18.png diff --git a/docs/zh-cn/stage-3/cross-platform/3.3-wechat-miniprogram/images/image19.png b/docs/zh-cn/stage-3/cross-platform/wechat-miniprogram/images/image19.png similarity index 100% rename from docs/zh-cn/stage-3/cross-platform/3.3-wechat-miniprogram/images/image19.png rename to docs/zh-cn/stage-3/cross-platform/wechat-miniprogram/images/image19.png diff --git a/docs/zh-cn/stage-3/cross-platform/3.3-wechat-miniprogram/images/image2.png b/docs/zh-cn/stage-3/cross-platform/wechat-miniprogram/images/image2.png similarity index 100% rename from docs/zh-cn/stage-3/cross-platform/3.3-wechat-miniprogram/images/image2.png rename to docs/zh-cn/stage-3/cross-platform/wechat-miniprogram/images/image2.png diff --git a/docs/zh-cn/stage-3/cross-platform/3.3-wechat-miniprogram/images/image20.png b/docs/zh-cn/stage-3/cross-platform/wechat-miniprogram/images/image20.png similarity index 100% rename from docs/zh-cn/stage-3/cross-platform/3.3-wechat-miniprogram/images/image20.png rename to docs/zh-cn/stage-3/cross-platform/wechat-miniprogram/images/image20.png diff --git a/docs/zh-cn/stage-3/cross-platform/3.3-wechat-miniprogram/images/image21.png b/docs/zh-cn/stage-3/cross-platform/wechat-miniprogram/images/image21.png similarity index 100% rename from docs/zh-cn/stage-3/cross-platform/3.3-wechat-miniprogram/images/image21.png rename to docs/zh-cn/stage-3/cross-platform/wechat-miniprogram/images/image21.png diff --git a/docs/zh-cn/stage-3/cross-platform/3.3-wechat-miniprogram/images/image22.png b/docs/zh-cn/stage-3/cross-platform/wechat-miniprogram/images/image22.png similarity index 100% rename from docs/zh-cn/stage-3/cross-platform/3.3-wechat-miniprogram/images/image22.png rename to docs/zh-cn/stage-3/cross-platform/wechat-miniprogram/images/image22.png diff --git a/docs/zh-cn/stage-3/cross-platform/3.3-wechat-miniprogram/images/image23.png b/docs/zh-cn/stage-3/cross-platform/wechat-miniprogram/images/image23.png similarity index 100% rename from docs/zh-cn/stage-3/cross-platform/3.3-wechat-miniprogram/images/image23.png rename to docs/zh-cn/stage-3/cross-platform/wechat-miniprogram/images/image23.png diff --git a/docs/zh-cn/stage-3/cross-platform/3.3-wechat-miniprogram/images/image24.png b/docs/zh-cn/stage-3/cross-platform/wechat-miniprogram/images/image24.png similarity index 100% rename from docs/zh-cn/stage-3/cross-platform/3.3-wechat-miniprogram/images/image24.png rename to docs/zh-cn/stage-3/cross-platform/wechat-miniprogram/images/image24.png diff --git a/docs/zh-cn/stage-3/cross-platform/3.3-wechat-miniprogram/images/image25.png b/docs/zh-cn/stage-3/cross-platform/wechat-miniprogram/images/image25.png similarity index 100% rename from docs/zh-cn/stage-3/cross-platform/3.3-wechat-miniprogram/images/image25.png rename to docs/zh-cn/stage-3/cross-platform/wechat-miniprogram/images/image25.png diff --git a/docs/zh-cn/stage-3/cross-platform/3.3-wechat-miniprogram/images/image26.png b/docs/zh-cn/stage-3/cross-platform/wechat-miniprogram/images/image26.png similarity index 100% rename from docs/zh-cn/stage-3/cross-platform/3.3-wechat-miniprogram/images/image26.png rename to docs/zh-cn/stage-3/cross-platform/wechat-miniprogram/images/image26.png diff --git a/docs/zh-cn/stage-3/cross-platform/3.3-wechat-miniprogram/images/image27.png b/docs/zh-cn/stage-3/cross-platform/wechat-miniprogram/images/image27.png similarity index 100% rename from docs/zh-cn/stage-3/cross-platform/3.3-wechat-miniprogram/images/image27.png rename to docs/zh-cn/stage-3/cross-platform/wechat-miniprogram/images/image27.png diff --git a/docs/zh-cn/stage-3/cross-platform/3.3-wechat-miniprogram/images/image28.png b/docs/zh-cn/stage-3/cross-platform/wechat-miniprogram/images/image28.png similarity index 100% rename from docs/zh-cn/stage-3/cross-platform/3.3-wechat-miniprogram/images/image28.png rename to docs/zh-cn/stage-3/cross-platform/wechat-miniprogram/images/image28.png diff --git a/docs/zh-cn/stage-3/cross-platform/3.3-wechat-miniprogram/images/image29.png b/docs/zh-cn/stage-3/cross-platform/wechat-miniprogram/images/image29.png similarity index 100% rename from docs/zh-cn/stage-3/cross-platform/3.3-wechat-miniprogram/images/image29.png rename to docs/zh-cn/stage-3/cross-platform/wechat-miniprogram/images/image29.png diff --git a/docs/zh-cn/stage-3/cross-platform/3.3-wechat-miniprogram/images/image3.png b/docs/zh-cn/stage-3/cross-platform/wechat-miniprogram/images/image3.png similarity index 100% rename from docs/zh-cn/stage-3/cross-platform/3.3-wechat-miniprogram/images/image3.png rename to docs/zh-cn/stage-3/cross-platform/wechat-miniprogram/images/image3.png diff --git a/docs/zh-cn/stage-3/cross-platform/3.3-wechat-miniprogram/images/image30.png b/docs/zh-cn/stage-3/cross-platform/wechat-miniprogram/images/image30.png similarity index 100% rename from docs/zh-cn/stage-3/cross-platform/3.3-wechat-miniprogram/images/image30.png rename to docs/zh-cn/stage-3/cross-platform/wechat-miniprogram/images/image30.png diff --git a/docs/zh-cn/stage-3/cross-platform/3.3-wechat-miniprogram/images/image31.png b/docs/zh-cn/stage-3/cross-platform/wechat-miniprogram/images/image31.png similarity index 100% rename from docs/zh-cn/stage-3/cross-platform/3.3-wechat-miniprogram/images/image31.png rename to docs/zh-cn/stage-3/cross-platform/wechat-miniprogram/images/image31.png diff --git a/docs/zh-cn/stage-3/cross-platform/3.3-wechat-miniprogram/images/image32.png b/docs/zh-cn/stage-3/cross-platform/wechat-miniprogram/images/image32.png similarity index 100% rename from docs/zh-cn/stage-3/cross-platform/3.3-wechat-miniprogram/images/image32.png rename to docs/zh-cn/stage-3/cross-platform/wechat-miniprogram/images/image32.png diff --git a/docs/zh-cn/stage-3/cross-platform/3.3-wechat-miniprogram/images/image33.png b/docs/zh-cn/stage-3/cross-platform/wechat-miniprogram/images/image33.png similarity index 100% rename from docs/zh-cn/stage-3/cross-platform/3.3-wechat-miniprogram/images/image33.png rename to docs/zh-cn/stage-3/cross-platform/wechat-miniprogram/images/image33.png diff --git a/docs/zh-cn/stage-3/cross-platform/3.3-wechat-miniprogram/images/image34.png b/docs/zh-cn/stage-3/cross-platform/wechat-miniprogram/images/image34.png similarity index 100% rename from docs/zh-cn/stage-3/cross-platform/3.3-wechat-miniprogram/images/image34.png rename to docs/zh-cn/stage-3/cross-platform/wechat-miniprogram/images/image34.png diff --git a/docs/zh-cn/stage-3/cross-platform/3.3-wechat-miniprogram/images/image35.png b/docs/zh-cn/stage-3/cross-platform/wechat-miniprogram/images/image35.png similarity index 100% rename from docs/zh-cn/stage-3/cross-platform/3.3-wechat-miniprogram/images/image35.png rename to docs/zh-cn/stage-3/cross-platform/wechat-miniprogram/images/image35.png diff --git a/docs/zh-cn/stage-3/cross-platform/3.3-wechat-miniprogram/images/image36.png b/docs/zh-cn/stage-3/cross-platform/wechat-miniprogram/images/image36.png similarity index 100% rename from docs/zh-cn/stage-3/cross-platform/3.3-wechat-miniprogram/images/image36.png rename to docs/zh-cn/stage-3/cross-platform/wechat-miniprogram/images/image36.png diff --git a/docs/zh-cn/stage-3/cross-platform/3.3-wechat-miniprogram/images/image37.png b/docs/zh-cn/stage-3/cross-platform/wechat-miniprogram/images/image37.png similarity index 100% rename from docs/zh-cn/stage-3/cross-platform/3.3-wechat-miniprogram/images/image37.png rename to docs/zh-cn/stage-3/cross-platform/wechat-miniprogram/images/image37.png diff --git a/docs/zh-cn/stage-3/cross-platform/3.3-wechat-miniprogram/images/image38.png b/docs/zh-cn/stage-3/cross-platform/wechat-miniprogram/images/image38.png similarity index 100% rename from docs/zh-cn/stage-3/cross-platform/3.3-wechat-miniprogram/images/image38.png rename to docs/zh-cn/stage-3/cross-platform/wechat-miniprogram/images/image38.png diff --git a/docs/zh-cn/stage-3/cross-platform/3.3-wechat-miniprogram/images/image39.png b/docs/zh-cn/stage-3/cross-platform/wechat-miniprogram/images/image39.png similarity index 100% rename from docs/zh-cn/stage-3/cross-platform/3.3-wechat-miniprogram/images/image39.png rename to docs/zh-cn/stage-3/cross-platform/wechat-miniprogram/images/image39.png diff --git a/docs/zh-cn/stage-3/cross-platform/3.3-wechat-miniprogram/images/image4.png b/docs/zh-cn/stage-3/cross-platform/wechat-miniprogram/images/image4.png similarity index 100% rename from docs/zh-cn/stage-3/cross-platform/3.3-wechat-miniprogram/images/image4.png rename to docs/zh-cn/stage-3/cross-platform/wechat-miniprogram/images/image4.png diff --git a/docs/zh-cn/stage-3/cross-platform/3.3-wechat-miniprogram/images/image40.png b/docs/zh-cn/stage-3/cross-platform/wechat-miniprogram/images/image40.png similarity index 100% rename from docs/zh-cn/stage-3/cross-platform/3.3-wechat-miniprogram/images/image40.png rename to docs/zh-cn/stage-3/cross-platform/wechat-miniprogram/images/image40.png diff --git a/docs/zh-cn/stage-3/cross-platform/3.3-wechat-miniprogram/images/image41.png b/docs/zh-cn/stage-3/cross-platform/wechat-miniprogram/images/image41.png similarity index 100% rename from docs/zh-cn/stage-3/cross-platform/3.3-wechat-miniprogram/images/image41.png rename to docs/zh-cn/stage-3/cross-platform/wechat-miniprogram/images/image41.png diff --git a/docs/zh-cn/stage-3/cross-platform/3.3-wechat-miniprogram/images/image42.png b/docs/zh-cn/stage-3/cross-platform/wechat-miniprogram/images/image42.png similarity index 100% rename from docs/zh-cn/stage-3/cross-platform/3.3-wechat-miniprogram/images/image42.png rename to docs/zh-cn/stage-3/cross-platform/wechat-miniprogram/images/image42.png diff --git a/docs/zh-cn/stage-3/cross-platform/3.3-wechat-miniprogram/images/image5.png b/docs/zh-cn/stage-3/cross-platform/wechat-miniprogram/images/image5.png similarity index 100% rename from docs/zh-cn/stage-3/cross-platform/3.3-wechat-miniprogram/images/image5.png rename to docs/zh-cn/stage-3/cross-platform/wechat-miniprogram/images/image5.png diff --git a/docs/zh-cn/stage-3/cross-platform/3.3-wechat-miniprogram/images/image6.png b/docs/zh-cn/stage-3/cross-platform/wechat-miniprogram/images/image6.png similarity index 100% rename from docs/zh-cn/stage-3/cross-platform/3.3-wechat-miniprogram/images/image6.png rename to docs/zh-cn/stage-3/cross-platform/wechat-miniprogram/images/image6.png diff --git a/docs/zh-cn/stage-3/cross-platform/3.3-wechat-miniprogram/images/image7.png b/docs/zh-cn/stage-3/cross-platform/wechat-miniprogram/images/image7.png similarity index 100% rename from docs/zh-cn/stage-3/cross-platform/3.3-wechat-miniprogram/images/image7.png rename to docs/zh-cn/stage-3/cross-platform/wechat-miniprogram/images/image7.png diff --git a/docs/zh-cn/stage-3/cross-platform/3.3-wechat-miniprogram/images/image8.png b/docs/zh-cn/stage-3/cross-platform/wechat-miniprogram/images/image8.png similarity index 100% rename from docs/zh-cn/stage-3/cross-platform/3.3-wechat-miniprogram/images/image8.png rename to docs/zh-cn/stage-3/cross-platform/wechat-miniprogram/images/image8.png diff --git a/docs/zh-cn/stage-3/cross-platform/3.3-wechat-miniprogram/images/image9.png b/docs/zh-cn/stage-3/cross-platform/wechat-miniprogram/images/image9.png similarity index 100% rename from docs/zh-cn/stage-3/cross-platform/3.3-wechat-miniprogram/images/image9.png rename to docs/zh-cn/stage-3/cross-platform/wechat-miniprogram/images/image9.png diff --git a/docs/zh-cn/stage-3/cross-platform/3.3-wechat-miniprogram/index.md b/docs/zh-cn/stage-3/cross-platform/wechat-miniprogram/index.md similarity index 100% rename from docs/zh-cn/stage-3/cross-platform/3.3-wechat-miniprogram/index.md rename to docs/zh-cn/stage-3/cross-platform/wechat-miniprogram/index.md diff --git a/docs/zh-cn/stage-3/index.md b/docs/zh-cn/stage-3/index.md index aa9e791..2fae327 100644 --- a/docs/zh-cn/stage-3/index.md +++ b/docs/zh-cn/stage-3/index.md @@ -52,57 +52,57 @@ @@ -114,7 +114,7 @@ @@ -126,12 +126,12 @@ diff --git a/docs/zh-cn/stage-3/personal-brand/3.7-personal-website-blog/images/image1.png b/docs/zh-cn/stage-3/personal-brand/personal-website-blog/images/image1.png similarity index 100% rename from docs/zh-cn/stage-3/personal-brand/3.7-personal-website-blog/images/image1.png rename to docs/zh-cn/stage-3/personal-brand/personal-website-blog/images/image1.png diff --git a/docs/zh-cn/stage-3/personal-brand/3.7-personal-website-blog/images/image10.png b/docs/zh-cn/stage-3/personal-brand/personal-website-blog/images/image10.png similarity index 100% rename from docs/zh-cn/stage-3/personal-brand/3.7-personal-website-blog/images/image10.png rename to docs/zh-cn/stage-3/personal-brand/personal-website-blog/images/image10.png diff --git a/docs/zh-cn/stage-3/personal-brand/3.7-personal-website-blog/images/image11.png b/docs/zh-cn/stage-3/personal-brand/personal-website-blog/images/image11.png similarity index 100% rename from docs/zh-cn/stage-3/personal-brand/3.7-personal-website-blog/images/image11.png rename to docs/zh-cn/stage-3/personal-brand/personal-website-blog/images/image11.png diff --git a/docs/zh-cn/stage-3/personal-brand/3.7-personal-website-blog/images/image12.png b/docs/zh-cn/stage-3/personal-brand/personal-website-blog/images/image12.png similarity index 100% rename from docs/zh-cn/stage-3/personal-brand/3.7-personal-website-blog/images/image12.png rename to docs/zh-cn/stage-3/personal-brand/personal-website-blog/images/image12.png diff --git a/docs/zh-cn/stage-3/personal-brand/3.7-personal-website-blog/images/image13.png b/docs/zh-cn/stage-3/personal-brand/personal-website-blog/images/image13.png similarity index 100% rename from docs/zh-cn/stage-3/personal-brand/3.7-personal-website-blog/images/image13.png rename to docs/zh-cn/stage-3/personal-brand/personal-website-blog/images/image13.png diff --git a/docs/zh-cn/stage-3/personal-brand/3.7-personal-website-blog/images/image14.png b/docs/zh-cn/stage-3/personal-brand/personal-website-blog/images/image14.png similarity index 100% rename from docs/zh-cn/stage-3/personal-brand/3.7-personal-website-blog/images/image14.png rename to docs/zh-cn/stage-3/personal-brand/personal-website-blog/images/image14.png diff --git a/docs/zh-cn/stage-3/personal-brand/3.7-personal-website-blog/images/image15.png b/docs/zh-cn/stage-3/personal-brand/personal-website-blog/images/image15.png similarity index 100% rename from docs/zh-cn/stage-3/personal-brand/3.7-personal-website-blog/images/image15.png rename to docs/zh-cn/stage-3/personal-brand/personal-website-blog/images/image15.png diff --git a/docs/zh-cn/stage-3/personal-brand/3.7-personal-website-blog/images/image16.png b/docs/zh-cn/stage-3/personal-brand/personal-website-blog/images/image16.png similarity index 100% rename from docs/zh-cn/stage-3/personal-brand/3.7-personal-website-blog/images/image16.png rename to docs/zh-cn/stage-3/personal-brand/personal-website-blog/images/image16.png diff --git a/docs/zh-cn/stage-3/personal-brand/3.7-personal-website-blog/images/image17.png b/docs/zh-cn/stage-3/personal-brand/personal-website-blog/images/image17.png similarity index 100% rename from docs/zh-cn/stage-3/personal-brand/3.7-personal-website-blog/images/image17.png rename to docs/zh-cn/stage-3/personal-brand/personal-website-blog/images/image17.png diff --git a/docs/zh-cn/stage-3/personal-brand/3.7-personal-website-blog/images/image18.png b/docs/zh-cn/stage-3/personal-brand/personal-website-blog/images/image18.png similarity index 100% rename from docs/zh-cn/stage-3/personal-brand/3.7-personal-website-blog/images/image18.png rename to docs/zh-cn/stage-3/personal-brand/personal-website-blog/images/image18.png diff --git a/docs/zh-cn/stage-3/personal-brand/3.7-personal-website-blog/images/image19.png b/docs/zh-cn/stage-3/personal-brand/personal-website-blog/images/image19.png similarity index 100% rename from docs/zh-cn/stage-3/personal-brand/3.7-personal-website-blog/images/image19.png rename to docs/zh-cn/stage-3/personal-brand/personal-website-blog/images/image19.png diff --git a/docs/zh-cn/stage-3/personal-brand/3.7-personal-website-blog/images/image2.png b/docs/zh-cn/stage-3/personal-brand/personal-website-blog/images/image2.png similarity index 100% rename from docs/zh-cn/stage-3/personal-brand/3.7-personal-website-blog/images/image2.png rename to docs/zh-cn/stage-3/personal-brand/personal-website-blog/images/image2.png diff --git a/docs/zh-cn/stage-3/personal-brand/3.7-personal-website-blog/images/image20.png b/docs/zh-cn/stage-3/personal-brand/personal-website-blog/images/image20.png similarity index 100% rename from docs/zh-cn/stage-3/personal-brand/3.7-personal-website-blog/images/image20.png rename to docs/zh-cn/stage-3/personal-brand/personal-website-blog/images/image20.png diff --git a/docs/zh-cn/stage-3/personal-brand/3.7-personal-website-blog/images/image21.png b/docs/zh-cn/stage-3/personal-brand/personal-website-blog/images/image21.png similarity index 100% rename from docs/zh-cn/stage-3/personal-brand/3.7-personal-website-blog/images/image21.png rename to docs/zh-cn/stage-3/personal-brand/personal-website-blog/images/image21.png diff --git a/docs/zh-cn/stage-3/personal-brand/3.7-personal-website-blog/images/image22.png b/docs/zh-cn/stage-3/personal-brand/personal-website-blog/images/image22.png similarity index 100% rename from docs/zh-cn/stage-3/personal-brand/3.7-personal-website-blog/images/image22.png rename to docs/zh-cn/stage-3/personal-brand/personal-website-blog/images/image22.png diff --git a/docs/zh-cn/stage-3/personal-brand/3.7-personal-website-blog/images/image23.png b/docs/zh-cn/stage-3/personal-brand/personal-website-blog/images/image23.png similarity index 100% rename from docs/zh-cn/stage-3/personal-brand/3.7-personal-website-blog/images/image23.png rename to docs/zh-cn/stage-3/personal-brand/personal-website-blog/images/image23.png diff --git a/docs/zh-cn/stage-3/personal-brand/3.7-personal-website-blog/images/image24.png b/docs/zh-cn/stage-3/personal-brand/personal-website-blog/images/image24.png similarity index 100% rename from docs/zh-cn/stage-3/personal-brand/3.7-personal-website-blog/images/image24.png rename to docs/zh-cn/stage-3/personal-brand/personal-website-blog/images/image24.png diff --git a/docs/zh-cn/stage-3/personal-brand/3.7-personal-website-blog/images/image25.png b/docs/zh-cn/stage-3/personal-brand/personal-website-blog/images/image25.png similarity index 100% rename from docs/zh-cn/stage-3/personal-brand/3.7-personal-website-blog/images/image25.png rename to docs/zh-cn/stage-3/personal-brand/personal-website-blog/images/image25.png diff --git a/docs/zh-cn/stage-3/personal-brand/3.7-personal-website-blog/images/image26.png b/docs/zh-cn/stage-3/personal-brand/personal-website-blog/images/image26.png similarity index 100% rename from docs/zh-cn/stage-3/personal-brand/3.7-personal-website-blog/images/image26.png rename to docs/zh-cn/stage-3/personal-brand/personal-website-blog/images/image26.png diff --git a/docs/zh-cn/stage-3/personal-brand/3.7-personal-website-blog/images/image27.png b/docs/zh-cn/stage-3/personal-brand/personal-website-blog/images/image27.png similarity index 100% rename from docs/zh-cn/stage-3/personal-brand/3.7-personal-website-blog/images/image27.png rename to docs/zh-cn/stage-3/personal-brand/personal-website-blog/images/image27.png diff --git a/docs/zh-cn/stage-3/personal-brand/3.7-personal-website-blog/images/image28.png b/docs/zh-cn/stage-3/personal-brand/personal-website-blog/images/image28.png similarity index 100% rename from docs/zh-cn/stage-3/personal-brand/3.7-personal-website-blog/images/image28.png rename to docs/zh-cn/stage-3/personal-brand/personal-website-blog/images/image28.png diff --git a/docs/zh-cn/stage-3/personal-brand/3.7-personal-website-blog/images/image29.png b/docs/zh-cn/stage-3/personal-brand/personal-website-blog/images/image29.png similarity index 100% rename from docs/zh-cn/stage-3/personal-brand/3.7-personal-website-blog/images/image29.png rename to docs/zh-cn/stage-3/personal-brand/personal-website-blog/images/image29.png diff --git a/docs/zh-cn/stage-3/personal-brand/3.7-personal-website-blog/images/image3.png b/docs/zh-cn/stage-3/personal-brand/personal-website-blog/images/image3.png similarity index 100% rename from docs/zh-cn/stage-3/personal-brand/3.7-personal-website-blog/images/image3.png rename to docs/zh-cn/stage-3/personal-brand/personal-website-blog/images/image3.png diff --git a/docs/zh-cn/stage-3/personal-brand/3.7-personal-website-blog/images/image30.png b/docs/zh-cn/stage-3/personal-brand/personal-website-blog/images/image30.png similarity index 100% rename from docs/zh-cn/stage-3/personal-brand/3.7-personal-website-blog/images/image30.png rename to docs/zh-cn/stage-3/personal-brand/personal-website-blog/images/image30.png diff --git a/docs/zh-cn/stage-3/personal-brand/3.7-personal-website-blog/images/image31.png b/docs/zh-cn/stage-3/personal-brand/personal-website-blog/images/image31.png similarity index 100% rename from docs/zh-cn/stage-3/personal-brand/3.7-personal-website-blog/images/image31.png rename to docs/zh-cn/stage-3/personal-brand/personal-website-blog/images/image31.png diff --git a/docs/zh-cn/stage-3/personal-brand/3.7-personal-website-blog/images/image32.png b/docs/zh-cn/stage-3/personal-brand/personal-website-blog/images/image32.png similarity index 100% rename from docs/zh-cn/stage-3/personal-brand/3.7-personal-website-blog/images/image32.png rename to docs/zh-cn/stage-3/personal-brand/personal-website-blog/images/image32.png diff --git a/docs/zh-cn/stage-3/personal-brand/3.7-personal-website-blog/images/image33.png b/docs/zh-cn/stage-3/personal-brand/personal-website-blog/images/image33.png similarity index 100% rename from docs/zh-cn/stage-3/personal-brand/3.7-personal-website-blog/images/image33.png rename to docs/zh-cn/stage-3/personal-brand/personal-website-blog/images/image33.png diff --git a/docs/zh-cn/stage-3/personal-brand/3.7-personal-website-blog/images/image34.png b/docs/zh-cn/stage-3/personal-brand/personal-website-blog/images/image34.png similarity index 100% rename from docs/zh-cn/stage-3/personal-brand/3.7-personal-website-blog/images/image34.png rename to docs/zh-cn/stage-3/personal-brand/personal-website-blog/images/image34.png diff --git a/docs/zh-cn/stage-3/personal-brand/3.7-personal-website-blog/images/image35.png b/docs/zh-cn/stage-3/personal-brand/personal-website-blog/images/image35.png similarity index 100% rename from docs/zh-cn/stage-3/personal-brand/3.7-personal-website-blog/images/image35.png rename to docs/zh-cn/stage-3/personal-brand/personal-website-blog/images/image35.png diff --git a/docs/zh-cn/stage-3/personal-brand/3.7-personal-website-blog/images/image36.png b/docs/zh-cn/stage-3/personal-brand/personal-website-blog/images/image36.png similarity index 100% rename from docs/zh-cn/stage-3/personal-brand/3.7-personal-website-blog/images/image36.png rename to docs/zh-cn/stage-3/personal-brand/personal-website-blog/images/image36.png diff --git a/docs/zh-cn/stage-3/personal-brand/3.7-personal-website-blog/images/image37.png b/docs/zh-cn/stage-3/personal-brand/personal-website-blog/images/image37.png similarity index 100% rename from docs/zh-cn/stage-3/personal-brand/3.7-personal-website-blog/images/image37.png rename to docs/zh-cn/stage-3/personal-brand/personal-website-blog/images/image37.png diff --git a/docs/zh-cn/stage-3/personal-brand/3.7-personal-website-blog/images/image38.png b/docs/zh-cn/stage-3/personal-brand/personal-website-blog/images/image38.png similarity index 100% rename from docs/zh-cn/stage-3/personal-brand/3.7-personal-website-blog/images/image38.png rename to docs/zh-cn/stage-3/personal-brand/personal-website-blog/images/image38.png diff --git a/docs/zh-cn/stage-3/personal-brand/3.7-personal-website-blog/images/image39.png b/docs/zh-cn/stage-3/personal-brand/personal-website-blog/images/image39.png similarity index 100% rename from docs/zh-cn/stage-3/personal-brand/3.7-personal-website-blog/images/image39.png rename to docs/zh-cn/stage-3/personal-brand/personal-website-blog/images/image39.png diff --git a/docs/zh-cn/stage-3/personal-brand/3.7-personal-website-blog/images/image4.png b/docs/zh-cn/stage-3/personal-brand/personal-website-blog/images/image4.png similarity index 100% rename from docs/zh-cn/stage-3/personal-brand/3.7-personal-website-blog/images/image4.png rename to docs/zh-cn/stage-3/personal-brand/personal-website-blog/images/image4.png diff --git a/docs/zh-cn/stage-3/personal-brand/3.7-personal-website-blog/images/image40.png b/docs/zh-cn/stage-3/personal-brand/personal-website-blog/images/image40.png similarity index 100% rename from docs/zh-cn/stage-3/personal-brand/3.7-personal-website-blog/images/image40.png rename to docs/zh-cn/stage-3/personal-brand/personal-website-blog/images/image40.png diff --git a/docs/zh-cn/stage-3/personal-brand/3.7-personal-website-blog/images/image41.png b/docs/zh-cn/stage-3/personal-brand/personal-website-blog/images/image41.png similarity index 100% rename from docs/zh-cn/stage-3/personal-brand/3.7-personal-website-blog/images/image41.png rename to docs/zh-cn/stage-3/personal-brand/personal-website-blog/images/image41.png diff --git a/docs/zh-cn/stage-3/personal-brand/3.7-personal-website-blog/images/image42.png b/docs/zh-cn/stage-3/personal-brand/personal-website-blog/images/image42.png similarity index 100% rename from docs/zh-cn/stage-3/personal-brand/3.7-personal-website-blog/images/image42.png rename to docs/zh-cn/stage-3/personal-brand/personal-website-blog/images/image42.png diff --git a/docs/zh-cn/stage-3/personal-brand/3.7-personal-website-blog/images/image43.png b/docs/zh-cn/stage-3/personal-brand/personal-website-blog/images/image43.png similarity index 100% rename from docs/zh-cn/stage-3/personal-brand/3.7-personal-website-blog/images/image43.png rename to docs/zh-cn/stage-3/personal-brand/personal-website-blog/images/image43.png diff --git a/docs/zh-cn/stage-3/personal-brand/3.7-personal-website-blog/images/image44.png b/docs/zh-cn/stage-3/personal-brand/personal-website-blog/images/image44.png similarity index 100% rename from docs/zh-cn/stage-3/personal-brand/3.7-personal-website-blog/images/image44.png rename to docs/zh-cn/stage-3/personal-brand/personal-website-blog/images/image44.png diff --git a/docs/zh-cn/stage-3/personal-brand/3.7-personal-website-blog/images/image45.png b/docs/zh-cn/stage-3/personal-brand/personal-website-blog/images/image45.png similarity index 100% rename from docs/zh-cn/stage-3/personal-brand/3.7-personal-website-blog/images/image45.png rename to docs/zh-cn/stage-3/personal-brand/personal-website-blog/images/image45.png diff --git a/docs/zh-cn/stage-3/personal-brand/3.7-personal-website-blog/images/image46.png b/docs/zh-cn/stage-3/personal-brand/personal-website-blog/images/image46.png similarity index 100% rename from docs/zh-cn/stage-3/personal-brand/3.7-personal-website-blog/images/image46.png rename to docs/zh-cn/stage-3/personal-brand/personal-website-blog/images/image46.png diff --git a/docs/zh-cn/stage-3/personal-brand/3.7-personal-website-blog/images/image47.png b/docs/zh-cn/stage-3/personal-brand/personal-website-blog/images/image47.png similarity index 100% rename from docs/zh-cn/stage-3/personal-brand/3.7-personal-website-blog/images/image47.png rename to docs/zh-cn/stage-3/personal-brand/personal-website-blog/images/image47.png diff --git a/docs/zh-cn/stage-3/personal-brand/3.7-personal-website-blog/images/image48.png b/docs/zh-cn/stage-3/personal-brand/personal-website-blog/images/image48.png similarity index 100% rename from docs/zh-cn/stage-3/personal-brand/3.7-personal-website-blog/images/image48.png rename to docs/zh-cn/stage-3/personal-brand/personal-website-blog/images/image48.png diff --git a/docs/zh-cn/stage-3/personal-brand/3.7-personal-website-blog/images/image49.png b/docs/zh-cn/stage-3/personal-brand/personal-website-blog/images/image49.png similarity index 100% rename from docs/zh-cn/stage-3/personal-brand/3.7-personal-website-blog/images/image49.png rename to docs/zh-cn/stage-3/personal-brand/personal-website-blog/images/image49.png diff --git a/docs/zh-cn/stage-3/personal-brand/3.7-personal-website-blog/images/image5.png b/docs/zh-cn/stage-3/personal-brand/personal-website-blog/images/image5.png similarity index 100% rename from docs/zh-cn/stage-3/personal-brand/3.7-personal-website-blog/images/image5.png rename to docs/zh-cn/stage-3/personal-brand/personal-website-blog/images/image5.png diff --git a/docs/zh-cn/stage-3/personal-brand/3.7-personal-website-blog/images/image50.png b/docs/zh-cn/stage-3/personal-brand/personal-website-blog/images/image50.png similarity index 100% rename from docs/zh-cn/stage-3/personal-brand/3.7-personal-website-blog/images/image50.png rename to docs/zh-cn/stage-3/personal-brand/personal-website-blog/images/image50.png diff --git a/docs/zh-cn/stage-3/personal-brand/3.7-personal-website-blog/images/image51.png b/docs/zh-cn/stage-3/personal-brand/personal-website-blog/images/image51.png similarity index 100% rename from docs/zh-cn/stage-3/personal-brand/3.7-personal-website-blog/images/image51.png rename to docs/zh-cn/stage-3/personal-brand/personal-website-blog/images/image51.png diff --git a/docs/zh-cn/stage-3/personal-brand/3.7-personal-website-blog/images/image52.png b/docs/zh-cn/stage-3/personal-brand/personal-website-blog/images/image52.png similarity index 100% rename from docs/zh-cn/stage-3/personal-brand/3.7-personal-website-blog/images/image52.png rename to docs/zh-cn/stage-3/personal-brand/personal-website-blog/images/image52.png diff --git a/docs/zh-cn/stage-3/personal-brand/3.7-personal-website-blog/images/image53.png b/docs/zh-cn/stage-3/personal-brand/personal-website-blog/images/image53.png similarity index 100% rename from docs/zh-cn/stage-3/personal-brand/3.7-personal-website-blog/images/image53.png rename to docs/zh-cn/stage-3/personal-brand/personal-website-blog/images/image53.png diff --git a/docs/zh-cn/stage-3/personal-brand/3.7-personal-website-blog/images/image54.png b/docs/zh-cn/stage-3/personal-brand/personal-website-blog/images/image54.png similarity index 100% rename from docs/zh-cn/stage-3/personal-brand/3.7-personal-website-blog/images/image54.png rename to docs/zh-cn/stage-3/personal-brand/personal-website-blog/images/image54.png diff --git a/docs/zh-cn/stage-3/personal-brand/3.7-personal-website-blog/images/image55.png b/docs/zh-cn/stage-3/personal-brand/personal-website-blog/images/image55.png similarity index 100% rename from docs/zh-cn/stage-3/personal-brand/3.7-personal-website-blog/images/image55.png rename to docs/zh-cn/stage-3/personal-brand/personal-website-blog/images/image55.png diff --git a/docs/zh-cn/stage-3/personal-brand/3.7-personal-website-blog/images/image56.png b/docs/zh-cn/stage-3/personal-brand/personal-website-blog/images/image56.png similarity index 100% rename from docs/zh-cn/stage-3/personal-brand/3.7-personal-website-blog/images/image56.png rename to docs/zh-cn/stage-3/personal-brand/personal-website-blog/images/image56.png diff --git a/docs/zh-cn/stage-3/personal-brand/3.7-personal-website-blog/images/image57.png b/docs/zh-cn/stage-3/personal-brand/personal-website-blog/images/image57.png similarity index 100% rename from docs/zh-cn/stage-3/personal-brand/3.7-personal-website-blog/images/image57.png rename to docs/zh-cn/stage-3/personal-brand/personal-website-blog/images/image57.png diff --git a/docs/zh-cn/stage-3/personal-brand/3.7-personal-website-blog/images/image6.png b/docs/zh-cn/stage-3/personal-brand/personal-website-blog/images/image6.png similarity index 100% rename from docs/zh-cn/stage-3/personal-brand/3.7-personal-website-blog/images/image6.png rename to docs/zh-cn/stage-3/personal-brand/personal-website-blog/images/image6.png diff --git a/docs/zh-cn/stage-3/personal-brand/3.7-personal-website-blog/images/image7.png b/docs/zh-cn/stage-3/personal-brand/personal-website-blog/images/image7.png similarity index 100% rename from docs/zh-cn/stage-3/personal-brand/3.7-personal-website-blog/images/image7.png rename to docs/zh-cn/stage-3/personal-brand/personal-website-blog/images/image7.png diff --git a/docs/zh-cn/stage-3/personal-brand/3.7-personal-website-blog/images/image8.png b/docs/zh-cn/stage-3/personal-brand/personal-website-blog/images/image8.png similarity index 100% rename from docs/zh-cn/stage-3/personal-brand/3.7-personal-website-blog/images/image8.png rename to docs/zh-cn/stage-3/personal-brand/personal-website-blog/images/image8.png diff --git a/docs/zh-cn/stage-3/personal-brand/3.7-personal-website-blog/images/image9.png b/docs/zh-cn/stage-3/personal-brand/personal-website-blog/images/image9.png similarity index 100% rename from docs/zh-cn/stage-3/personal-brand/3.7-personal-website-blog/images/image9.png rename to docs/zh-cn/stage-3/personal-brand/personal-website-blog/images/image9.png diff --git a/docs/zh-cn/stage-3/personal-brand/3.7-personal-website-blog/index.md b/docs/zh-cn/stage-3/personal-brand/personal-website-blog/index.md similarity index 100% rename from docs/zh-cn/stage-3/personal-brand/3.7-personal-website-blog/index.md rename to docs/zh-cn/stage-3/personal-brand/personal-website-blog/index.md diff --git a/docs/zh-tw/index.md b/docs/zh-tw/index.md index 9a62606..6a6e69b 100644 --- a/docs/zh-tw/index.md +++ b/docs/zh-tw/index.md @@ -17,10 +17,10 @@ hero: actions: - theme: brand text: 開始一起 vibe! - link: /zh-tw/stage-0/ + link: /zh-tw/stage-1/ - theme: alt text: 課程大綱 - link: /zh-tw/stage-0/ + link: /zh-tw/stage-1/ --- diff --git a/docs/zh-tw/stage-0/index.md b/docs/zh-tw/stage-0/index.md index 02ca24f..edb5ef2 100644 --- a/docs/zh-tw/stage-0/index.md +++ b/docs/zh-tw/stage-0/index.md @@ -11,12 +11,12 @@ 適合產品、運營及非技術背景。通過做遊戲理解 AI 編程邏輯,建立信心: @@ -28,22 +28,22 @@ 掌握 Vibe Coding 工作流。學會拆解需求,獨立完成高保真 Web 應用原型: diff --git a/scripts/generate-sitemap.mjs b/scripts/generate-sitemap.mjs index 5852cbb..4271f31 100644 --- a/scripts/generate-sitemap.mjs +++ b/scripts/generate-sitemap.mjs @@ -269,7 +269,7 @@ function main() { } function getPriority(filePath) { - if (filePath.includes('stage-0') || filePath.includes('stage-1')) return 0.9 + if (filePath.includes('stage-1')) return 0.9 if (filePath.includes('stage-2')) return 0.8 if (filePath.includes('stage-3')) return 0.8 if (filePath.includes('appendix')) return 0.7