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

pull/1793/head
localizeflow[bot] 2 weeks ago
parent 2fae1b526d
commit baec918c5c

@ -493,7 +493,7 @@
},
"AGENTS.md": {
"original_hash": "a362efd06d64d4134a0cfe8515a86d34",
"translation_date": "2026-04-06T16:03:06+00:00",
"translation_date": "2026-04-20T16:59:47+00:00",
"source_file": "AGENTS.md",
"language_code": "zh-HK"
},

@ -2,27 +2,27 @@
## Project Overview
這是一個用於教授初學者網頁開發基礎的教育課程儲存庫。該課程是一個由 Microsoft Cloud Advocates 開發的全面 12 週課程,包括 24 個涵蓋 JavaScript、CSS 和 HTML 的實作課程
這是一個教育課程資源庫,旨在教導初學者網頁開發基礎。該課程由 Microsoft Cloud Advocates 開發為期12週包含24個實作課程涵蓋 JavaScript、CSS 及 HTML
### Key Components
- <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 專案
- <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、各課程專案)
- 教育資源庫,採課程結構
- 每個課程資料夾包含 README、範例程式碼及解答
- 獨立專案存於不同目錄quiz-app、多個課程專案)
- 使用 GitHub Actions (co-op-translator) 的翻譯系統
- 文件透過 Docsify 提供並有 PDF 格式
- 文件由 Docsify 提供,並以 PDF 形式可用
## Setup Commands
此儲存庫主要用於教育內容消費。若要操作特定專案:
本資源庫主要用於教育內容瀏覽。若要操作特定專案:
### Main Repository Setup
@ -56,7 +56,7 @@ npm run format # 使用 Prettier 格式化
```bash
cd 5-browser-extension/solution
npm install
# 遵循瀏覽器專用的擴充功能加載指示
# 遵循瀏覽器特定的擴充功能載入指示
```
### Space Game Projects
@ -72,7 +72,7 @@ npm install
```bash
cd 9-chat-project/solution/backend/python
pip install openai
# 設定 GITHUB_TOKEN 環境變
# 設定 GITHUB_TOKEN 環境變
python api.py
```
@ -80,29 +80,29 @@ python api.py
### For Content Contributors
1. **Fork 儲存庫** 至您的 GitHub 帳號
2. **本地複製您的 fork**
3. <strong>建立新分支</strong> 以進行修改
1. <strong>派生資源庫</strong>至您的 GitHub 帳號
2. <strong>將派生版本複製clone</strong>到本機
3. <strong>為變更建立新分支</strong>
4. 修改課程內容或程式碼範例
5. 在相關專案資料夾測試程式碼變更
6. 按照貢獻指南提交 pull requests
6. 依照貢獻指引提交 pull request
### For Learners
1. Fork 或複製儲存
2. 依序導覽各課程目錄
3. 閱讀每課程的 README 檔案
4. 完成 https://ff-quizzes.netlify.app/web/ 中的課前測驗
5. 練習課程資料夾中的程式範例
6. 完成作業挑戰
7. 進行課後測驗
1. 派生或複製資源
2. 依序瀏覽課程資料夾
3. 閱讀每個課程的 README 文件
4. 完成課前測驗 https://ff-quizzes.netlify.app/web/
5. 練習課堂範例程式碼
6. 完成作業挑戰
7. 參加課後測驗
### Live Development
- <strong>文件</strong>在根目錄執行 `docsify serve` (預設埠 3000)
- <strong>測驗應用程式</strong>:在 quiz-app 目錄執行 `npm run dev`
- <strong>專案</strong>:使用 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
@ -111,32 +111,32 @@ python api.py
```bash
cd quiz-app
npm run lint # 檢查代碼風格問題
npm run build # 驗證構建是否成功
npm run build # 驗證構建成功
```
### Bank API Testing
```bash
cd 7-bank-project/api
npm run lint # 檢查碼風格問題
node server.js # 驗證服務器啟動時無錯誤
npm run lint # 檢查程式碼風格問題
node server.js # 驗證伺服器能否無錯誤啟動
```
### General Testing Approach
- 這是教育儲存庫,沒有完整自動化測試
- 本教育資源庫未包含全面的自動測試
- 手動測試重點:
- 程式碼範例可順利執行
- 文件內連結功能正常
- 專案建置成功
- 範例遵循最佳實務
- 範例程式碼無錯誤執行
- 文件中的連結均正常
- 專案能成功編譯與建置
- 範例符合最佳實踐
### Pre-submission Checks
- 在有 package.json 的目錄執行 `npm run lint`
- 在有 package.json 的目錄執行 `npm run lint`
- 驗證 Markdown 連結有效
- 瀏覽器或 Node.js 測試程式範例
- 確認翻譯保持正確結構
- 瀏覽器或 Node.js 測試範例程式碼
- 確認翻譯結構維持正確
## Code Style Guidelines
@ -144,48 +144,48 @@ node server.js # 驗證服務器啟動時無錯誤
- 使用現代 ES6+ 語法
- 遵循專案中提供的標準 ESLint 設定
- 使用有意義的變數與函數名稱以利教育理解
- 添加解說概念的註解給學習者
- 在有設定的地方使用 Prettier 格式化
- 使用明確的變數與函式命名,利於教學理解
- 添加解說概念的註解
- 於配置的情況下使用 Prettier 格式化
### HTML/CSS
- 使用語化 HTML5 元素
- 採用響應式設計原則
- 清晰的 class 命名規則
- 註解說明 CSS 技術給學習者
- 使用語化 HTML5 元素
- 響應式設計原則
- 清晰的類別命名規則
- 為教學目的解釋 CSS 技巧的註解
### Python
- 遵循 PEP 8 樣式指南
- 清晰且有教育意義的程式範例
- 在有助學習的地方使用型別提示
- 遵守 PEP 8 編碼風格指南
- 清晰且具教育意義的範例程式碼
- 於有助於學習處使用型別提示
### Markdown Documentation
- 明確的標題階層
- 具語言宣告的程式碼區塊
- 連結到補充資源
- `images/` 目錄包含截圖與圖片
- 圖片包含無障礙的替代文字
- 清晰的標題層級
- 語言指定的程式碼區塊
- 連結至額外資源
- `images/` 目錄內的截圖與圖片
- 圖片需有替代文字以利無障礙
### File Organization
- 課程依序編號1-getting-started-lessons、2-js-basics 等)
- 每個專案`solution/`,通常`start/``your-work/` 目錄
- 圖片儲存在特定課程`images/` 資料夾
- 翻譯`translations/{language-code}/` 結構中
- 每個專案`solution/`,通常也`start/``your-work/` 目錄
- 圖片存放於各課程專屬`images/` 資料夾
- 翻譯存於 `translations/{language-code}/` 結構下
## Build and Deployment
### Quiz App Deployment (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 配置:
@ -203,80 +203,80 @@ npm run convert # 從 docs 生成 PDF
### Docsify Documentation
```bash
npm install -g docsify-cli # 全安裝 Docsify
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] 修正溫室生態箱專案錯字`
- `[Translation] 新增第 5 課西班牙語翻譯`
- `[Docs] 更新設置說明`
使用清晰、有描述性的標題以指明變更範圍
- `[Quiz-app] 新增第X課測驗`
- `[Lesson-3] 修正溫室專案錯字`
- `[Translation] 新增第5課的西班牙文翻譯`
- `[Docs] 更新設定指引`
### Required Checks
提交 PR 前:
1. <strong>程式碼品質</strong>
- 在受影響的專案目錄執行 `npm run lint`
- 修復所有錯誤與警告
- 在受影響的專案資料夾執行 `npm run lint`
- 修正所有 lint 錯誤及警告
2. <strong>建置驗證</strong>
- 如適用執行 `npm run build`
- 確無建置錯誤
- 執行 `npm run build`(如適用)
- 確無建置錯誤
3. <strong>連結檢查</strong>
3. <strong>連結驗證</strong>
- 測試所有 Markdown 連結
- 確認圖片引用正確
- 確認圖片參照正常
4. <strong>內容審核</strong>
- 校對拼字與文法
- 確保程式範例正確且具教育意義
- 確認翻譯保持原意
- 確保程式範例正確且具教育意義
- 驗證翻譯保持原意
### Contribution Requirements
- 同意 Microsoft CLA次 PR 有自動檢查)
- 遵守 [Microsoft 開源行為則](https://opensource.microsoft.com/codeofconduct/)
- 參考 [CONTRIBUTING.md](./CONTRIBUTING.md) 詳細指引
- 如適用,在 PR 描述中引用 Issue 編號
- 同意 Microsoft CLA個 PR 自動檢查)
- 遵守 [Microsoft 開源行為則](https://opensource.microsoft.com/codeofconduct/)
- 詳細指引請參閱 [CONTRIBUTING.md](./CONTRIBUTING.md)
- 如適用於 Issue請於 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
翻譯檔案包含 metadata 標頭:
翻譯檔含有元數據標頭:
```markdown
<!--
CO_OP_TRANSLATOR_METADATA:
@ -293,116 +293,116 @@ CO_OP_TRANSLATOR_METADATA:
### 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_TOKEN 環境變數設定正確
- 檢查 GitHub Models 存取權限
**Docsify 不能提供文件服務**
**Docsify 文件無法啟動**
- 全域安裝 docsify-cli`npm install -g docsify-cli`
- 從儲存庫根目錄執行
- 確認 `docs/_sidebar.md` 存在
- 於資源庫根目錄執行
- 檢查 `docs/_sidebar.md` 是否存在
### Development Environment Tips
- 使用 VS Code 並安裝 Live Server 外掛來服務 HTML 專案
- 安裝 ESLint 與 Prettier 擴充以保持格式一致
- 使用瀏覽器 DevTools 除錯 JavaScript
- Vue 專案安裝 Vue DevTools 瀏覽器擴充
- 使用 VS Code 的 Live Server 擴充功能開發 HTML 專案
- 安裝 ESLint 和 Prettier 擴充套件以統一格式
- 使用瀏覽器開發者工具除錯 JavaScript
- Vue 專案安裝 Vue DevTools 瀏覽器擴充功能
### Performance Considerations
- 大量翻譯檔案50+ 語言),完整 clone 容量龐大
- 若僅處理內容,使用淺層 clone`git clone --depth 1`
- 工作英文內容時,排除翻譯目錄搜尋
- 第一次運行建置可能較慢npm install、Vite build
- 大量翻譯檔案50多種語言)使完整克隆檔案龐大
- 僅工作於內容時,可使用淺層克隆`git clone --depth 1`
- 處理英文內容時,建議排除翻譯資料夾搜尋
- 第一次建置流程npm install、Vite build可能較慢
## Security Considerations
### Environment Variables
- API 金鑰絕不可提交到儲存
- 使用 `.env` 檔(已加 `.gitignore`
- 在專案 README 文件中記錄所需環境變數
- API 金鑰切勿提交至資源
- 使用 `.env` 檔(已加 `.gitignore`
- 在專案 README 文件中說明必須的環境變數
### Python Projects
- 使用虛擬環境:`python -m venv venv`
- 維持依套件更新
- GitHub 令牌需具最小必要權限
- 維持依套件更新
- GitHub Token 需限權限為最小必須
### GitHub Models Access
- 使用個人存取權杖 (PAT) 存取 GitHub Models
- 將令牌存於環境變數
- 絕不可提交令牌或認證資料
- 需要個人存取權杖PAT
- 令牌應存為環境變數
- 切勿提交令牌或認證資訊
## Additional Notes
### Target Audience
- 完全沒有經驗的網頁開發入門者
- 學生自學者
- 在課堂使用本課程的教師
- 內容設計考量無障礙與逐步技能培養
- 完全初學者的網頁開發
- 學生自學者
- 教師於課堂中使用本課綱
- 內容設計符合無障礙及循序漸進學習
### Educational Philosophy
- 採用專案導向學習方法
- 頻繁知識檢(測驗)
- 實作程式練習
- 真實世界應用範例
- 先打好基礎再談框架
- 專案導向學習
- 頻繁知識檢(測驗)
- 動手練習程式碼實作
- 實務應用範例
- 強調基礎而非框架
### Repository Maintenance
- 積極活躍的學習與貢獻社群
- 定期更新相依套件與內容
- 維護者監控 Issues 與討論
- 翻譯更新由 GitHub Actions 自動化
- 積極的學習與貢獻社群
- 定期更新依賴與內容
- 維護者監控議題與討論
- 翻譯更新自動化由 GitHub Actions 管理
### Related Resources
- [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、資料科學、機器學習、物聯網課程
- [學生資源中心](https://docs.microsoft.com/learn/student-hub/)
- 推薦使用 [GitHub Copilot](https://marketplace.visualstudio.com/items?itemName=GitHub.copilot)
- 其課程:生成式 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 聊天助理專案
### Monorepo Structure
雖非傳統 monorepo本儲存庫包含多個獨立專案:
- 每個課程自包含
- 專案彼此不共享相依
- 專注個別專案開發不影響其他專案
- 全部課程體驗可複製整個儲存庫
本資源庫非典型 monorepo包含多個獨立專案:
- 各課程各自獨立
- 專案間不共用相依
- 可獨立作業不影響其他專案
- 克隆完整資源庫以取得全套課程體驗
---
<!-- 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 -->

@ -493,7 +493,7 @@
},
"AGENTS.md": {
"original_hash": "a362efd06d64d4134a0cfe8515a86d34",
"translation_date": "2026-04-06T16:01:53+00:00",
"translation_date": "2026-04-20T16:58:49+00:00",
"source_file": "AGENTS.md",
"language_code": "zh-MO"
},

@ -1,78 +1,78 @@
# AGENTS.md
## 項目概覽
## 專案概覽
這是一個用於教導初學者網頁開發基礎的教育課程庫。該課程為一個由 Microsoft Cloud Advocates 開發的全面12週課程包含24個涵蓋 JavaScript、CSS 和 HTML 的實作課程
這是一個用於教導初學者網頁開發基礎的教育課程資源庫。該課程為 Microsoft 雲端倡導者開發的全面 12 週課程,包含 24 個實作課程,涵蓋 JavaScript、CSS 及 HTML
### 主要組成部分
- <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 項目用
- <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 專案
### 架構
- 以課程為基礎結構的教學倉庫
- 各課程資料夾包含 README、程式碼範例及解決方案
- 獨立項目位於不同目錄quiz-app、各種課程項目
- 使用 GitHub Actions 的翻譯系統co-op-translator
- 文件以 Docsify 提供,亦可下載 PDF
- 以課程為基礎的教育資源庫結構
- 每個課程資料夾包含 README、程式碼範例與解答
- 獨立專案分別放在不同目錄quiz-app、各種課程專案
- 採用 GitHub Actions 實現的翻譯系統co-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 dev # 啟動開發伺服器
npm run build # 建置生產版本
npm run lint # 執行 ESLint
```
### 銀行項目 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 格式化
```
### 瀏覽器擴充功能項目
### 瀏覽器擴充功能專案
```bash
cd 5-browser-extension/solution
npm install
# 遵循瀏覽器特定的擴展加載說明
# 遵循瀏覽器特定的擴充功能載入說明
```
### 太空遊戲項目
### 太空遊戲專案
```bash
cd 6-space-game/solution
npm install
# 於瀏覽器中開啟 index.html 或使用即時伺服器
# 在瀏覽器中打開 index.html 或使用 Live Server
```
### 聊天項目 (Python 後端)
### 聊天專案Python 後端)
```bash
cd 9-chat-project/solution/backend/python
pip install openai
# 設定 GITHUB_TOKEN 環境變
# 設定 GITHUB_TOKEN 環境變
python api.py
```
@ -80,29 +80,29 @@ python api.py
### 內容貢獻者指南
1. <strong>Fork 倉庫</strong>到你的 GitHub 帳戶
2. <strong>Clone 你的 Fork</strong>到本地
3. <strong>建立新分支</strong>以進行修改
1. <strong>將本資源庫分叉</strong>至您的 GitHub 帳戶
2. <strong>克隆您的分叉庫</strong>到本地
3. <strong>建立新分支</strong>用於您的修改
4. 修改課程內容或程式碼範例
5. 在相關項目目錄中測試程式碼變更
6. 根據貢獻指引提交 Pull Request
5. 在相關專案目錄測試程式碼變動
6. 按照貢獻指南提交拉取請求
### 學習者指南
1. Fork 或 clone 此倉
2. 按順序進入課程目錄
3. 閱讀每課的 README
4. 完成 https://ff-quizzes.netlify.app/web/ 上的課前測驗
5. 操作課程資料夾中的程式碼範例
1. 分叉或克隆本資源
2. 依序瀏覽課程目錄
3. 閱讀每課的 README 文件
4. 完成課前測驗網址https://ff-quizzes.netlify.app/web/
5. 練習課程資料夾內的程式碼範例
6. 完成作業與挑戰
7. 進行課後測驗
7. 參加課後測驗
### 時開發
### 時開發
- <strong>文件</strong>在根目錄運行 `docsify serve` (默認埠 3000)
- <strong>測驗應用</strong>在 quiz-app 目錄中執行 `npm run dev`
- <strong>項目</strong>對 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`
## 測試說明
@ -111,84 +111,84 @@ python api.py
```bash
cd quiz-app
npm run lint # 檢查程式碼風格問題
npm run build # 驗證建置成功
npm run build # 確認構建成功
```
### 銀行 API 測試
```bash
cd 7-bank-project/api
npm run lint # 檢查程式碼風格問題
node server.js # 確認伺服器無錯誤啟動
npm run lint # 檢查碼風格問題
node server.js # 驗證伺服器啟動時無錯誤
```
### 一般測試方法
- 此為教育用倉庫,未配置全面自動測試
- 手動測試聚焦於
- 程式碼範例能無錯誤執行
- 文件中的連結能正常運作
- 項目能成功構建
- 範例符合最佳實踐
- 本教育資源庫無全面自動化測試
- 手動測試重點包括
- 程式碼範例能無錯誤執行
- 文件中所有連結均正常
- 專案能成功建置
- 範例維持最佳實務
### 送出前檢查
### 提交前檢查
- 在含 package.json 目錄執行 `npm run lint`
- 確認 Markdown 連結有效
- 在含 package.json 目錄執行 `npm run lint`
- 確認 markdown 連結有效
- 在瀏覽器或 Node.js 測試程式碼範例
- 確認翻譯保持正確結構
- 確認翻譯維持良好結構
## 程式碼風格指南
### JavaScript
- 使用現代 ES6+ 語法
- 遵循項目中提供的標準 ESLint 配置
- 使用有意義的變量及函式名稱以利教育理解
- 添加註解解釋概念供學習者理解
- 在配置了 Prettier 的地方進行格式化
- 遵循專案中提供的 ESLint 標準設定
- 變數與函式名稱具意義,方便教學理解
- 添加說明性註解幫助學習者理解
- 使用配置好的 Prettier 格式化
### HTML/CSS
- 使用語義化 HTML5 元素
- 遵循響應式設計原則
- 明確的類別命名規則
- 添加 CSS 技巧註解供學習者參考
- 採用語意化 HTML5 元素
- 採用響應式設計原則
- 使用清晰的類別命名規則
- 註解說明 CSS 技巧助學習
### Python
- 遵循 PEP 8 風格指引
- 清晰且具教育意義的程式碼範例
- 適當使用型別提示以協助學習
- 遵守 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 Static Web Apps
quiz-app 已配置為 Azure 靜態網站部署:
quiz-app 已配置為 Azure Static Web Apps 部署:
```bash
cd quiz-app
npm run build # 建立 dist/ 資料夾
# 在推送到 main 時,透過 GitHub Actions 工作流程進行部署
# 當推送到 main 分支時,透過 GitHub Actions 工作流程進行部署
```
Azure 靜態網站配置:
Azure Static Web Apps 配置:
- <strong>應用程式位置</strong>`/quiz-app`
- <strong>輸出位置</strong>`dist`
- <strong>工作流程</strong>`.github/workflows/azure-static-web-apps-ashy-river-0debb7803.yml`
@ -197,86 +197,86 @@ Azure 靜態網站配置:
```bash
npm install # 安裝 docsify-to-pdf
npm run convert # 從 docs 生 PDF
npm run convert # 從 docs 生 PDF
```
### Docsify 文件
```bash
npm install -g docsify-cli # 全安裝 Docsify
docsify serve # 在 localhost:3000 提供服務
npm install -g docsify-cli # 全安裝 Docsify
docsify serve # 在 localhost:3000 提供服務
```
### 各項目專用建置
### 專案特定建置
每個項目目錄可能有其專屬建置流程:
- Vue 項目:使用 `npm run build` 建立生產束檔
- 靜態項目:無建置步驟,直接提供檔案服務
各專案目錄可能有獨立建置流程:
- Vue 專案:執行 `npm run build` 產生生產包
- 靜態專案:無建置步驟,直接提供檔案服務
## Pull Request 指引
## 拉取請求指引
### 標題格式
使用清晰描述修改範圍的標題
- `[Quiz-app] 新增第X課測驗`
- `[Lesson-3] 修正植物生態瓶項目錯字`
- `[Translation] 新增第5課西班牙語翻譯`
- `[Docs] 更新設定指引`
使用清楚、具描述性的標題表明更改範圍
- `[Quiz-app] 新增程 X 測驗`
- `[Lesson-3] 修正玻璃箱專案錯字`
- `[Translation] 新增第 5 課西班牙語翻譯`
- `[Docs] 更新安裝說明`
### 必要檢查
### 必須檢查項目
提交 PR 前:
提交 PR 前:
1. <strong>程式碼品質</strong>
- 在影響的項目目錄執行 `npm run lint`
- 修正所有 lint 錯誤及警告
- 於受影響專案目錄執行 `npm run lint`
- 修正所有 lint 警告與錯誤
2. <strong>建置驗證</strong>
- 適用,執行 `npm run build`
- 適用,執行 `npm run build`
- 確保無建置錯誤
3. <strong>連結驗證</strong>
- 測試所有 Markdown 連結
- 確認圖片引用可用
- 測試所有 markdown 連結
- 確認圖片引用有效
4. <strong>內容審查</strong>
- 拼字及文法校對
- 確程式碼範例正確且具教育意義
- 確認翻譯維持原意
4. <strong>內容檢視</strong>
- 校對拼寫與語法
- 確程式碼範例正確且具教育意義
- 核對翻譯保持原意
### 貢獻要求
- 同意 Microsoft CLA首次 PR 自動檢查)
- 遵 [Microsoft 開源行為守則](https://opensource.microsoft.com/codeofconduct/)
- 同意 Microsoft CLA首次 PR 自動檢查)
- 遵 [Microsoft 開源行為守則](https://opensource.microsoft.com/codeofconduct/)
- 詳細指南見 [CONTRIBUTING.md](./CONTRIBUTING.md)
- 如有,於 PR 描述中引用 Issue 號碼
- 若有,於 PR 描述內提及相關議題編號
### 審查流程
- 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. 確保程式碼範例維持可用性
1. 找到對應的 `translations/{language-code}/` 檔案
2. 在保持檔案結構的情況下進行優化
3. 確保程式碼範例能正確執行
4. 測試本地化測驗內容
### 翻譯元資料
翻譯檔含元資料標頭:
翻譯檔含元資料標頭:
```markdown
<!--
CO_OP_TRANSLATOR_METADATA:
@ -289,120 +289,120 @@ CO_OP_TRANSLATOR_METADATA:
-->
```
## 除錯與疑難排解
## 偵錯與問題排解
### 常見問題
<strong>測驗應用無法啟動</strong>
- 檢查 Node.js 版本 (建議 v14+)
- 刪除 `node_modules` `package-lock.json`,重新執行 `npm install`
- 檢查埠號衝突(預設Vite 使用埠 5173
- 檢查 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` 安裝
<strong>瀏覽器擴充功能無法載入</strong>
- 確 manifest.json 格式正確
- 查看瀏覽器控台錯誤訊息
- 遵循瀏覽器專屬擴充安裝指引
- 確 manifest.json 格式正確
- 查看瀏覽器控台錯誤訊息
- 遵循瀏覽器擴充程式安裝指引
**Python 聊天項目問題**
**Python 聊天專案問題**
- 確認已安裝 OpenAI 套件:`pip install openai`
- 確認 GITHUB_TOKEN 環境變量已設定
- 確認環境變數 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` 檔案存在
### 開發環境提示
### 開發環境小技巧
- 對 HTML 項目使用 VS Code 與 Live Server 擴充功能
- 安裝 ESLint 與 Prettier 擴充以統一格式
- 使用 VS Code 搭配 Live Server 擴充開發 HTML 專案
- 安裝 ESLint 與 Prettier 擴充以維持格式統一
- 使用瀏覽器開發者工具偵錯 JavaScript
- Vue 項目安裝 Vue DevTools 瀏覽器擴充
- Vue 專案安裝 Vue DevTools 瀏覽器擴充
### 性能注意事項
### 效能考量
- 大量翻譯檔案50+語言)導致完整 clone 較大
- 僅需處理內容時,可使用淺層 clone`git clone --depth 1`
- 編輯英文內容時,建議排除翻譯目錄搜索
- 首次運行建置流程可能較慢npm install、Vite 建置)
- 超過 50 種語言的翻譯檔案量大,完整複製佔用空間多
- 只開發內容可用淺層複製`git clone --depth 1`
- 進行英文內容工作時建議排除翻譯資料夾搜尋
- 首次建置可能較慢npm install、Vite 建置)
## 安全注意事項
## 安全事項
### 環境變
### 環境變
- API 金鑰嚴禁提交至倉
- 使用 `.env`(已加入 `.gitignore`
- 必要環境變量於項目 README 中記錄
- API 金鑰絕不可提交至資源
- 使用 `.env` 檔(已加入 `.gitignore`
- 專案 README 中記錄所需環境變數
### Python 項目
### Python 專案
- 使用虛擬環境:`python -m venv venv`
- 保持依賴更新
- GitHub 令牌設定最低必要權限
- 維護相依套件更新
- GitHub 令牌設定最低必要權限
### GitHub Models 存取
- GitHub Models 需個人訪問令牌PAT
- 令牌應存為環境變量
- 絕對不得提交令牌或憑證
- 需使用個人訪問令牌 (PAT)
- 令牌應儲存在環境變數
- 禁止提交令牌或認證資訊
## 附加說明
### 目標受眾
### 目標對象
- 完全初學者的網頁開發學習
- 學生自學者
- 用於課堂教學的教師
- 內容設計符合無障礙並逐步增強技能
- 完全沒有網頁開發經驗的初學
- 學生自學者
- 在課堂中使用本課程的教師
- 內容設計強調易懂性與循序漸進技能建立
### 教理念
### 教理念
- 以項目導向學習
- 頻繁的知識檢測(測驗)
- 實作編碼練習
- 真實應用案
- 重視基礎再談框架
- 採用專案導向學習方式
- 定期知識檢核(測驗)
- 實作程式練習
- 真實世界應用範
- 強調基礎概念後再著重框架
### 庫維護
### 資源庫維護
- 積極的學習者與貢獻者社群
- 定期更新依與內容
- 維護者監控 Issues 和討論
- 透過 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 檔案
有關各專案詳細說明,請參閱對應 README
- `quiz-app/README.md` - Vue 3 測驗應用
- `7-bank-project/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 結構
### Monorepo 結構說明
雖非傳統 monorepo此倉庫包含多個獨立項目
- 各課程自成一體
- 項目間不共享依賴
- 可獨立工作不互相影響
- 克隆整個倉庫可獲得完整課程體驗
儘管非傳統 monorepo本資源庫含多個獨立專案
- 每課程獨立自成一體
- 專案間無相依套件共用
- 可個別專案工作不影響其他專案
- 若需完整課程體驗,請完整複製此資源庫
---
<!-- 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 -->

@ -493,7 +493,7 @@
},
"AGENTS.md": {
"original_hash": "a362efd06d64d4134a0cfe8515a86d34",
"translation_date": "2026-04-06T16:04:20+00:00",
"translation_date": "2026-04-20T17:01:01+00:00",
"source_file": "AGENTS.md",
"language_code": "zh-TW"
},

@ -2,42 +2,42 @@
## 專案概覽
這是一個用於教學網頁開發基礎的教育課程儲存庫,適合初學者。課程由 Microsoft Cloud Advocates 開發,為期 12 週,包含 24 個實作課程,涵蓋 JavaScript、CSS 與 HTML
這是一個用於教授初學者網頁開發基礎的教育課程儲存庫。該課程是由 Microsoft Cloud Advocates 開發的完整 12 週課程,包含 24 個涵蓋 JavaScript、CSS 和 HTML 的實作課程
### 主要組成
### 主要組成部分
- <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
- <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 專案
### 架構
- 教育專案庫,依課程組織結構
- 每堂課資料夾內包含 README、程式碼範例及解答
- 獨立專案存放於獨立目錄quiz-app 及各課程專案)
- 透過 GitHub Actionsco-op-translator進行翻譯系統管理
- 文件使用 Docsify 服務,並提供 PDF 版本
- 教育儲存庫,採用以課程為基礎的結構
- 每個課程資料夾包含 README、程式碼範例及解答
- 獨立專案置於不同目錄quiz-app、各種課程專案)
- 透過 GitHub Actions (co-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
```
@ -56,7 +56,7 @@ npm run format # 使用 Prettier 格式化
```bash
cd 5-browser-extension/solution
npm install
# 請依照瀏覽器特定的擴充功能載入指示進行操作
# 遵循瀏覽器特定的擴充功能載入說明
```
### 太空遊戲專案
@ -64,7 +64,7 @@ npm install
```bash
cd 6-space-game/solution
npm install
# 在瀏覽器中開 index.html 或使用 Live Server
# 在瀏覽器中開 index.html 或使用 Live Server
```
### 聊天專案 (Python 後端)
@ -78,31 +78,31 @@ python api.py
## 開發工作流程
### 內容貢獻者指南
### 內容貢獻者
1. **Fork 儲存庫** 至您的 GitHub 帳號
2. **本地 Clone 您的 Fork**
3. <strong>建立新分支</strong> 以進行變更
1. **將儲存庫分支 (fork)** 至你的 GitHub 帳號
2. **在本機複製 (clone) 你的分支**
3. <strong>建立新分支</strong> 來進行修改
4. 修改課程內容或程式碼範例
5. 在相關專案資料夾測試程式碼變更
6. 提交 PR遵循貢獻指導規範
5. 在相關專案目錄中測試程式碼變更
6. 按照貢獻指南提交 Pull Request
### 學習者指南
### 學習者
1. Fork 或 clone 本儲存庫
2. 按順序瀏覽課程資料夾
3. 閱讀每課 README 文件
4. 完成課前測驗https://ff-quizzes.netlify.app/web/
5. 操作課程內的程式碼範例
6. 完成作業及挑戰任務
1. 分支或複製儲存庫
2. 按順序瀏覽課程目錄
3. 閱讀各課程的 README 文件
4. 在 https://ff-quizzes.netlify.app/web/ 完成課前測驗
5. 在課程資料夾中練習程式碼範例
6. 完成作業與挑戰
7. 參加課後測驗
### 時開發
### 時開發
- <strong>文件</strong>在根目錄執行 `docsify serve`(預設埠 3000
- <strong>測驗應用</strong>在 quiz-app 目錄執行 `npm run dev`
- <strong>專案</strong>:使用 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`
## 測試指令
@ -111,7 +111,7 @@ python api.py
```bash
cd quiz-app
npm run lint # 檢查程式碼風格問題
npm run build # 驗證建置是否成功
npm run build # 確認建置成功
```
### 銀行 API 測試
@ -119,76 +119,76 @@ 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 元素
- 響應式設計原則
- 明確的 class 命名規範
- 加入說明 CSS 技巧的註解,方便學習者
- 採用語意化 HTML5 元素
- 遵循響應式設計原則
- 清晰的類別命名規範
- 用註解解釋 CSS 技巧給學習者
### Python
- 遵 PEP 8 風格規範
- 提供清晰且具教育意義的程式碼範例
- 適用時添加型別提示促進學習
- 遵 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 靜態網站應用設定
Azure 靜態網站配置
- <strong>應用位置</strong>`/quiz-app`
- <strong>輸出位置</strong>`dist`
- <strong>工作流程</strong>`.github/workflows/azure-static-web-apps-ashy-river-0debb7803.yml`
@ -197,81 +197,81 @@ Azure 靜態網站應用設定:
```bash
npm install # 安裝 docsify-to-pdf
npm run convert # 從 docs 生 PDF
npm run convert # 從 docs 生 PDF
```
### Docsify 文件
```bash
npm install -g docsify-cli # 全安裝 Docsify
npm install -g docsify-cli # 全安裝 Docsify
docsify serve # 在 localhost:3000 提供服務
```
### 專案專屬建置流程
### 專案建置
各專案目錄可能有獨立建置流程:
- Vue 專案:執行 `npm run build` 生成生產包
- 靜態專案:無建置步驟,直接提供檔案
- Vue 專案:使用 `npm run build` 產生生產包
- 靜態專案:不需建置,直接提供檔案服務
## 拉取請求指導方針
## Pull Request 指南
### 標題格式
使用清晰描述性標題,明確變更範圍:
- `[Quiz-app] 新增第 X 課測驗`
使用清晰且描述性標題指示修改範圍:
- `[Quiz-app] 新增課程 X 測驗`
- `[Lesson-3] 修正生態瓶專案錯字`
- `[Translation] 新增第 5 課西班牙語翻譯`
- `[Docs] 更新安裝指示`
- `[Translation] 新增課程 5 之西班牙文翻譯`
- `[Docs] 更新安裝說明`
### 必檢查
### 必檢查
提交 PR 前:
1. <strong>程式碼品質</strong>
- 在改動專案目錄執行 `npm run lint`
- 在相關專案目錄執行 `npm run lint`
- 修正所有 lint 錯誤與警告
2. <strong>建置驗證</strong>
- 如適用,執行 `npm run build`
- 確無建置錯誤
- 確無建置錯誤
3. <strong>連結驗</strong>
3. <strong>連結</strong>
- 測試所有 markdown 連結
- 確認圖片引用有效
4. <strong>內容審</strong>
- 校對拼寫與文
- 確定程式碼範例正確且教學性佳
- 確認翻譯保持原意
4. <strong>內容審</strong>
- 校對拼字與語
- 確保程式碼範例正確且具教育意義
- 確認翻譯準確且保持原意
### 貢獻要求
### 貢獻條件
- 同意 Microsoft CLA PR 自動檢查)
- 遵 [Microsoft 開源行為準則](https://opensource.microsoft.com/codeofconduct/)
- 同意 Microsoft CLA PR 自動檢查)
- 遵 [Microsoft 開源行為準則](https://opensource.microsoft.com/codeofconduct/)
- 詳細指南見 [CONTRIBUTING.md](./CONTRIBUTING.md)
- 如有,於 PR 描述中參照議題編號
- 如適用於 PR 描述中註明 issue 編號
### 審核
### 審核程
- PR 由維護者與社群審核
- 優先考教育清晰度
- 程式碼範例應遵循當前最佳實踐
- 翻譯準確且符合文化背景
- 優先考教育清晰度
- 程式碼範例應符合最佳實務
- 翻譯審核確保準確且符合文化背景
## 翻譯系統
### 自動翻譯
- 使用 GitHub Actions 配合 co-op-translator 工作流程
- 透過 GitHub Actions 配合 co-op-translator 工作流程
- 自動翻譯超過 50 種語言
- 原始檔位於主目錄
- 翻譯檔存`translations/{language-code}/`
- 來源檔置於主要目錄中
- 翻譯檔存於 `translations/{language-code}/` 目錄
### 手動翻譯改進
1. 定位 `translations/{language-code}/` 中的檔案
2. 在保留結構下進行改進
3. 確保程式碼範例可正確運行
1. 定位 `translations/{language-code}/` 中的檔案
2. 進行改進並保留結構
3. 確保程式碼範例依然可運作
4. 測試任何本地化測驗內容
### 翻譯元資料
@ -289,120 +289,122 @@ CO_OP_TRANSLATOR_METADATA:
-->
```
## 除錯與故障排除
## 除錯與疑難排解
### 常見問題
<strong>測驗應用無法啟動</strong>
- 檢查 Node.js 版本(建議 v14+
- 刪除 `node_modules` `package-lock.json`,重啟 `npm install`
- 確認埠口無衝突(預設 Vite 埠 :5173
- 確認 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` 安裝所有相依套件
<strong>瀏覽器擴充無法載入</strong>
- 檢查 manifest.json 格式是否正確
- 查看瀏覽器控台錯誤訊息
- 遵循瀏覽器專用擴充安裝說明
- 確認 manifest.json 格式正確
- 查看瀏覽器控台有無錯誤訊息
- 參考瀏覽器專屬擴充安裝說明
**Python 聊天專案問題**
- 確認已安裝 OpenAI 套件:`pip install openai`
- 確認已設定 GITHUB_TOKEN 環境變數
- 檢查 GitHub Models 存取權限
- 確保安裝了 OpenAI 套件:`pip install openai`
- 確認 GITHUB_TOKEN 環境變數已設定
- 檢查 GitHub Models 訪問權限
**Docsify 無法提供文件服務**
- 全域安裝 docsify-cli`npm install -g docsify-cli`
- 儲存庫根目錄執行
- 儲存庫根目錄執行
- 確認存在 `docs/_sidebar.md`
### 開發環境提示
### 開發環境建議
- 使用 VS Code 搭配 Live Server 外掛瀏覽 HTML 專案
- 安裝 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 種語言之翻譯使完整克隆資料龐大
- 僅編輯內容可使用淺層克隆`git clone --depth 1`
- 編輯英文內容時可排除翻譯搜尋
- 第一次執行建置流程可能較慢npm install、Vite build
## 安全考量
## 安全考量
### 環境變數
- API 金鑰切勿提交至儲存庫
- 使用 `.env` 檔(已列入 `.gitignore`
- API 金鑰不可提交至儲存庫
- 使用 `.env`(已列入 `.gitignore`
- 文件中說明所需環境變數
### Python 專案
- 使用虛擬環境:`python -m venv venv`
- 維持相依性更新
- GitHub 令牌應限制在必須權限
- 持續更新相依套件
- GitHub Token 需具最小必要權限
### GitHub Models 存取
### GitHub Models 存取權限
- 需個人存取令牌 (PAT)
- 將令牌設為環境變數保存
- 切勿提交令牌或認證資訊
- 使用個人存取權杖PAT
- 將 Token 設為環境變數
- 絕不提交 Token 或帳密
## 補充說明
## 附加說明
### 目標對象
- 完全沒有網頁開發經驗
- 學生及自學
- 教師於教室中使用此課程
- 內容設計強調無障礙與逐步技能建立
- 完全初學者的網頁開發學習
- 學生與自我學習
- 在教室使用課程的老師
- 內容設計強調無障礙性及技能逐步建立
### 教育理念
- 專案導向學習法
- 頻繁的知識檢(測驗)
- 動手編寫程式練習
- 實務應用範例
- 著重基礎概念,漸進探索框架
- 以專案為基礎的學習方式
- 頻繁的知識檢(測驗)
- 實作程式練習
- 真實世界應用範例
- 注重基礎概念,先於框架學習
### 儲存庫維護
- 積極活躍的學習及貢獻社群
- 積極的學習及貢獻社群
- 定期更新相依套件與內容
- 維護者監控議題與討論
- 翻譯透過 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)
- [學生中心資源](https://docs.microsoft.com/learn/student-hub/)
- 推薦學習者使用 [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` - 瀏覽器擴充開發
- `7-bank-project/README.md` - 帶身份驗證的銀行應用
- `5-browser-extension/README.md` - 瀏覽器擴充功能開發
- `6-space-game/README.md` - Canvas 遊戲開發
- `9-chat-project/README.md` - AI 聊天助理專案
### Monorepo 結構
雖非傳統 monorepo但包含多個獨立專案
- 每堂課皆自成一格
- 專案間無相依共享
- 可單獨作業不影響其他專案
- 克隆完整儲存庫以取得完整課程體驗
雖非傳統 monorepo此儲存庫包含多個獨立專案
- 各課程自成一體
- 專案間不共用相依套件
- 可單獨工作不影響其他專案
- 克隆整個儲存庫可獲得完整課程體驗
---
<!-- 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