iter(g41): verify 校验 README 分组行与清单一致
This commit is contained in:
@@ -709,6 +709,16 @@ function checkReadme(pkgs) {
|
||||
const actual = new Set(pkgs.flatMap((p) => (p.docs?.components ?? []).map((c) => c.id)));
|
||||
for (const id of actual) if (!listed.has(id)) issues.push(`README.md 组件区块缺少 ${id}`);
|
||||
for (const id of listed) if (!actual.has(id)) issues.push(`README.md 组件区块多出 ${id}(清单里没有)`);
|
||||
// 分组行同一份清单的另一种表述:漏写/多写同样算文档漂移
|
||||
const groupLine = fs.readFileSync(file, 'utf8').split(/\r?\n/).find((line) => line.startsWith('分组:'));
|
||||
if (!groupLine) {
|
||||
issues.push('README.md 缺少「分组:」行(组件分类导航)');
|
||||
return issues;
|
||||
}
|
||||
const grouped = new Set(groupLine.match(/[a-zA-Z][A-Za-z0-9]*/g) ?? []);
|
||||
const alias = new Set(['formItem']); // formItem 与 form 共用一条文档,分组行里会单独出现
|
||||
for (const id of actual) if (!grouped.has(id)) issues.push(`README.md 分组行缺少 ${id}`);
|
||||
for (const id of grouped) if (!actual.has(id) && !alias.has(id)) issues.push(`README.md 分组行多出 ${id}(清单里没有)`);
|
||||
return issues;
|
||||
}
|
||||
|
||||
@@ -871,7 +881,7 @@ function cmdVerify() {
|
||||
console.error(`${issues.length} violation(s)`);
|
||||
process.exit(1);
|
||||
}
|
||||
console.log('verify OK (manifest ↔ docs ↔ demo 一致,皮肤无硬编码颜色与未定义令牌,README 组件清单同步,backlog ↔ 留痕一致)');
|
||||
console.log('verify OK (manifest ↔ docs ↔ demo 一致,皮肤无硬编码颜色与未定义令牌,README 组件清单与分组同步,backlog ↔ 留痕一致)');
|
||||
}
|
||||
|
||||
/*** 校验 git 提交信息是否符合 COMMITTING.md 规范(参数为 message 文件路径或直接 message 文本),违规退出码 1 ***/
|
||||
|
||||
Reference in New Issue
Block a user