You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
Web-Dev-For-Beginners/translations/zh/AGENTS.md

415 lines
11 KiB

This file contains ambiguous Unicode characters!

This file contains ambiguous Unicode characters that may be confused with others in your current locale. If your use case is intentional and legitimate, you can safely ignore this warning. Use the Escape button to highlight these characters.

<!--
CO_OP_TRANSLATOR_METADATA:
{
"original_hash": "a362efd06d64d4134a0cfe8515a86d34",
"translation_date": "2025-10-03T11:16:34+00:00",
"source_file": "AGENTS.md",
"language_code": "zh"
}
-->
# AGENTS.md
## 项目概述
这是一个用于教授初学者网页开发基础知识的教育课程库。该课程是由微软云倡导者开发的全面12周课程包含24节动手实践课程涵盖JavaScript、CSS和HTML。
### 主要组成部分
- **教育内容**24节结构化课程按项目模块组织
- **实践项目**生态瓶、打字游戏、浏览器扩展、太空游戏、银行应用、代码编辑器和AI聊天助手
- **互动测验**48个测验每个测验包含3个问题课前/课后评估)
- **多语言支持**通过GitHub Actions实现50多种语言的自动翻译
- **技术栈**HTML、CSS、JavaScript、Vue.js 3、Vite、Node.js、Express、Python用于AI项目
### 架构
- 基于课程的教育资源库
- 每个课程文件夹包含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
```bash
cd quiz-app
npm install
npm run dev # Start development server
npm run build # Build for production
npm run lint # Run ESLint
```
### 银行项目APINode.js + Express
```bash
cd 7-bank-project/api
npm install
npm start # Start API server
npm run lint # Run ESLint
npm run format # Format with Prettier
```
### 浏览器扩展项目
```bash
cd 5-browser-extension/solution
npm install
# Follow browser-specific extension loading instructions
```
### 太空游戏项目
```bash
cd 6-space-game/solution
npm install
# Open index.html in browser or use Live Server
```
### 聊天项目Python后端
```bash
cd 9-chat-project/solution/backend/python
pip install openai
# Set GITHUB_TOKEN environment variable
python api.py
```
## 开发工作流程
### 对于内容贡献者
1. **Fork资源库**到你的GitHub账户
2. **克隆你的Fork**到本地
3. **创建新分支**以进行更改
4. 修改课程内容或代码示例
5. 在相关项目目录中测试代码更改
6. 按照贡献指南提交拉取请求
### 对于学习者
1. Fork或克隆资源库
2. 按顺序浏览课程目录
3. 阅读每节课程的README文件
4. 在https://ff-quizzes.netlify.app/web/完成课前测验
5. 在课程文件夹中完成代码示例
6. 完成作业和挑战
7. 进行课后测验
### 实时开发
- **文档**:在根目录运行`docsify serve`端口3000
- **测验应用**在quiz-app目录运行`npm run dev`
- **项目**使用VS Code的Live Server扩展运行HTML项目
- **API项目**在相关API目录运行`npm start`
## 测试说明
### 测验应用测试
```bash
cd quiz-app
npm run lint # Check for code style issues
npm run build # Verify build succeeds
```
### 银行API测试
```bash
cd 7-bank-project/api
npm run lint # Check for code style issues
node server.js # Verify server starts without errors
```
### 一般测试方法
- 这是一个教育资源库,没有全面的自动化测试
- 手动测试重点:
- 代码示例运行无错误
- 文档中的链接正常工作
- 项目构建成功完成
- 示例遵循最佳实践
### 提交前检查
- 在包含package.json的目录运行`npm run lint`
- 验证Markdown链接是否有效
- 在浏览器或Node.js中测试代码示例
- 确保翻译保持正确结构
## 代码风格指南
### JavaScript
- 使用现代ES6+语法
- 遵循项目中提供的标准ESLint配置
- 使用有意义的变量和函数名称以便于学习
- 添加注释解释概念以帮助学习者
- 在配置了Prettier的地方进行格式化
### HTML/CSS
- 使用语义化HTML5元素
- 响应式设计原则
- 清晰的类命名规范
- 添加注释解释CSS技术以帮助学习者
### Python
- 遵循PEP 8风格指南
- 提供清晰的教育代码示例
- 在有帮助的地方添加类型提示
### Markdown文档
- 清晰的标题层次结构
- 带语言说明的代码块
- 链接到额外资源
- 在`images/`目录中提供截图和图片
- 为图片添加辅助文本以提高可访问性
### 文件组织
- 课程按顺序编号1-getting-started-lessons, 2-js-basics等
- 每个项目有`solution/`目录,通常还有`start/`或`your-work/`目录
- 图片存储在课程特定的`images/`文件夹中
- 翻译存储在`translations/{language-code}/`结构中
## 构建和部署
### 测验应用部署Azure Static Web Apps
测验应用已配置为Azure Static Web Apps部署
```bash
cd quiz-app
npm run build # Creates dist/ folder
# Deploys via GitHub Actions workflow on push to main
```
Azure Static Web Apps配置
- **应用位置**`/quiz-app`
- **输出位置**`dist`
- **工作流**`.github/workflows/azure-static-web-apps-ashy-river-0debb7803.yml`
### 文档PDF生成
```bash
npm install # Install docsify-to-pdf
npm run convert # Generate PDF from docs
```
### Docsify文档
```bash
npm install -g docsify-cli # Install Docsify globally
docsify serve # Serve on localhost:3000
```
### 项目特定构建
每个项目目录可能有自己的构建过程:
- Vue项目`npm run build`生成生产包
- 静态项目:无需构建步骤,直接提供文件
## 拉取请求指南
### 标题格式
使用清晰、描述性的标题指明更改的区域:
- `[Quiz-app] 为课程X添加新测验`
- `[Lesson-3] 修复生态瓶项目中的拼写错误`
- `[Translation] 为课程5添加西班牙语翻译`
- `[Docs] 更新设置说明`
### 必需检查
提交PR之前
1. **代码质量**
- 在受影响的项目目录运行`npm run lint`
- 修复所有lint错误和警告
2. **构建验证**
- 如果适用,运行`npm run build`
- 确保没有构建错误
3. **链接验证**
- 测试所有Markdown链接
- 验证图片引用是否正常工作
4. **内容审查**
- 校对拼写和语法
- 确保代码示例正确且具有教育意义
- 验证翻译保持原意
### 贡献要求
- 同意微软CLA首次PR时自动检查
- 遵循[微软开源行为准则](https://opensource.microsoft.com/codeofconduct/)
- 参阅[CONTRIBUTING.md](./CONTRIBUTING.md)获取详细指南
- 在PR描述中引用问题编号如果适用
### 审核流程
- PR由维护者和社区审核
- 优先考虑教育清晰度
- 代码示例应遵循当前最佳实践
- 翻译需审核准确性和文化适应性
## 翻译系统
### 自动翻译
- 使用GitHub Actions和co-op-translator工作流
- 自动翻译为50多种语言
- 源文件位于主目录
- 翻译文件存储在`translations/{language-code}/`目录中
### 添加手动翻译改进
1. 在`translations/{language-code}/`中找到文件
2. 在保持结构的同时进行改进
3. 确保代码示例仍然可用
4. 测试任何本地化的测验内容
### 翻译元数据
翻译文件包含元数据头:
```markdown
<!--
CO_OP_TRANSLATOR_METADATA:
{
"original_hash": "...",
"translation_date": "...",
"source_file": "...",
"language_code": "..."
}
-->
```
## 调试和故障排除
### 常见问题
**测验应用无法启动**
- 检查Node.js版本推荐v14+
- 删除`node_modules`和`package-lock.json`,重新运行`npm install`
- 检查端口冲突默认Vite使用端口5173
**API服务器无法启动**
- 验证Node.js版本是否满足最低要求node >=10
- 检查端口是否已被占用
- 确保所有依赖项已通过`npm install`安装
**浏览器扩展无法加载**
- 验证manifest.json格式是否正确
- 检查浏览器控制台中的错误
- 按照浏览器特定的扩展安装说明操作
**Python聊天项目问题**
- 确保已安装OpenAI包`pip install openai`
- 验证是否设置了GITHUB_TOKEN环境变量
- 检查GitHub Models访问权限
**Docsify无法提供文档**
- 全局安装docsify-cli`npm install -g docsify-cli`
- 从资源库根目录运行
- 检查`docs/_sidebar.md`是否存在
### 开发环境提示
- 对于HTML项目使用VS Code的Live Server扩展
- 安装ESLint和Prettier扩展以保持一致的格式
- 使用浏览器开发工具调试JavaScript
- 对于Vue项目安装Vue DevTools浏览器扩展
### 性能考虑
- 大量翻译文件50多种语言导致完整克隆体积较大
- 如果只处理内容,请使用浅克隆:`git clone --depth 1`
- 在处理英文内容时排除翻译文件的搜索
- 第一次运行构建过程可能较慢npm install, Vite build
## 安全注意事项
### 环境变量
- API密钥绝不能提交到资源库
- 使用`.env`文件(已在`.gitignore`中)
- 在项目README中记录所需的环境变量
### Python项目
- 使用虚拟环境:`python -m venv venv`
- 保持依赖项更新
- GitHub令牌应具有最低必要权限
### GitHub Models访问
- GitHub Models需要个人访问令牌PAT
- 令牌应存储为环境变量
- 切勿提交令牌或凭据
## 附加说明
### 目标受众
- 完全的网页开发初学者
- 学生和自学者
- 在课堂上使用课程的教师
- 内容设计注重可访问性和逐步技能提升
### 教育理念
- 基于项目的学习方法
- 频繁的知识检查(测验)
- 动手编码练习
- 真实世界应用示例
- 在框架之前专注于基础知识
### 资源库维护
- 活跃的学习者和贡献者社区
- 定期更新依赖项和内容
- 维护者监控问题和讨论
- 通过GitHub Actions自动更新翻译
### 相关资源
- [微软学习模块](https://docs.microsoft.com/learn/)
- [学生中心资源](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` - 浏览器扩展开发
- `6-space-game/README.md` - 基于Canvas的游戏开发
- `9-chat-project/README.md` - AI聊天助手项目
### Monorepo结构
虽然不是传统的Monorepo但此资源库包含多个独立项目
- 每节课程都是自包含的
- 项目之间不共享依赖项
- 可单独处理项目而不影响其他项目
- 克隆整个资源库以体验完整课程
---
**免责声明**
本文档使用AI翻译服务 [Co-op Translator](https://github.com/Azure/co-op-translator) 进行翻译。尽管我们努力确保翻译的准确性,但请注意,自动翻译可能包含错误或不准确之处。原始语言的文档应被视为权威来源。对于关键信息,建议使用专业人工翻译。我们不对因使用此翻译而产生的任何误解或误读承担责任。