本页面记录了 HowToCook 仓库中的自动 README 生成系统。该系统负责处理仓库中的所有食谱 markdown 文件,并动态生成主 README.md 文件和根据难度级别(1-5 星)对食谱进行分类的 starsystem 索引文件。
有关 MkDocs 配置(这也是文档系统的一部分)的信息,请参阅 MkDocs 配置。
README 生成系统会自动处理仓库中的所有食谱 markdown 文件,以创建有组织、分类和索引的 README.md 文件,作为用户的主要入口点。它还维护单独的索引文件,按难度级别对食谱进行分组。
来源:.github/readme-generate.js1-246 README.md1-390 starsystem/1Star.md1-23 starsystem/2Star.md1-72 starsystem/3Star.md1-111 starsystem/4Star.md1-79 starsystem/5Star.md1-19
README 生成系统包含以下核心组件
来源:.github/readme-generate.js1-246 .github/templates/readme_template.md1-48
README 生成系统通过多个数据处理阶段,将单个食谱文件转化为有组织的文档结构。
来源:.github/readme-generate.js125-207
系统通过计算内容中的星形符号(★)来分析每个食谱文件以确定其难度级别。然后,它将食谱分为五个难度级别,并为每个级别生成单独的索引文件。
来源:.github/readme-generate.js65-123 starsystem/1Star.md1-23 starsystem/2Star.md1-72 starsystem/3Star.md1-111 starsystem/4Star.md1-79 starsystem/5Star.md1-19
系统通过计算食谱内容中的星形符号来确定食谱难度
来源:.github/readme-generate.js65-73
系统根据文件在目录结构中的位置将食谱组织到多个类别中。类别在脚本的 categories 对象中定义
来源:.github/readme-generate.js12-63 README.md59-198
类别结构在脚本中定义,包含目录名称与显示标题的映射
来源:.github/readme-generate.js12-63
README 生成依赖模板来构建其输出结构。主模板是 readme_template.md,其中包含将被生成内容替换的占位符。
README 模板包含四个主要占位符
{{before}} - 用于介绍性内容,如设备和准备技巧{{index_stars}} - 用于基于难度的食谱索引{{main}} - 用于按类别组织的食谱列表{{after}} - 用于高级烹饪知识内容来源:.github/templates/readme_template.md1-48 .github/readme-generate.js186-193
完整的 README 生成工作流遵循以下步骤
来源:.github/readme-generate.js125-207
核心脚本函数在生成过程中承担不同的职责
| 函数名称 | 目的 | 关键操作 |
|---|---|---|
main() | 主要执行流程 | 协调整体流程 |
getAllMarkdown() | 查找内容文件 | 递归查找所有 .md 文件 |
countStars() | 确定难度 | 计算内容中的 ★ 符号数量 |
organizeByStars() | 创建难度索引 | 按星数对食谱进行分组 |
inlineReadmeTemplate() | 格式化 README 条目 | 创建食谱列表项 |
categoryReadmeTemplate() | 格式化分类部分 | 创建分类标题 |
inlineMkdocsTemplate() | 格式化 MkDocs 条目 | 创建 MkDocs 导航项 |
categoryMkdocsTemplate() | 格式化 MkDocs 分类 | 创建 MkDocs 分类部分 |
来源:.github/readme-generate.js125-243
README 生成系统与仓库的整个文档系统集成。
来源: .github/readme-generate.js1-246 README.md1-390
README生成脚本作为存储库CI/CD管道的一部分自动执行,但也可以手动运行
node .github/readme-generate.js该脚本将
dishes/ 目录中的所有食谱文件来源: .github/readme-generate.js245-246
README生成系统是HowToCook存储库文档基础设施的关键组成部分。它自动处理食谱文件,通过主README.md和基于难度的星级系统索引生成有组织、可导航的文档。该系统使用模板文件和预定义的类别来确保格式一致性,同时也能接纳新的食谱贡献。
该系统体现了一种程序化的文档管理方法,与存储库中对程序员烹饪指令精度和清晰度的关注相一致。