本文档介绍了向 HowToCook 仓库贡献的流程,涵盖了从创建新菜谱到合并您更改的各个方面。有关菜谱格式和标准的信息,请参阅 菜谱格式标准。
HowToCook 仓库被设计为一个社区驱动的食谱,强调精确、对程序员友好的菜谱。贡献流程通过自动化检查和人工审查确保所有菜谱都保持一致的质量和格式。
来源: README.md27-31 .github/workflows/ci.yml .github/workflows/build.yml
要贡献到仓库,您需要
npm install 安装依赖项在贡献之前,您应该了解仓库的特定结构
| 目录 | 目的 |
|---|---|
dishes/ | 包含按类别组织的菜谱文件 |
starsystem/ | 包含难度评级(0-5 星) |
tips/ | 包含烹饪技巧和指南 |
.github/ | 包含工作流和模板 |
来源: README.md59-363 .github/readme-generate.js12-62
创建新菜谱时,您应该
dishes/vegetable_dish/)dishes/template/示例菜/示例菜.md 复制模板来源: README.md31
下图展示了完整的 Pull Request 生命周期
来源: .github/workflows/ci.yml .github/workflows/build.yml .github/pull_request_template.md
所有贡献都必须根据 The Unlicense 进行许可,将其置于公共领域。Pull Request 模板要求您确认
这以 PR 模板中的复选框形式实现,在您的 PR 获得审核之前必须勾选
- [ ] I confirm my content does not involve copyright issues, and I authorize it under The Unlicense.
来源: .github/pull_request_template.md7-15
该仓库使用多种自动化检查来确保菜谱的质量和一致性
Linting 工具在 package.json 文件中定义
| 工具 | 目的 |
|---|---|
| markdownlint | 确保 Markdown 格式一致 |
| textlint | 检查文本内容是否存在问题 |
| manual_lint.js | 验证菜谱特定要求 |
这些工具会在您提交 Pull Request 时自动运行,并在人工审核前必须通过。
来源: package.json16-22 .github/workflows/ci.yml .markdownlint.json
当您的贡献被合并后,会发生几个自动化过程
README 生成:
readme-generate.js 脚本会更新 README.md星级系统更新:
Docker 镜像创建:
readme-generate.js 脚本会检查每个菜谱文件以确定
来源: .github/workflows/build.yml .github/readme-generate.js
在提交 PR 之前,建议在本地测试您的更改
运行 linting 检查
生成 README(可选)
这有助于及早发现格式问题,并确保您的 PR 有更高的几率通过自动化检查。
| 问题 | 解决方案 |
|---|---|
| Linting 失败 | 检查格式,确保 Markdown 语法正确 |
| 缺少部分 | 确保菜谱包含模板中的所有必需部分 |
| 测量单位不正确 | 使用精确的测量单位(克、毫升等) |
| 缺少星级评分 | 添加 ★ 符号以指示难度 |
仔细遵循模板并运行本地检查有助于避免大多数常见问题。
HowToCook 的贡献流程旨在确保高质量、一致的菜谱,同时使每个人都能轻松贡献。通过遵守模板和格式要求,您可以帮助构建这个社区驱动的、对程序员友好的菜谱库。
请记住,所有贡献都必须根据 The Unlicense 进行许可,并且在合并前必须通过自动化检查和人工审核。