chore(i18n): sync translations with latest source changes (chunk 1/1, 9 changes)

pull/1774/head
localizeflow[bot] 2 weeks ago
parent 932ab48db9
commit 563b50d211

@ -1,7 +1,7 @@
{
"1-getting-started-lessons/1-intro-to-programming-languages/README.md": {
"original_hash": "bec5e35642176d9e483552bfc82996d8",
"translation_date": "2026-03-06T17:59:01+00:00",
"original_hash": "d5eeb6e975b5864d8da52d4a41941f8d",
"translation_date": "2026-03-27T22:41:11+00:00",
"source_file": "1-getting-started-lessons/1-intro-to-programming-languages/README.md",
"language_code": "zh-HK"
},
@ -493,7 +493,7 @@
},
"AGENTS.md": {
"original_hash": "a362efd06d64d4134a0cfe8515a86d34",
"translation_date": "2026-03-06T18:07:37+00:00",
"translation_date": "2026-03-27T22:47:08+00:00",
"source_file": "AGENTS.md",
"language_code": "zh-HK"
},

@ -1,57 +1,57 @@
# AGENTS.md
## Project Overview
## 專案概覽
這是一個教導初學者網頁開發基礎的教育課程資料庫。此課程是一個由 Microsoft Cloud Advocates 開發的完整 12 週課程,包含 24 節涵蓋 JavaScript、CSS 和 HTML 的實作課程。
這是一個用於教授初學者網頁開發基礎的教育課程資源庫。該課程為一個由 Microsoft Cloud Advocates 開發的完整 12 週課程,包含 24 個涵蓋 JavaScript、CSS 和 HTML 的實作課程。
### Key Components
### 主要組件
- **教育內容**24 節結構化課程,按專案模組組織
- **實作專案**:生態缸、打字遊戲、瀏覽器擴充套件、太空遊戲、銀行應用程式、程式碼編輯器和 AI 聊天助理
- **互動測驗**48 小測驗,每個包含 3 題(課程前後評估)
- **多語言支援**:透過 GitHub Actions 自動翻譯超過 50 種語言
- **技術**HTML、CSS、JavaScript、Vue.js 3、Vite、Node.js、Express、PythonAI 專案)
- <strong>教育內容</strong>24 個結構化課程,組織於專案模組中
- <strong>實用專案</strong>:生態球、打字遊戲、瀏覽器擴充功能、太空遊戲、銀行應用、程式碼編輯器及 AI 聊天助手
- <strong>互動測驗</strong>48 次測驗,每次包含 3 題(課前/課後評估)
- <strong>多語言支援</strong>:透過 GitHub Actions 自動支援 50+ 種語言翻譯
- <strong>技術堆疊</strong>HTML、CSS、JavaScript、Vue.js 3、Vite、Node.js、Express、Python用於 AI 專案)
### Architecture
### 架構
- 以課程為基礎結構的教育資源庫
- 每個課程資料夾包含 README、程式碼範例及解答
- 各自獨立專案目錄quiz-app、各課程專案
- 使用 GitHub Actions 的翻譯系統co-op-translator
- 文件使用 Docsify 提供並可輸出 PDF
- 每個課程資料夾包含 README、程式碼範例和解決方案
- 獨立專案位於獨立目錄quiz-app、各課程專案)
- 透過 GitHub Actions (co-op-translator) 的翻譯系統
- 文件透過 Docsify 提供並可生成 PDF
## Setup Commands
## 設定指令
此資料庫主要用於教育內容的學習。若要使用特定專案
此資源庫主要供教育內容閱讀使用。若要操作特定專案,請依以下指引
### Main Repository Setup
### 主要資源庫設定
```bash
git clone https://github.com/microsoft/Web-Dev-For-Beginners.git
cd Web-Dev-For-Beginners
```
### Quiz App Setup (Vue 3 + Vite)
### 測驗應用程式設定Vue 3 + Vite
```bash
cd quiz-app
npm install
npm run dev # 開始開發伺服器
npm run build # 編譯生產環境版本
npm run dev # 啟動開發伺服器
npm run build # 建立生產版本
npm run lint # 執行 ESLint
```
### Bank Project API (Node.js + Express)
### 銀行專案 APINode.js + Express
```bash
cd 7-bank-project/api
npm install
npm start # 啟動 API 伺服器
npm run lint # 行 ESLint
npm run lint # 行 ESLint
npm run format # 使用 Prettier 格式化
```
### Browser Extension Projects
### 瀏覽器擴充功能專案
```bash
cd 5-browser-extension/solution
@ -59,224 +59,224 @@ npm install
# 遵循瀏覽器特定的擴充功能載入指示
```
### Space Game Projects
### 太空遊戲專案
```bash
cd 6-space-game/solution
npm install
# 在瀏覽器中打開 index.html 或使用實時伺服器
# 在瀏覽器中打開 index.html 或使用 Live Server
```
### Chat Project (Python Backend)
### 聊天專案Python 後端)
```bash
cd 9-chat-project/solution/backend/python
pip install openai
# 設定 GITHUB_TOKEN 環境變
# 設定 GITHUB_TOKEN 環境變
python api.py
```
## Development Workflow
## 開發工作流程
### For Content Contributors
### 對內容貢獻者
1. **Fork 倉庫** 至您的 GitHub 帳號
2. **Clone 您的 fork** 至本地端
3. **建立新分支** 以做出變更
1. **將資源庫 fork 到您的 GitHub 帳號**
2. **將 fork 複製到本地端**
3. <strong>為您的修改建立新分支</strong>
4. 修改課程內容或程式碼範例
5. 在相關專案目錄測試任何程式碼變更
6. 依貢獻指南提交 pull request
5. 在相關專案目錄中測試程式碼修改
6. 根據貢獻指南提交 pull requests
### For Learners
### 對學習者
1. Fork 或 clone 這個倉
2. 按順序進入課程目錄
3. 閱讀每課程的 README 文件
4. 在 https://ff-quizzes.netlify.app/web/ 完成課前測驗
5. 練習課程資料夾內的程式碼範例
6. 完成作業挑戰
7. 完成課後測驗
1. Fork 或 Clone 此資源
2. 依序瀏覽課程資料夾
3. 閱讀每堂課的 README 檔案
4. 完成課前測驗網址https://ff-quizzes.netlify.app/web/
5. 實作課程資料夾內的程式碼範例
6. 完成作業挑戰
7. 參加課後測驗
### Live Development
### 即時開發
- **文件**:在根目錄執行 `docsify serve`(預設端口 3000
- **Quiz App**:在 quiz-app 資料夾執`npm run dev`
- **專案**:使用 VS Code Live Server 擴充套件啟動 HTML 專案
- **API 專案**:在相應 API 資料夾執`npm start`
- <strong>文件</strong>:在根目錄運行 `docsify serve`(預設埠 3000
- <strong>測驗應用程式</strong>:在 quiz-app 目錄運`npm run dev`
- <strong>專案</strong>HTML 專案使用 VS Code Live Server 擴充功能
- **API 專案**:在對應 API 目錄運`npm start`
## Testing Instructions
## 測試說明
### Quiz App Testing
### 測驗應用程式測試
```bash
cd quiz-app
npm run lint # 檢查代碼風格問題
npm run build # 驗證構建是否成功
npm run build # 驗證編譯成功
```
### Bank API Testing
### 銀行 API 測試
```bash
cd 7-bank-project/api
npm run lint # 檢查代碼風格問題
node server.js # 驗證服啟動時無錯誤
node server.js # 驗證服器無錯誤啟動
```
### General Testing Approach
### 一般測試方式
- 此為教育用途的資源庫,沒有全面自動化測試
- 此為教育資源庫,沒有全面自動化測試
- 手動測試重點:
- 程式碼範例能正常執行無錯誤
- 文件中的連結均正確運作
- 專案能成功編譯建置
- 範例遵循最佳實踐
- 程式碼範例無錯誤執行
- 文件中連結正常
- 專案成功構建
- 範例遵從最佳實務
### Pre-submission Checks
### 提交前檢查
- 在 package.json 的目錄執行 `npm run lint`
- 驗證 markdown 連結的有效性
- 瀏覽器或 Node.js 中測試程式碼範例
- 確認翻譯保持正確結構
- 在 package.json 的目錄執行 `npm run lint`
- 確認 Markdown 連結有效
- 瀏覽器或 Node.js 中測試程式碼範例
- 確保翻譯結構無誤
## Code Style Guidelines
## 程式碼風格指南
### JavaScript
- 使用現代 ES6+ 語法
- 遵循專案中的標準 ESLint 配置
- 使用具意義的變數和函式名稱以增進教育清晰度
- 加入說明概念的註解給學習者
- 使用已配置的 Prettier 進行格式化
- 遵從專案中提供的標準 ESLint 設定
- 變數及函式命名具意義以利學習理解
- 新增註解解釋概念給學習者
- 使用 Prettier 格式化(有配置時)
### HTML/CSS
- 使用語意化 HTML5 元素
- 響應式設計原則
- 清晰的類別命名規範
- 加入說明 CSS 技巧的註解供學習者理解
- 清晰的 class 命名規則
- 註解說明 CSS 技術給學習者
### Python
- 遵 PEP 8 風格指南
- 清晰且具教育意義的程式碼範例
- 適時使用型別提示以輔助學習
- 遵 PEP 8 風格指南
- 清楚且具教學性的程式碼範例
- 需要時使用型別提示以利學習
### Markdown Documentation
### Markdown 文件
- 清楚的標題層級
- 使用指定語言的程式碼區塊
- 清晰的標題階層
- 標明語言的程式區塊
- 連結至額外資源
- `images/` 目錄中放置截圖與圖片
- 圖片使用替代文字提高可及性
- `images/` 資料夾的截圖與圖片
- 圖片具備替代文字以利無障礙
### File Organization
### 檔案組織
- 課程依序編號1-getting-started-lessons、2-js-basics 等)
- 每個專案含有 `solution/`通常有 `start/``your-work/`
- 圖片存放於課程專屬 `images/` 資料夾
- 翻譯存放`translations/{語言代碼}/` 結構中
- 課程依序編號 (1-getting-started-lessons, 2-js-basics 等)
- 每個專案含有 `solution/`,通常有 `start/``your-work/`
- 圖片存放於課程專屬 `images/` 資料夾
- 翻譯存放`translations/{language-code}/` 結構
## Build and Deployment
## 建構與部署
### Quiz App Deployment (Azure Static Web Apps)
### 測驗應用程式部署Azure Static Web Apps
quiz-app 支援 Azure Static Web Apps 部署:
quiz-app 已配置 Azure Static Web Apps 部署:
```bash
cd quiz-app
npm run build # 建立 dist/ 資料夾
# 在推送 main 時,透過 GitHub Actions 工作流程部署
# 在推送 main 時,透過 GitHub Actions 工作流程部署
```
Azure Static Web Apps 配置:
- **App location**`/quiz-app`
- **Output location**`dist`
- **Workflow**`.github/workflows/azure-static-web-apps-ashy-river-0debb7803.yml`
- <strong>應用程式位置</strong>`/quiz-app`
- <strong>輸出位置</strong>`dist`
- <strong>工作流程</strong>`.github/workflows/azure-static-web-apps-ashy-river-0debb7803.yml`
### Documentation PDF Generation
### 文件 PDF 產生
```bash
npm install # 安裝 docsify-to-pdf
npm run convert # 從 docs 生成 PDF
```
### Docsify Documentation
### Docsify 文件
```bash
npm install -g docsify-cli # 全域安裝 Docsify
docsify serve # 在 localhost:3000 提供服務
```
### Project-specific Builds
### 專案專屬建構
每個專案目錄可能有專屬建置流程:
- Vue 專案:使用 `npm run build` 產生生產用套件
- 靜態專案:無建置步驟,直接提供檔案
每個專案目錄可能有自己的建構流程:
- Vue 專案:`npm run build` 建置正式包
- 靜態專案:無建置步驟,直接提供檔案服務
## Pull Request Guidelines
## Pull Request 指南
### Title Format
### 標題格式
使用清楚描述變更範圍的標題
- `[Quiz-app] 為第 X 課新增測驗`
- `[Lesson-3] 修正生態缸專案錯字`
使用清晰且描述性標題顯示修改範圍
- `[Quiz-app] 新增第 X 課測驗`
- `[Lesson-3] 修正生態球專案拼寫錯誤`
- `[Translation] 新增第 5 課西班牙語翻譯`
- `[Docs] 更新設定說明`
- `[Docs] 更新設定指示`
### Required Checks
### 必要檢查事項
提交 PR 前:
提交 PR 前:
1. **程式碼品質**
1. <strong>程式碼品質</strong>
- 在受影響專案目錄執行 `npm run lint`
- 修正所有 lint 錯誤警告
- 修正所有 lint 錯誤警告
2. **建置驗證**
2. <strong>建構驗證</strong>
- 執行 `npm run build`(若適用)
- 確保無建錯誤
- 確保無建錯誤
3. **連結驗證**
- 測試所有 markdown 連結
- 驗證圖片路徑正確
3. <strong>連結驗證</strong>
- 測試所有 Markdown 連結
- 確認圖片參考可用
4. **內容審核**
- 校對拼字與
- 確認程式碼範例正確且具教育性
- 確翻譯保持原意
4. <strong>內容審查</strong>
- 校對拼字與
- 確認程式碼範例正確且具教學意義
- 確翻譯保持原意
### Contribution Requirements
### 貢獻要求
- 同意 Microsoft CLA首次 PR 自動檢查)
- 遵守 [Microsoft 共用開源行為準則](https://opensource.microsoft.com/codeofconduct/)
- 詳細指南見 [CONTRIBUTING.md](./CONTRIBUTING.md)
- 若有,請在 PR 描述中提及議題編號
- 同意 Microsoft CLA首次 PR 自動檢查)
- 遵從 [Microsoft 開源行為守則](https://opensource.microsoft.com/codeofconduct/)
- 詳細指南見 [CONTRIBUTING.md](./CONTRIBUTING.md)
- PR 描述中引用相關 issue 編號(如適用)
### Review Process
### 審查流程
- PR 由維護者與社群審查
- PR 由維護者及社群共同審查
- 優先考量教育清晰度
- 程式碼範例須符合現行最佳實踐
- 翻譯需審核準確度與文化適應
- 範例程式要遵循當前最佳實務
- 翻譯須審核準確性及文化適切
## Translation System
## 翻譯系統
### Automated Translation
### 自動翻譯
- 使用 GitHub Actions 搭配 co-op-translator 工作流程
- 自動翻譯超過 50 種語言
- 原始檔藏於主目錄
- 翻譯檔藏於 `translations/{語言代碼}/` 目錄
- 使用 GitHub Actions co-op-translator 工作流程
- 自動翻譯成 50 多種語言
- 原文檔案在主目錄
- 翻譯檔案存放於 `translations/{language-code}/` 目錄
### Adding Manual Translation Improvements
### 手動翻譯改進
1. 尋找 `translations/{語言代碼}/` 中的檔案
2. 進行改善,並保持結構完整
3. 確保程式碼範例持續正常
4. 測試任何地化的測驗內容
1. 定位檔案於 `translations/{language-code}/`
2. 在保留結構的情況下進行改進
3. 確保程式碼範例繼續可運作
4. 測試任何地化的測驗內容
### Translation Metadata
### 翻譯元資料
檔包含元資料標頭:
譯檔包含元資料標頭:
```markdown
<!--
CO_OP_TRANSLATOR_METADATA:
@ -289,120 +289,120 @@ CO_OP_TRANSLATOR_METADATA:
-->
```
## Debugging and Troubleshooting
## 除錯與故障排除
### Common Issues
### 常見問題
**Quiz app 啟動失敗**
<strong>測驗應用無法啟動</strong>
- 檢查 Node.js 版本(建議 v14+
- 刪除 `node_modules` `package-lock.json`,重新執行 `npm install`
- 檢查埠衝突(預設 Vite 使用 5173 埠)
- 刪除 `node_modules` `package-lock.json`,重新執行 `npm install`
- 檢查埠衝突(預設 Vite 使用 5173 埠)
**API 伺服器無法啟動**
- 確認 Node.js 版本符合最低要求node >=10
- 確認埠口未被佔
- 確保執行 `npm install` 安裝所有依賴
- 確認 Node.js 版本符合最低要求 (node >=10)
- 檢查埠號是否已被使
- 確認所有依賴已安裝(`npm install`
**瀏覽器擴充套件無法載入**
<strong>瀏覽器擴充功能無法載入</strong>
- 確認 manifest.json 格式正確
- 查看瀏覽器主控台錯誤訊息
- 遵循各瀏覽器特定擴充安裝指引
- 遵循瀏覽器專屬擴充功能安裝指示
**Python 聊天專案問題**
- 確認已安裝 OpenAI 套件:`pip install openai`
- 確認 GITHUB_TOKEN 環境變數已設定
- 檢查 GitHub Models 存取權限
- 檢查 GitHub Models 存取權限
**Docsify 不讀取文件**
- 全安裝 docsify-cli`npm install -g docsify-cli`
- 從庫根目錄執行
- 確認存在 `docs/_sidebar.md`
**Docsify 未提供文件服務**
- 全安裝 docsify-cli`npm install -g docsify-cli`
- 從資源庫根目錄執行
- 確認 `docs/_sidebar.md` 已存在
### Development Environment Tips
### 開發環境提示
- 使用 VS Code 搭配 Live Server 擴充套件開發 HTML 專案
- 安裝 ESLint 和 Prettier 擴充套件維持一致格式
- 使用瀏覽器開發者工具錯 JavaScript
- Vue 專案安裝 Vue DevTools 瀏覽器擴充套件
- 使用 VS Code 及 Live Server 擴充功能瀏覽 HTML 專案
- 安裝 ESLint 與 Prettier 擴充以統一格式
- 使用瀏覽器開發者工具錯 JavaScript
- Vue 專案安裝 Vue DevTools 瀏覽器擴充功能
### Performance Considerations
### 性能考量
- 支援超過 50 種語言的翻譯檔案多,完整克隆檔案較
- 對內容作業者可使用淺層克隆`git clone --depth 1`
- 作英文內容時建議排除翻譯目錄以提升搜尋效率
- 第一次運行建置流程可能較慢npm install、Vite 建置
- 多達 50+ 種語言翻譯檔數量多,完整 clone 體積
- 僅操作內容時可使用淺層 clone`git clone --depth 1`
- 作英文內容時可排除搜尋翻譯檔
- 首次執行建構較慢npm install、Vite build
## Security Considerations
## 安全考量
### Environment Variables
### 環境變數
- API 金鑰絕不可提交至版本
- 使用 `.env` 檔案(已有列`.gitignore`
- 各專案 README 文件說明必須的環境變數
- API 金鑰絕不可提交到資源
- 使用 `.env` 檔案(已`.gitignore`
- 專案 README 有文件說明所需環境變數
### Python Projects
### Python 專案
- 使用虛擬環境:`python -m venv venv`
- 維持依賴
- GitHub token 授權應儘量精簡
- 維持依賴套件更
- GitHub Token 需具最低必要權限
### GitHub Models Access
### GitHub Models 存取
- 使用個人存取權杖PAT作為 GitHub Models 存取憑證
- 權杖應儲存於環境變數中
- 禁止將權杖或憑證提交至版本庫
- 需要個人存取權杖PAT存取 GitHub Models
- 權杖以環境變數儲存
- 絕不可將權杖或憑證提交
## Additional Notes
## 補充說明
### Target Audience
### 目標對象
- 完全初學者的網頁開發學
- 完全的網頁開發學者
- 學生與自學者
- 在課堂使用此課程的教師
- 內容設計兼顧可及性及漸進式技能建立
- 在教室使用此課程的教師
- 內容設計注重無障礙及循序漸進技能建立
### Educational Philosophy
### 教育理念
- 專案導向學習
- 頻繁知識檢核(測驗)
- 專案導向學習
- 頻繁知識檢核(測驗)
- 實作程式練習
- 真實場景應用範例
- 著重基礎優先於框架
- 真實世界應用範例
- 先掌握基礎,再談框架
### Repository Maintenance
### 資源庫維護
- 擁有活躍學習與貢獻社群
- 定期更新依賴與內容
- 維護者監控議題與討論
- 翻譯更新自動化透過 GitHub Actions
- 活躍學習與貢獻社群
- 依賴與內容定期更新
- 維護者監控 issues 與討論
- 使用 GitHub Actions 自動翻譯更新
### Related Resources
### 相關資源
- [Microsoft Learn 模組](https://docs.microsoft.com/learn/)
- [Microsoft Learn 課程模組](https://docs.microsoft.com/learn/)
- [學生中心資源](https://docs.microsoft.com/learn/student-hub/)
- 推薦學習者使用 [GitHub Copilot](https://marketplace.visualstudio.com/items?itemName=GitHub.copilot)
- 其他課程:生成式 AI、資料科學、機器學習、物聯網課程
- 其他課程:生成式 AI、資料科學、機器學習、物聯網課程可用
### Working with Specific Projects
### 操作特定專案
個別專案詳細說明請參考 README
詳細說明請參考以下專案 README
- `quiz-app/README.md` - Vue 3 測驗應用
- `7-bank-project/README.md` - 加入驗證的銀行應用程式
- `5-browser-extension/README.md` - 瀏覽器擴充套件開發
- `7-bank-project/README.md` - 含身份驗證銀行應用
- `5-browser-extension/README.md` - 瀏覽器擴充功能開發
- `6-space-game/README.md` - 基於 Canvas 的遊戲開發
- `9-chat-project/README.md` - AI 聊天助專案
- `9-chat-project/README.md` - AI 聊天助專案
### Monorepo Structure
### Monorepo 架構
雖非典型 monorepo但此資料庫包含多個獨立專案:
- 每堂課自行封裝
- 專案間共用依賴
- 個別專案獨立開發不互相影響
- 想學完完整課程,請 clone 整個倉庫
雖非傳統 monorepo但此資源庫包含多個獨立專案:
- 每堂課程皆自成一格
- 專案間共用依賴
- 可單獨開發專案,不影響其他專案
- 可整體 clone 以體驗完整課程
---
<!-- CO-OP TRANSLATOR DISCLAIMER START -->
**免責聲明**
本文件使用人工智能翻譯服務 [Co-op Translator](https://github.com/Azure/co-op-translator) 進行翻譯。儘管我們致力於提供準確的翻譯,請注意,自動翻譯可能包含錯誤或不準確之處。原始文件以其本地語言版本為最具權威性的資料來源。對於重要資訊,建議採用專業人工翻譯。我們不對因使用本翻譯而引起的任何誤解或誤譯承擔責任
本文件透過 AI 翻譯服務 [Co-op Translator](https://github.com/Azure/co-op-translator) 翻譯。雖然我們致力於保持準確性,但請注意自動翻譯可能包含錯誤或不準確之處。原始文件的母語版本應視為權威來源。對於重要資訊,建議使用專業人類翻譯。對於因使用此翻譯而引起的任何誤解或誤譯,我們概不負責
<!-- CO-OP TRANSLATOR DISCLAIMER END -->

@ -1,7 +1,7 @@
{
"1-getting-started-lessons/1-intro-to-programming-languages/README.md": {
"original_hash": "bec5e35642176d9e483552bfc82996d8",
"translation_date": "2026-03-06T17:53:07+00:00",
"original_hash": "d5eeb6e975b5864d8da52d4a41941f8d",
"translation_date": "2026-03-27T22:37:14+00:00",
"source_file": "1-getting-started-lessons/1-intro-to-programming-languages/README.md",
"language_code": "zh-MO"
},
@ -493,7 +493,7 @@
},
"AGENTS.md": {
"original_hash": "a362efd06d64d4134a0cfe8515a86d34",
"translation_date": "2026-03-06T18:06:28+00:00",
"translation_date": "2026-03-27T22:45:59+00:00",
"source_file": "AGENTS.md",
"language_code": "zh-MO"
},

@ -1,282 +1,282 @@
# AGENTS.md
## Project Overview
## 項目概述
這是一個用於教授初學者網頁開發基礎的教育課程資源庫。課程是一個全面的 12 週課程,由 Microsoft Cloud Advocates 開發,包含 24 個涵蓋 JavaScript、CSS 和 HTML 的實作課程
這是一個教育課程存儲庫旨在向初學者教授網頁開發基礎知識。該課程由微軟雲端推廣者開發為期12週包含24個實作課程涵蓋JavaScript、CSS和HTML
### Key Components
### 主要組件
- **教育內容**24 個依專案模塊組織的結構化課程
- **實作專案**Terrarium、Typing Game、Browser Extension、Space Game、Banking App、Code Editor 和 AI 聊天助理
- **互動小測驗**48 個小測驗每個有3題課程前後評估)
- **多語言支援**:透過 GitHub Actions 自動翻譯超過 50 種語言
- **技術**HTML、CSS、JavaScript、Vue.js 3、Vite、Node.js、Express、Python用於 AI 專案
- <strong>教育內容</strong>24個結構化課程分為基於項目的模組
- <strong>實踐項目</strong>生態瓶、打字遊戲、瀏覽器擴展、太空遊戲、銀行應用、代碼編輯器及AI聊天助理
- <strong>互動測驗</strong>48個測驗每個包含3個問題課前/課後評估)
- <strong>多語言支援</strong>透過GitHub Actions自動翻譯超過50種語言
- <strong>技術棧</strong>HTML、CSS、JavaScript、Vue.js 3、Vite、Node.js、Express、Python用於AI項目
### Architecture
### 架構
- 以課程為基礎結構的教育資源庫
- 每個課程資料夾包含 README、程式碼範例及解答
- 獨立專案位於不同目錄quiz-app、各課程專案
- 使用 GitHub Actionsco-op-translator進行翻譯
- 文件由 Docsify 提供,且有 PDF 格式可用
- 教育存儲庫,採用課程為基礎的結構
- 每個課程資料夾包含README、代碼範例和解決方案
- 獨立項目位於不同目錄quiz-app各種課程項目
- 使用GitHub Actionsco-op-translator進行翻譯系統
- 通過Docsify提供文件服務並可生成PDF版本
## Setup Commands
## 設置命令
此資源庫主要供教育內容瀏覽。使用特定專案時
本存儲庫主要用於教育內容的學習。若需操作特定項目
### Main Repository Setup
### 主存儲庫設置
```bash
git clone https://github.com/microsoft/Web-Dev-For-Beginners.git
cd Web-Dev-For-Beginners
```
### Quiz App Setup (Vue 3 + Vite)
### 測驗應用設置Vue 3 + Vite
```bash
cd quiz-app
npm install
npm run dev # 開始開發伺服器
npm run build # 為生產環境建
npm run dev # 啟動開發伺服器
npm run build # 為生產環境
npm run lint # 執行 ESLint
```
### Bank Project API (Node.js + Express)
### 銀行項目APINode.js + Express
```bash
cd 7-bank-project/api
npm install
npm start # 啟動 API 伺服器
npm run lint # 執行 ESLint
npm run format # 使用 Prettier 格式化
npm run format # 用 Prettier 格式化
```
### Browser Extension Projects
### 瀏覽器擴展項目
```bash
cd 5-browser-extension/solution
npm install
# 按照瀏覽器特定的擴充功能載入指示
# 遵循瀏覽器特定的擴充功能載入指示
```
### Space Game Projects
### 太空遊戲項目
```bash
cd 6-space-game/solution
npm install
# 喺瀏覽器開啟 index.html 或者用 Live Server
# 在瀏覽器中打開 index.html 或使用 Live Server
```
### Chat Project (Python Backend)
### 聊天項目Python後端
```bash
cd 9-chat-project/solution/backend/python
pip install openai
# 設定 GITHUB_TOKEN 環境變量
# 設置 GITHUB_TOKEN 環境變數
python api.py
```
## Development Workflow
## 開發工作流程
### For Content Contributors
### 內容貢獻者
1. **Fork 該資源庫** 到你的 GitHub 帳號
2. **將 fork 克隆** 到本地
3. **建立新分支** 以進行修
4. 修改課程內容或程式碼範例
5. 在相關專案目錄測試程式碼變更
6. 按照貢獻指引提交 pull request
1. <strong>Fork本存儲庫</strong>至您的GitHub帳戶
2. **本地克隆您的 fork**
3. <strong>建立新分支</strong>以進行更
4. 修改課程內容或碼範例
5. 在相關項目目錄中測試代碼更改
6. 按貢獻指南提交拉取請求
### For Learners
### 學習者
1. Fork 或克隆該資源
1. Fork或克隆存儲
2. 按順序瀏覽課程目錄
3. 閱讀每課的 README 文件
4. 在 https://ff-quizzes.netlify.app/web/ 完成課前小測
5. 實作課程資料夾中的程式碼範例
6. 完成作業挑戰
7. 參加課後測驗
3. 閱讀每課程的README檔案
4. 完成課前測驗網址https://ff-quizzes.netlify.app/web/
5. 學習課程中的代碼範例
6. 完成作業挑戰
7. 參加課後測驗
### Live Development
### 實時開發
- **文件**:在根目錄執行 `docsify serve`(預設埠 3000
- **Quiz App**:在 quiz-app 目錄執行 `npm run dev`
- **專案**:使用 VS Code Live Server 外掛服務 HTML 專案
- **API 專案**:在各 API 目錄執`npm start`
- <strong>文件服務</strong>:在根目錄執行 `docsify serve`(端口3000
- <strong>測驗應用</strong>在quiz-app目錄執行 `npm run dev`
- <strong>項目</strong>使用VS Code Live Server擴展提供HTML項目服務
- **API項目**在對應API目錄運`npm start`
## Testing Instructions
## 測試說明
### Quiz App Testing
### 測驗應用測試
```bash
cd quiz-app
npm run lint # 檢查代碼風格問題
npm run build # 驗證構成功
npm run build # 驗證構建是否成功
```
### Bank API Testing
### 銀行API測試
```bash
cd 7-bank-project/api
npm run lint # 檢查程式碼風格問題
node server.js # 驗證伺服器啟動時無錯誤
node server.js # 驗證伺服器無錯誤啟動
```
### General Testing Approach
### 一般測試方法
- 本資源庫為教育用途,無完善的自動化測試
- 手動測試重點
- 程式碼範例能正常執行且無錯誤
- 文件中的連結功能正常
- 專案能成功建置
- 範例編寫遵循最佳實踐
- 本存儲庫為教育用途,無全面自動化測試
- 手動測試專注於
- 代碼範例無錯誤執行
- 文件中的鏈接正常運作
- 項目可成功構建
- 範例遵循最佳實踐
### Pre-submission Checks
### 提交前檢查
- 在有 package.json 的目錄執行 `npm run lint`
- 驗證 markdown 連結有效
- 在瀏覽器或 Node.js 中測試程式碼範例
- 確認翻譯保留正確結構
- 在有package.json的目錄執行 `npm run lint`
- 驗證Markdown鏈接有效性
- 在瀏覽器或Node.js中測試代碼範例
- 確保翻譯結構正確
## Code Style Guidelines
## 代碼風格指引
### JavaScript
- 使用現代 ES6+ 語法
- 遵守專案中提供的標準 ESLint 設定
- 使用有意義的變數及函數名稱,便於教學理解
- 加入說明概念的註解
- 於配置 Prettier 的地方使用自動格式化
- 使用現代ES6+語法
- 遵循項目中標準ESLint配置
- 使用有意義的變量與函數名稱,便於學習理解
- 添加註釋解釋概念給學習者
- 在配置好的地方使用Prettier格式化
### HTML/CSS
- 使用語意化的 HTML5 元素
- 使用語義化HTML5元素
- 採用響應式設計原則
- 清晰的 class 命名規範
- CSS 技術附帶學習解說註解
- 清晰的命名規範
- 添加CSS技巧註釋給學習者
### Python
- 遵循 PEP 8 樣式指引
- 提供清晰且具教育意義的程式碼範例
- 需要時使用型別提示以輔助學習
- 遵循PEP 8風格指導
- 清晰且具教育意義的代碼範例
- 在有助於學習處加上類型提示
### Markdown Documentation
### Markdown 文檔
- 清楚的標題階層結構
- 指定語言的程式碼區塊
- 附加資源連結
- screenshots 與圖片存放於 `images/` 目錄
- 圖片有替代文字以提升無障礙性
- 清晰的標題層級結構
- 帶語言標示的代碼區塊
- 提供附加資源鏈接
- `images/` 目錄中放置截圖與圖片
- 圖片有替代文字以提升無障礙性
### File Organization
### 文件組織
- 課程依序編號1-getting-started-lessons2-js-basics 等)
- 每專案有 `solution/`,通常帶有 `start/``your-work/` 目錄
- 圖片放在課程專用的 `images/` 資料
- 翻譯存放於 `translations/{language-code}/` 結構
- 課程依序編號1-getting-started-lessons2-js-basics 等)
- 每個項目都有 `solution/` 及通常 `start/``your-work/` 目錄
- 圖片置於課程專屬的 `images/` 文件
- 翻譯按照 `translations/{language-code}/` 結構存放
## Build and Deployment
## 編譯與部署
### Quiz App Deployment (Azure Static Web Apps)
### 測驗應用部署Azure 靜態網站)
quiz-app 已配置用於 Azure Static Web Apps 部署:
quiz-app已配置為Azure靜態網站部署:
```bash
cd quiz-app
npm run build # 建立 dist/ 資料夾
# 在推送 main 時透過 GitHub Actions 工作流程部署
# 在推送 main 時透過 GitHub Actions 工作流程部署
```
Azure Static Web Apps 配置:
- **App 位置**`/quiz-app`
- **輸出位置**`dist`
- **Workflow**`.github/workflows/azure-static-web-apps-ashy-river-0debb7803.yml`
Azure 靜態網站配置:
- <strong>應用位置</strong>`/quiz-app`
- <strong>輸出位置</strong>`dist`
- <strong>工作流程</strong>`.github/workflows/azure-static-web-apps-ashy-river-0debb7803.yml`
### Documentation PDF Generation
### 文件PDF生成
```bash
npm install # 安裝 docsify-to-pdf
npm run convert # 從 docs 生成 PDF
```
### Docsify Documentation
### Docsify 文件服務
```bash
npm install -g docsify-cli # 全局安裝 Docsify
docsify serve # 在 localhost:3000 提供服務
```
### Project-specific Builds
### 項目專屬編譯
各專案目錄可能有專屬建置流程:
- Vue 專案:執行 `npm run build` 建立生產版本
- 靜態專案:無建置步驟,直接提供檔案使用
每個項目目錄可能有自己編譯流程:
- Vue項目:使用 `npm run build` 生成生產包
- 靜態項目:無編譯步驟,直接提供文件服務
## Pull Request Guidelines
## 拉取請求指引
### Title Format
### 標題格式
使用清晰且描述性的標題指出變更範圍
- `[Quiz-app] 新增第 X 測`
- `[Lesson-3] 修正 terrarium 專案打字錯誤`
- `[Translation] 新增第 5 課西班牙語翻譯`
使用清晰描述且說明更改範圍的標題
- `[Quiz-app] 新增第X課測`
- `[Lesson-3] 修正生態瓶項目錯字`
- `[Translation] 為第5課新增西班牙語翻譯`
- `[Docs] 更新設置指引`
### Required Checks
### 必須檢查
提交 PR 前須:
提交PR前
1. **程式碼品質**
- 在受影響專案目錄執行 `npm run lint`
- 修正所有 lint 錯誤及警告
1. **代碼品質:**
- 在相關項目目錄執行 `npm run lint`
- 修復所有lint錯誤與警告
2. **驗證**
- 必要時執行 `npm run build`
- 確保無建錯誤
2. **建驗證**
- 如適用執行 `npm run build`
- 確保無建錯誤
3. **連結驗證**
- 測試所有 markdown 連結
- 確認圖片參考正常
3. **鏈接核查:**
- 測試所有Markdown鏈接
- 確認圖片引用有效
4. **內容審查**
- 校對拼字與
- 確認程式碼範例正確且具教育意義
- 確認翻譯保留原意
4. **內容審核:**
- 校對拼字與
- 確保代碼範例正確且有教育意義
- 驗證翻譯準確且保持原意
### Contribution Requirements
### 貢獻要求
- 同意 Microsoft CLA首個 PR 會自動檢查)
- 遵 [Microsoft Open Source Code of Conduct](https://opensource.microsoft.com/codeofconduct/)
- 詳細規則參考 [CONTRIBUTING.md](./CONTRIBUTING.md)
- 如有議題,於 PR 描述中提及編號
- 同意微軟CLA首次PR時自動檢查)
- 遵 [Microsoft Open Source Code of Conduct](https://opensource.microsoft.com/codeofconduct/)
- 詳細指引見 [CONTRIBUTING.md](./CONTRIBUTING.md)
- 在PR描述中引用相關議題編號如適用
### Review Process
### 審核流程
- PR 由維護者及社群審閱
- 優先確保教育清晰度
- 程式碼範例應採用當前最佳實踐
- 翻譯需確保準確性及文化適切性
- PR由維護者與社群共同審核
- 優先保證教育內容清晰易懂
- 代碼範例應遵循現行最佳實踐
- 翻譯審核精確且文化適切
## Translation System
## 翻譯系統
### Automated Translation
### 自動翻譯
- 使用 GitHub Actions co-op-translator 工作流程
- 自動翻譯超過 50 種語言
- 原始文件位於主目錄
- 翻譯檔案位`translations/{language-code}/` 目錄
- 使用GitHub Actions與co-op-translator工作流程
- 自動翻譯超過50種語言
- 文件位於主目錄
- 翻譯文件存`translations/{language-code}/` 目錄
### Adding Manual Translation Improvements
### 添加手動翻譯改進
1. 尋找文件於 `translations/{language-code}/`
2. 在保留結構下進行改進
3. 確保程式碼範例仍可正常運作
4. 測試任何本地化的小測內容
1. `translations/{language-code}/` 找到文件
2. 保持結構進行改進
3. 確保代碼範例功能正常
4. 測試本地化測內容
### Translation Metadata
### 翻譯元資料
翻譯檔含有元資料標頭
翻譯文件包含元資料頭信息
```markdown
<!--
CO_OP_TRANSLATOR_METADATA:
@ -289,120 +289,120 @@ CO_OP_TRANSLATOR_METADATA:
-->
```
## Debugging and Troubleshooting
## 偵錯與故障排除
### Common Issues
### 常見問題
**Quiz app 無法啟動**
- 檢查 Node.js 版本(建議 v14+
- 刪除 `node_modules` `package-lock.json`重新執行 `npm install`
- 檢查埠口衝突(預設 Vite 使用 5173
<strong>測驗應用無法啟動</strong>
- 檢查Node.js版本建議v14+
- 刪除 `node_modules` `package-lock.json`重新執行 `npm install`
- 檢查端口是否衝突預設Vite使用端口5173
**API 伺服器無法啟動**
- 確認 Node.js 版本符合要node >=10
- 確認埠口未被佔用
- 確保依賴透過 `npm install` 安裝完整
**API伺服器無法啟動**
- 確認Node.js版本達到最低需node >=10
- 檢查端口是否已被佔用
- 確保全部依賴已安裝,執行 `npm install`
**瀏覽器擴充功能無法載入**
- 驗證 manifest.json 格式無誤
- 查看瀏覽器控制檯錯誤訊息
- 依瀏覽器指示安裝擴充功能
<strong>瀏覽器擴展無法載入</strong>
- 檢查manifest.json格式正確
- 查看瀏覽器控制台錯誤
- 遵循各瀏覽器擴展安裝說明
**Python 聊天專案問題**
- 確認 OpenAI 套件已安裝`pip install openai`
- GITHUB_TOKEN 環境變量設定
- 確認 GitHub Models 存取權限
**Python聊天項目問題**
- 確認安裝OpenAI套件`pip install openai`
- 檢查GITHUB_TOKEN環境變量設定
- 確保GitHub Models存取權限
**Docsify 無法提供文件**
- 全局安裝 docsify-cli`npm install -g docsify-cli`
- 從資源庫根目錄執行
- 確認 `docs/_sidebar.md` 存在
**Docsify無法提供文件服務**
- 全局安裝docsify-cli`npm install -g docsify-cli`
- 從存儲庫根目錄執行
- 確認存在 `docs/_sidebar.md`
### Development Environment Tips
### 開發環境建議
- HTML 專案使用 VS Code Live Server 外掛
- 安裝 ESLint 與 Prettier 擴充套件保持格式一致
- 使用瀏覽器 DevTools 偵錯 JavaScript
- Vue 專案建議安裝 Vue DevTools 瀏覽器擴充
- 使用帶Live Server擴展的VS Code瀏覽HTML項目
- 安裝ESLint和Prettier擴展保持格式統一
- 使用瀏覽器開發者工具調試JavaScript
- Vue項目建議安裝Vue DevTools瀏覽器擴展
### Performance Considerations
### 性能考量
- 有大量翻譯檔案(超過 50 種語言),完整複製較大
- 僅工作內容時可用淺層複製`git clone --depth 1`
- 編輯英文內容時排除翻譯目錄搜尋
- 建置首次運行可能較慢npm 安裝、Vite 建置)
- 超過50種語言的翻譯文件數量龐大完整克隆體積較大
- 若僅需內容,使用淺克隆`git clone --depth 1`
- 編寫英文內容時排除翻譯目錄搜索
- 初次構建npm install、Vite build可能較慢
## Security Considerations
## 安全考量
### Environment Variables
### 環境變量
- API 金鑰絕不可提交至資源
- 使用 `.env` 檔案(已包含於 `.gitignore`
- 專案 README 記錄必要環境變量
- API密鑰絕不可提交至存儲
- 使用 `.env` 文件(已列入 `.gitignore`
- 在項目README中記錄需要的環境變量
### Python Projects
### Python項目
- 使用虛擬環境:`python -m venv venv`
- 保持依賴更新
- GitHub 令牌應具必要最低權限
- GitHub令牌應具最小必要權限
### GitHub Models Access
### GitHub Models存取
- 使用個人存取權杖 (PAT) 存取 GitHub Models
- 令牌存於環境變量中
- 絕不可將令牌或認證提交至資源庫
- 需要個人訪問令牌PAT
- 將令牌作為環境變量存儲
- 絕不可提交令牌或憑證
## Additional Notes
## 附加說明
### Target Audience
### 目標受眾
- 完全初學者學習網頁開發
- 學生自學者
- 教師在課堂使用此課程
- 內容設計注重無障礙及技能循序漸進
- 初學網頁開發的新人
- 學生自學者
- 課堂使用此課程的教師
- 內容設計符合無障礙及循序漸進的技能培養
### Educational Philosophy
### 教育理念
- 專案導向學習方式
- 頻繁的知識測驗(小測)
- 實編碼練習
- 以真實案例示範應用
- 先打穩基礎再學框架
- 基於項目學習方法
- 透過測驗持續檢驗知識
- 實編碼練習
- 範例具真實應用背景
- 先掌握基礎,再學習框架
### Repository Maintenance
### 存儲庫維護
- 活躍的學習者貢獻者社群
- 定期更新相依元件及內容
- 維護者監控題與討論
- 翻譯更新透過 GitHub Actions 自動化
- 活躍的學習者貢獻者社群
- 定期更新依賴與內容
- 維護者監控題與討論
- 翻譯更新透過GitHub Actions自動化
### Related Resources
### 相關資源
- [Microsoft Learn 模組](https://docs.microsoft.com/learn/)
- [Student Hub 資源](https://docs.microsoft.com/learn/student-hub/)
- 推薦學員使用 [GitHub Copilot](https://marketplace.visualstudio.com/items?itemName=GitHub.copilot)
- 其他課程:生成式 AI、資料科學、機器學習、物聯網課程可用
- [Microsoft Learn模組](https://docs.microsoft.com/learn/)
- [學生中心資源](https://docs.microsoft.com/learn/student-hub/)
- 推薦學習者使用[GitHub Copilot](https://marketplace.visualstudio.com/items?itemName=GitHub.copilot)
- 額外課程生成式AI、數據科學、機器學習、物聯網課程
### Working with Specific Projects
### 專案使用說明
各專案詳細指引見以下 README
- `quiz-app/README.md` - Vue 3測應用
- `7-bank-project/README.md` - 含身分驗證的銀行應用
- `5-browser-extension/README.md` - 瀏覽器擴充功能開發
- `6-space-game/README.md` - Canvas 遊戲開發
- `9-chat-project/README.md` - AI 聊天助理專案
詳細說明請參見個別項目README
- `quiz-app/README.md` - Vue 3測應用
- `7-bank-project/README.md` - 帶身份驗證的銀行應用
- `5-browser-extension/README.md` - 瀏覽器擴開發
- `6-space-game/README.md` - Canvas遊戲開發
- `9-chat-project/README.md` - AI聊天助理項目
### Monorepo Structure
### Monorepo 結構
雖非傳統 monorepo但此資源庫包含多個獨立專案
- 每課單獨成章
- 專案不共用相依套件
- 可單獨作業不影響其它專案
- 想獲得完整課程體驗,請克隆整個資源庫
雖非傳統monorepo該存儲庫包含多個獨立項目
- 每節課皆自成一體
- 項目間不共享依賴
- 單獨作業不影響其他項目
- 克隆整個存儲庫可完整體驗課程內容
---
<!-- CO-OP TRANSLATOR DISCLAIMER START -->
**免責聲明**
本文件係使用人工智能翻譯服務 [Co-op Translator](https://github.com/Azure/co-op-translator) 進行翻譯。儘管我哋致力於確保準確性,但請注意,自動翻譯可能包含錯誤或不準確之處。原始語言版本的文件應被視為權威來源。對於重要信息,建議採用專業人工翻譯。因使用此翻譯而引起的任何誤解或錯誤詮釋,本公司概不負責
本文件經由 AI 翻譯服務 [Co-op Translator](https://github.com/Azure/co-op-translator) 翻譯。雖然我們致力於準確性,但請注意自動翻譯可能包含錯誤或不準確之處。原始文件的母語版本應視為權威來源。針對重要資訊,建議採用專業人工翻譯。我們不對因使用此翻譯而導致的任何誤解或誤譯承擔責任
<!-- CO-OP TRANSLATOR DISCLAIMER END -->

@ -1,7 +1,7 @@
{
"1-getting-started-lessons/1-intro-to-programming-languages/README.md": {
"original_hash": "bec5e35642176d9e483552bfc82996d8",
"translation_date": "2026-03-06T18:05:21+00:00",
"original_hash": "d5eeb6e975b5864d8da52d4a41941f8d",
"translation_date": "2026-03-27T22:44:53+00:00",
"source_file": "1-getting-started-lessons/1-intro-to-programming-languages/README.md",
"language_code": "zh-TW"
},
@ -493,7 +493,7 @@
},
"AGENTS.md": {
"original_hash": "a362efd06d64d4134a0cfe8515a86d34",
"translation_date": "2026-03-06T18:08:50+00:00",
"translation_date": "2026-03-27T22:48:22+00:00",
"source_file": "AGENTS.md",
"language_code": "zh-TW"
},

@ -1,47 +1,47 @@
# AGENTS.md
## 專案概
## 專案概
這是一個針對初學者教授網頁開發基礎的教育課程資源庫。此課程是由 Microsoft Cloud Advocates 所設計的綜合性 12 週課程,包含 24 節實作課程,涵蓋 JavaScript、CSS 與 HTML
這是一個用於教學網頁開發基礎的教育課程資源庫。此課程是一個由 Microsoft Cloud Advocates 開發的全面 12 週課程,包含 24 節涵蓋 JavaScript、CSS 及 HTML 的實作課程
### 主要組成
- **教育內容**24 節結構化課程,按照專案模組組織
- **實際專案**Terrarium、打字遊戲、瀏覽器擴充功能、太空遊戲、銀行應用程式、程式碼編輯器及 AI 聊天助理
- **互動測驗**48 個測驗,每個包含 3 題(課前/課後評量
- **多語言支援**:透過 GitHub Actions 自動翻譯超過 50 種語言
- **技術棧**HTML、CSS、JavaScript、Vue.js 3、Vite、Node.js、Express、PythonAI 專案用)
- <strong>教育內容</strong>24 節結構化課程,依專案模組組織
- <strong>實務專案</strong>:生態瓶、打字遊戲、瀏覽器擴充功能、太空遊戲、銀行應用程式、程式碼編輯器及 AI 聊天助理
- <strong>互動測驗</strong>48 次測驗,每次 3 題(課前/課後評估
- <strong>多語言支援</strong>:透過 GitHub Actions 自動翻譯至 50 多種語言
- <strong>技術堆疊</strong>HTML、CSS、JavaScript、Vue.js 3、Vite、Node.js、Express、PythonAI 專案用)
### 架構
- 教育資源庫,採用以課程為基礎的結構
- 每堂課的資料夾包含 README、程式碼範例與解答
- 獨立專案獨立在不同目錄(如 quiz-app、各課程專案
- 使用 GitHub Actions (co-op-translator) 的翻譯系統
- 使用 Docsify 提供文件服務,並可匯出 PDF
- 以課程為主的教育資源庫結構
- 每個課程資料夾包含 README、程式碼範例與解答
- 獨立專案置於不同目錄(quiz-app、各課程專案
- 使用 GitHub Actionsco-op-translator實現翻譯系統
- 文件透過 Docsify 提供,並可匯出 PDF
## 安裝指令
此資源庫主要用於教育內容瀏覽。若需操作特定專案
此資源庫主要供教育內容學習使用。操作特定專案請參考以下指令
### 主要資源庫安裝
### 主資源庫設定
```bash
git clone https://github.com/microsoft/Web-Dev-For-Beginners.git
cd Web-Dev-For-Beginners
```
### 測驗應用程式安裝Vue 3 + Vite
### 測驗應用程式設定 (Vue 3 + Vite)
```bash
cd quiz-app
npm install
npm run dev # 啟動開發伺服器
npm run build # 為生產環境進行建置
npm run build # 建置生產環境
npm run lint # 執行 ESLint
```
### 銀行專案 APINode.js + Express
### 銀行專案 API (Node.js + Express)
```bash
cd 7-bank-project/api
@ -56,7 +56,7 @@ npm run format # 使用 Prettier 格式化
```bash
cd 5-browser-extension/solution
npm install
# 遵循瀏覽器特定的擴充功能載入指示
# 請遵循特定瀏覽器的擴充功能載入說明
```
### 太空遊戲專案
@ -67,7 +67,7 @@ npm install
# 在瀏覽器中打開 index.html 或使用 Live Server
```
### 聊天專案Python 後端)
### 聊天專案 (Python 後端)
```bash
cd 9-chat-project/solution/backend/python
@ -76,35 +76,35 @@ pip install openai
python api.py
```
## 開發流程
## 開發工作流程
### 內容貢獻者
### 內容貢獻者
1. **將資源庫 fork** 至您的 GitHub 帳號
2. **在本機 clone 您的 fork**
3. **建立新分支** 進行修改
4. 對課程內容或程式碼範例進行修改
5. 在相關專案目錄測試程式碼變更
6. 按照貢獻指南提交 pull request
1. **Fork 本資源庫** 到你的 GitHub 帳號
2. **Clone 你的 fork** 至本機端
3. <strong>建立新分支</strong> 用來變更程式碼
4. 修改課程內容或程式範例
5. 在相關專案目錄測試程式碼變更
6. 依貢獻指南提交 pull requests
### 學習者
### 學習者
1. Fork 或 clone 資源庫
2. 依序瀏覽課程目錄
3. 閱讀各課程 README
4. 完成課前測驗網址https://ff-quizzes.netlify.app/web/
5. 練習課程資料夾中的程式碼範例
1. Fork 或 clone 資源庫
2. 依序進入各課程目錄
3. 閱讀各課程 README 文件
4. 完成 https://ff-quizzes.netlify.app/web/ 上的課前測驗
5. 實作課程資料夾內的程式碼範例
6. 完成作業與挑戰
7. 進行課後測驗
### 現場開發
### 線上開發
- **文件**:於專案根目錄執行 `docsify serve` (監聽 3000 埠)
- **測驗應用程式**:於 quiz-app 目錄執行 `npm run dev`
- **專案**:對 HTML 專案使用 VS Code Live Server 擴充功能
- **API 專案**:於應 API 目錄執行 `npm start`
- <strong>文件</strong>:於根目錄執行 `docsify serve`(預設埠號 3000
- <strong>測驗應用程式</strong>:於 quiz-app 目錄執行 `npm run dev`
- <strong>專案</strong>:以 VS Code Live Server 外掛提供 HTML 專案即時伺服
- **API 專案**:於應 API 目錄執行 `npm start`
## 測試說明
## 測試指令
### 測驗應用程式測試
@ -119,81 +119,81 @@ npm run build # 驗證建置是否成功
```bash
cd 7-bank-project/api
npm run lint # 檢查程式碼風格問題
node server.js # 確認伺服器啟動時無錯誤
node server.js # 驗證伺服器啟動時無錯誤
```
### 一般測試方
### 一般測試方
- 本資源庫為教育用途,未包含全面自動化測試
- 主要手動測試聚焦於
- 程式碼範例正確執行無
- 文件中的連結正常
- 專案建構成功
- 本為教育資源庫,未完善自動化測試
- 手動測試重點
- 程式碼範例可正常執行且無錯
- 文件連結正確無誤
- 專案可成功建置
- 範例遵循最佳實務
### 提交前檢查
- 含 package.json 目錄執行 `npm run lint`
- 確認 markdown 連結有效
- 在瀏覽器或 Node.js 測試程式碼範例
- 確保翻譯保留正確結構
- 含 package.json 目錄執行 `npm run lint`
- 驗證 markdown 連結有效
- 在瀏覽器或 Node.js 測試程式碼範例
- 確認翻譯文件結構無誤
## 程式碼風格指南
### JavaScript
- 用現代 ES6+ 語法
- 遵循專案提供的標準 ESLint 設定
- 使用具意義的變數與函式名稱以便教學說明
- 加入註解解釋概念
- 於有配置處使用 Prettier 格式化
- 使用現代 ES6+ 語法
- 遵循專案提供的 ESLint 標準設定
- 變數與函式命名具教育意義
- 加註解說明概念方便學習者理解
- 在有設定的地方使用 Prettier 格式化
### HTML/CSS
- 使用語義化 HTML5 元素
- 採用響應式設計原則
- 清晰的類別命名約定
- 加入註解解釋 CSS 技巧以便學習
- 用語義化 HTML5 元素
- 響應式設計原則
- 清晰的 class 命名規範
- CSS 技巧的註解說明供學習用途
### Python
- 遵循 PEP 8 風格指南
- 清楚且具教育意義的程式碼範例
- 在有助於理解的地方加入型別提示
- 清楚、具教學意義的程式範例
- 需要時提供型別提示以利學習
### Markdown 文件
- 清晰的標題階層
- 具語言標示的程式碼區塊
- 附加資源
- 包含截圖與位於 `images/` 目錄的圖片
- 圖片具備輔助功能的替代文字
- 指定語言的程式碼區塊
- 附加資源超鏈
- 圖片置於 `images/` 資料夾
- 圖片附有替代文字方便無障礙
### 檔案組織
- 課程依序編號(如 1-getting-started-lessons、2-js-basics 等)
- 各專案含有 `solution/`,常見有 `start/``your-work/` 目錄
- 圖片儲存在課程專屬的 `images/` 資料夾
- 翻譯依照 `translations/{language-code}/` 結構儲存
- 課程以序號編排(1-getting-started-lessons、2-js-basics 等)
- 每個專案含 `solution/`,且常見 `start/``your-work/` 目錄
- 圖片放置於課程專屬 `images/` 資料夾
- 翻譯文件依 `translations/{language-code}/` 結構管理
## 建置與部署
### 測驗應用程式部署Azure 靜態網頁應用)
### 測驗應用程式部署 (Azure 靜態網頁應用)
quiz-app 已配置可用於 Azure 靜態網頁應用部署:
quiz-app 已設定用於 Azure 靜態網頁應用部署:
```bash
cd quiz-app
npm run build # 建立 dist/ 資料夾
# 在推送至 main 時透過 GitHub Actions 工作流程部署
# 在推送至 main 時透過 GitHub Actions 工作流程進行部署
```
Azure 靜態網頁應用配置:
- **App 位置**`/quiz-app`
- **輸出位置**`dist`
- **工作流程**`.github/workflows/azure-static-web-apps-ashy-river-0debb7803.yml`
- <strong>應用程式位置</strong>`/quiz-app`
- <strong>輸出位置</strong>`dist`
- <strong>工作流程</strong>`.github/workflows/azure-static-web-apps-ashy-river-0debb7803.yml`
### 文件 PDF 生
### 文件 PDF
```bash
npm install # 安裝 docsify-to-pdf
@ -204,79 +204,79 @@ npm run convert # 從 docs 生成 PDF
```bash
npm install -g docsify-cli # 全域安裝 Docsify
docsify serve # 在 localhost:3000 提供服務
docsify serve # 在 localhost:3000 提供服務
```
### 專案特定建置
### 專案建置
各專案目錄可能有自己的建置流程:
- Vue 專案:使用 `npm run build` 製作生產用包
- 靜態專案:無建置步驟,直接提供檔案服
- Vue 專案:執行 `npm run build` 產生正式套件
- 靜態專案:無建置,直接提供檔案
## Pull Request 指
## Pull Request 指
### 標題格式
使用明確且描述性的標題指出變更範圍
使用清楚的描述標題,表明更動領域
- `[Quiz-app] 新增第 X 課測驗`
- `[Lesson-3] 修正 terrarium 專案錯字`
- `[Lesson-3] 修正生態瓶專案錯字`
- `[Translation] 新增第 5 課西班牙語翻譯`
- `[Docs] 更新安裝說明`
- `[Docs] 更新安裝指引`
### 必要檢查
提交 PR 前:
1. **程式碼品質**
1. <strong>程式碼品質</strong>
- 在受影響專案目錄執行 `npm run lint`
- 修正所有 lint 錯誤與警告
- 修正所有 lint 警告與錯誤
2. **建置驗證**
- 如適用,執行 `npm run build`
2. <strong>建置驗證</strong>
- 如需要執行 `npm run build`
- 確認無建置錯誤
3. **連結驗證**
3. <strong>連結驗證</strong>
- 測試所有 markdown 連結
- 確認圖片引用正常
- 確認圖片路徑正確
4. **內容校對**
- 文稿拼寫與文法檢查
- 確認程式碼範例正確且具教育意義
- 驗證翻譯保原意
4. <strong>內容審查</strong>
- 校對拼寫與語法
- 確認程式碼範例正確且具教學性
- 驗證翻譯保原意
### 貢獻要求
- 同意 Microsoft CLA首次 PR 進行自動檢查)
- 遵循 [Microsoft Open Source Code of Conduct](https://opensource.microsoft.com/codeofconduct/)
- 詳細指南見 [CONTRIBUTING.md](./CONTRIBUTING.md)
- 如適用,於 PR 描述中參考 issue 編號
- 同意 Microsoft CLA首次 PR 自動檢查)
- 遵守 [Microsoft 開源行為守則](https://opensource.microsoft.com/codeofconduct/)
- 詳細規範見 [CONTRIBUTING.md](./CONTRIBUTING.md)
- PR 描述中註明議題編號(如有)
### 審查流程
- PR 由維護者與社群審查
- 優先考量教育清晰度
- 程式碼範例應遵循最新最佳實踐
- 翻譯檢視準確度與文化適當
- 由維護者與社群進行審查
- 強調教育清晰度
- 程式碼範例遵循最佳實務
- 翻譯審查正確性與文化適切
## 翻譯系統
### 自動翻譯
- 使用 GitHub Actions 且採 co-op-translator 工作流程
- 自動翻譯超過 50 種語言
- 原始檔案在主要目錄
- 翻譯檔案儲存在 `translations/{language-code}/`
- 使用 GitHub Actions co-op-translator 工作流程
- 自動翻譯成 50 多種語言
- 原始文件位於主目錄
- 翻譯文件置於 `translations/{language-code}/` 目錄
### 新增人工翻譯改進
### 手動翻譯改進
1. 找出 `translations/{language-code}/` 中的檔案
2. 進行改進時維持結構不變
3. 確保程式碼範例能正常運作
4. 測試本地化測驗內容
1. 找出 `translations/{language-code}/` 內對應檔案
2. 在保持結構不變下進行改良
3. 確保程式範例仍能正常執行
4. 測試本地化測驗內容
### 翻譯元數據
### 翻譯元資料
翻譯檔包含如下元資料標頭:
翻譯文件內含元資料標頭:
```markdown
<!--
CO_OP_TRANSLATOR_METADATA:
@ -289,120 +289,120 @@ CO_OP_TRANSLATOR_METADATA:
-->
```
## 偵錯與問題排解
## 除錯與疑難排解
### 常見問題
**測驗應用程式無法啟動**
- 檢查 Node.js 版本(建議最低 v14
- 刪除 `node_modules` `package-lock.json`重新執行 `npm install`
- 檢查埠號衝突(預設 Vite 使用埠 5173
<strong>測驗應用程式無法啟動</strong>
- 檢查 Node.js 版本(建議 v14 以上
- 刪除 `node_modules` `package-lock.json`重新執行 `npm install`
- 確認埠號無衝突Vite 預設使用 5173
**API 伺服器無法啟動**
- 確認 Node.js 版本符合最低要node >=10
- 確認埠號未被占
- 確保所有依賴安裝(`npm install`
- 確認 Node.js 版本符合node >=10
- 檢查埠號是否已使
- 確保所有依賴安裝完整npm install
**瀏覽器擴充無法載入**
- 確認 manifest.json 格式正確
- 查瀏覽器控台錯誤訊息
- 遵循瀏覽器特定擴充安裝說明
<strong>瀏覽器擴充功能載入失敗</strong>
- 驗證 manifest.json 格式正確
- 查瀏覽器控台錯誤訊息
- 遵循瀏覽器擴充功能安裝指引
**Python 聊天專案問題**
- 確認已安裝 OpenAI 套件:`pip install openai`
- 確認已設定 GITHUB_TOKEN 環境變數
- 檢查 GitHub Models 存取權限
- 設定 GITHUB_TOKEN 環境變數
- 確認 GitHub Models 存取權限
**Docsify 無法提供文件**
- 全域安裝 docsify-cli`npm install -g docsify-cli`
- 資源庫根目錄執行
- 確認存在 `docs/_sidebar.md`
- 資源庫根目錄執行
- 確認 `docs/_sidebar.md` 存在
### 開發環境建議
### 開發環境小技巧
- HTML 專案使用 VS Code Live Server 擴充
- 安裝 ESLint 與 Prettier 擴充以維持格式一致
- 使用瀏覽器開發工具偵錯 JavaScript
- Vue 專案可安裝 Vue DevTools 瀏覽器擴充
- 使用 VS Code 及 Live Server 外掛以支援 HTML 專案即時預覽
- 安裝 ESLint 與 Prettier 外掛以保持程式碼風格一致
- 利用瀏覽器開發工具除錯 JavaScript
- Vue 專案則安裝 Vue DevTools 瀏覽器外掛
### 效能考量
- 翻譯檔案眾多(超過 50 種語言),完整 clone 會很
- 僅需內容時建議使用淺層 clone`git clone --depth 1`
- 使用中英文內容時,建議排除翻譯檔案搜尋
- 初次執行可能建置緩慢npm install、Vite 建置
- 多達 50 多種語言翻譯檔案,完整 clone 容量
- 僅作內容開發時可淺層 clone`git clone --depth 1`
- 英文內容開發時排除翻譯目錄查詢
- 第一次執行建置流程較慢npm install、Vite build
## 安全考量
### 環境變數
- API 金鑰絕不可被提交至資源庫
- 使用 `.env` 檔案(已`.gitignore` 中忽略
- 專案 README 中記錄必要環境變數
- API 金鑰嚴禁提交至資源庫
- 使用 `.env` 檔案(已列入 `.gitignore`
- 各專案 README 中記錄必須環境變數
### Python 專案
- 使用虛擬環境:`python -m venv venv`
- 保持依賴
- GitHub token 需設置最低必要權限
- 建議使用虛擬環境:`python -m venv venv`
- 保持依賴套件最
- GitHub 令牌應設權限最小化
### GitHub Models 存取
- 需使用個人存取權杖 (PAT)
- 權杖應存放於環境變數
- 絕不可提交權杖或憑證
- 需使用個人存取代幣 (PAT)
- 令牌存放於環境變數中
- 切勿提交令牌或認證資料
## 附加說明
## 其他備註
### 目標族群
### 目標對象
- 網頁開發完全初學
- 學生自學者
- 教室中使用本課程的教師
- 內容設計注重無障礙與技能漸進培養
- 完全沒有網頁開發經驗
- 學生自學者
- 教師在課堂上使用此課程
- 內容設計兼顧無障礙及逐步技能養成
### 教理念
### 教理念
- 以專案為基礎的學習方式
- 常態性的知識檢測(測驗)
- 實作編碼練習
- 強調實務應用範例
- 先學習基礎原理,再接觸框架
- 專案導向學習
- 經常性知識檢核(測驗)
- 著重動手寫程式練習
- 應用真實範例
- 先建立基礎,再進入框架應用
### 資源庫維護
- 學習者與貢獻者活躍社群
- 定期更新依賴與內容
- 維護者監控議題與討論
- 使用 GitHub Actions 自動化翻譯更新
- 積極活躍的學習社群與貢獻者
- 定期更新套件與內容
- 維護者持續追蹤議題與討論
- 翻譯更新由 GitHub Actions 自動化
### 相關資源
- [Microsoft Learn 模組](https://docs.microsoft.com/learn/)
- [學生中心資源](https://docs.microsoft.com/learn/student-hub/)
- 推薦學習使用 [GitHub Copilot](https://marketplace.visualstudio.com/items?itemName=GitHub.copilot)
- 附加課程:生成式 AI、資料科學、機器學習、物聯網課程內容
- 建議學習者使用 [GitHub Copilot](https://marketplace.visualstudio.com/items?itemName=GitHub.copilot)
- 其他課程:生成式 AI、資料科學、機器學習、物聯網課程可用
### 個別專案操作
### 操作特定專案說明
關於各專案詳細說明請參考對應 README
- `quiz-app/README.md` Vue 3 測驗應用
- `7-bank-project/README.md` — 銀行應用含認證功能
- `5-browser-extension/README.md` 瀏覽器擴充功能開發
- `6-space-game/README.md` — Canvas 太空遊戲開發
- `9-chat-project/README.md` AI 聊天助理專案
詳細操作說明請參考以下專案 README
- `quiz-app/README.md` - Vue 3 測驗應用
- `7-bank-project/README.md` - 含身分驗證的銀行應用
- `5-browser-extension/README.md` - 瀏覽器擴充功能開發
- `6-space-game/README.md` - Canvas 遊戲開發
- `9-chat-project/README.md` - AI 聊天助理專案
### Monorepo 結構
### 單一資源庫結構
本資源庫非傳統 monorepo但包含多個獨立專案
- 每堂課自成一格
- 專案不共用依賴
- 可獨作業不影響他專案
- 想完整體驗這門課請 clone 整個資源庫
本資源庫非傳統 monorepo但包含多個獨立專案
- 各課程單元彼此獨立
- 專案不共用依賴
- 可獨作業不影響他專案
- 完整課程體驗建議 clone 全部資源
---
<!-- CO-OP TRANSLATOR DISCLAIMER START -->
**免責聲明**
本文件使用 AI 翻譯服務 [Co-op Translator](https://github.com/Azure/co-op-translator) 進行翻譯。雖然我們力求準確,但請注意自動翻譯可能包含錯誤或不精確之處。原始文件的母語版本應被視為權威資料來源。對於重要資訊,建議採用專業人工翻譯。我們不對因使用本翻譯而產生的任何誤解或誤譯負責。
**免責聲明**
本文件由 AI 翻譯服務 [Co-op Translator](https://github.com/Azure/co-op-translator) 翻譯而成。雖然我們致力於準確性,但請注意自動翻譯可能包含錯誤或不準確之處。原始文件的原文版本應視為權威來源。對於重要資訊,建議採用專業人工翻譯。我們不對因使用本翻譯而產生的任何誤解或誤譯負責。
<!-- CO-OP TRANSLATOR DISCLAIMER END -->
Loading…
Cancel
Save