本页面介绍了 HowToCook 仓库中食谱的结构和分类方式。该系统使用户能够根据食谱类型(例如荤菜、素菜等)或难度级别(星级评分)轻松找到食谱。
有关食谱格式标准的信息,请参阅食谱格式标准。
HowToCook 中的食谱主要按 dishes/ 目录下的分类进行组织。每个食谱都以 Markdown 文件的形式存储在其对应的分类子目录中。
该仓库将食谱组织成以下几类
| 类别目录 | 描述 |
|---|---|
vegetable_dish/ | 素菜 |
meat_dish/ | 荤菜 |
aquatic/ | 水产 |
breakfast/ | 早餐 |
staple/ | 主食 |
semi-finished/ | 半成品加工 |
soup/ | 汤与粥 |
drink/ | 饮料 |
condiment/ | 酱料和其它材料 |
dessert/ | 甜品 |
除了按类别组织外,食谱还通过星级评分系统按难度级别进行分类。这为用户提供了根据其烹饪技能水平查找食谱的另一种方式。
难度分类通过 starsystem/ 目录实现,其中包含代表每个难度级别的文件
| 文件 | 难度级别 | 描述 |
|---|---|---|
0Star.md | 0 星 | 最简单的食谱 |
1Star.md | 1 星 | 非常简单的食谱 |
2Star.md | 2 星 | 简单的食谱 |
3Star.md | 3 星 | 中等难度的食谱 |
4Star.md | 4 星 | 困难的食谱 |
5Star.md | 5 星 | 最具挑战性的食谱 |
每个星级评分文件都包含指向该难度级别所有食谱的链接。食谱的星级评分是通过计算食谱 markdown 文件内容中的“★”字符数量来确定的。
来源:starsystem/0Star.md starsystem/1Star.md starsystem/2Star.md starsystem/3Star.md starsystem/4Star.md starsystem/5Star.md
来源:.github/readme-generate.js65-73
食谱组织通过 .github/readme-generate.js 脚本来维护,该脚本会分析食谱文件并自动生成相应的索引。该脚本执行以下几项重要功能:
dishes/ 目录下的所有食谱 markdown 文件该脚本通过 GitHub Actions 自动执行,每当将更改推送到仓库时都会运行,确保组织结构始终保持最新。
来源:.github/readme-generate.js1-246 .github/templates/readme_template.md1-48
以下代码组件对食谱组织系统至关重要:
.github/readme-generate.js 中的 categories 对象中定义countStars() 函数,用于分析食谱文件organizeByStars() 函数,用于创建和更新难度评分文件main() 函数,用于创建全面的食谱索引这些函数是如何交互的
来源:.github/readme-generate.js65-123 .github/readme-generate.js125-208
HowToCook 仓库中的双重组织系统提供了灵活的浏览和发现食谱的方式。通过同时按类别和难度对食谱进行组织,该仓库能够满足用户的不同需求。这种组织方式的自动化维护确保了一致性并减少了手动工作量,使得在添加新食谱或修改现有食谱时易于维护。