ARTICLE DETAIL

资讯详情

深耕网站SEO优化与搜索引擎排名提升的一线实战洞察。

一张 CSV 表如何驱动整份 README 的自动生成

一张 CSV 表如何驱动整份 README 的自动生成 一张 CSV 表如何驱动整份 README 的自动生成【免费下载链接】awesome-claude-codeA hand-picked collection of the finest of resources for the most awesome of agents, Claude Code, the undisputed champion of coding companions, from the unstoppable team at Anthropic PBC. A delectable showcase of top tier skills, ambidextrous agents, scintillating status lines, top notch developer tooling, and also we have plugins项目地址: https://gitcode.com/GitHub_Trending/aw/awesome-claude-code维护一份 150 条目的资源清单过去意味着手动重排目录、逐个核对链接、在多个文件间同步格式。在 awesome-claude-code 里这些工作收敛成一条链路数据落在一张 CSV 表README、目录和提交表单都由脚本从这张表渲染出来改一处全篇对齐。 一张 CSV 表承载整份资源清单整份清单的户口本是仓库根目录的 THE_RESOURCES_TABLE_NEW.csv——158 行每行一个资源。Makefile 的注释把它称作 single source of truth唯一数据源指其他一切文件都从它派生README、目录、提交表单里的分类下拉框全部来自这张表或它的伴生配置。每个字段对应一个明确的用途字段用途ID入库时自动铸造的 8 位十六进制标识如 docs-1444912b后续更新、移动条目都靠它定位Display Name条目名同类条目按它做不区分大小写的字母排序Category / Sub-Category分类与子分类取值必须先在 config.yaml 中声明Link / Author Link资源主链接与作者主页查重以 Link 为准Active只有为 TRUE 的行才会被渲染进 READMEStale / Last Checked标记条目是否过期记录上次核验时间为什么选 CSV 而不是数据库一张平铺的文本表没有运行时却把三件事都占了git diff 直接可读评审者一眼看出哪行改了什么没有 schema 迁移加一列就是加一列Python 标准库的 csv 模块就能读不引入 ORM。数据库在这个规模下提供的查询与约束能力被失败即中止的校验脚本替代了。代价同样明确并发编辑交给合并 PR 解决分组逻辑写在生成脚本里而不是存在表结构里。config.yaml 只负责一件事排顺序分类的先后顺序、子分类的嵌套、每个分类下的一句话简介都定义在 config.yaml而且这是顺序被定义的唯一位置。列表内部条目固定按 Display Name 字母序不做成可配置项——把可调的旋钮收窄到一个布局引擎就永远长不出来。⚙️ CSV 到 README 的渲染管线模板里只有四个占位符templates/README.template.md 是 README 的骨架其中只有四个动态位置{{TABLE_OF_CONTENTS}} 放目录{{THE_LIST}} 放分类列表另两个占位符分别放仓库 ticker 轮播和最近新增轮播。generate_readme.py 读 CSV、读 config.yaml把分组、排序好的条目填进占位符。目录锚点还复刻了 GitHub 的标题锚点算法比如 Design UI/UX 会生成 design--uiux连不合并连续连字符这种细节都对齐点击目录才能准确落位。幂等生成与失败即中止生成被设计成纯函数输出只由模板、CSV、config.yaml 三者决定重跑一次得到的 README.md 与上一次逐字节一致幂等即同样输入永远得到同样输出。反过来校验不过就拒绝落盘——只要某个 Active 条目的 Category 没在 config.yaml 里声明脚本以非零码退出列出所有问题条目的 ID一个字节都不写。为什么这么苛刻因为半截 README 落进仓库比生成失败更贵读者会看到空分类而失败在本地就被拦住了。表单下拉框与审核流程怎么保持同步用脚本重写下拉框禁止手改提交表单里选哪个分类的下拉框是另一个派生物。scripts/sync_issue_form.py 按 config.yaml 中每个 submittable 分类的顺序重写这段选项挂在 pre-commitgit 提交前自动执行的钩子上加 --check 参数则只比对不写入给 CI 当门禁。手改下拉框这条路被直接堵死改了也会被下次提交还原。人工审核留在流程里维护者可以用 make submit-resource 走完整提交路径脚本拼好表单正文通过 gh 开一个带 resource-submission 和 validation-pending 标签的 issue自动校验随即触发维护者批准后由系统创建 PR。机器负责可计算的部分人负责判断——这个资源值不值得上。CSV 因此只经由评审过的合并被修改而不是被脚本直写。本地跑通最小闭环的四条命令git clone https://gitcode.com/GitHub_Trending/aw/awesome-claude-code cd awesome-claude-code make venv deps # 从 CSV config.yaml 重新渲染 README幂等字节级一致 make readme # 加一条资源自动铸 ID、按链接查重、追加后重新生成 make add-resource DISPLAY_NAMEcctop CATEGORYStatus Lines \ LINKhttps://example.com/cctop # 跑测试套件确认没改坏 make test跑完可以核对两件事README.md 被重写目录条目与 CSV 中 Active 为 TRUE 的行一一对应make add-resource 之后 CSV 末尾多出一行新 ID 已铸好。再跑一次 make readmediff 为空——这就是幂等在日常的样子。设计决策与取舍派生物一律不手改。README、目录、SVG 轮播、表单下拉框全是生成物仓库里没有手改它们的入口。发现某个派生物被人编辑过就说明管线漏了它——这比逐次代码审查更便宜。幂等当契约用。字节级一致让 CI 可以拿 diff 当断言也让自动更新 ticker 数据的那类 [skip ci] 提交不污染 README 的变更历史。校验失败即中止而不是打补丁。宁可生成失败也不产出缺了一个分类的 README报错直接指向要在 config.yaml 补声明的那一行修复成本是一行配置。人工环节只留在判断点上。自动 PR 必须由人合并表单提交必须过标签触发的校验。自动化覆盖重复劳动审核权没有下放给脚本。下次手里也有一份要反复更新的清单先建那张 CSV再写一条 make 命令管线就能照这个仓库的样子搭起来。从 THE_RESOURCES_TABLE_NEW.csv 的表头读起是最快的切入点。【免费下载链接】awesome-claude-codeA hand-picked collection of the finest of resources for the most awesome of agents, Claude Code, the undisputed champion of coding companions, from the unstoppable team at Anthropic PBC. A delectable showcase of top tier skills, ambidextrous agents, scintillating status lines, top notch developer tooling, and also we have plugins项目地址: https://gitcode.com/GitHub_Trending/aw/awesome-claude-code创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考
返回列表