SuperAPI AI 工具集

lc-site-data

数据与分析

查看项目

更新于 10-16 07:19

技能介绍

用途:向学习路线图(data/roadmap.json)添加主题,或向复杂度测验(data/complexity_quiz.json)添加题目,使站点构建一次性通过校验。调用方式为 /lc-site-data <what>,例如 /lc-site-data roadmap monotonic-stack、/lc-site-data quiz for LC 239。两个文件都不长,但构建期校验很严格:site/build-roadmap.js 和 site/build-quiz.js 会直接让构建失败而不是警告,跨三四个文件同时满足约束,否则容易陷入改一次、构建失败、再改的循环。

路线图部分:lc-roadmap.html 完全由 data/roadmap.json 驱动,每个主题一条记录,含 id、title、row、prereqs、sheets、blurb、problems 字段。构建失败规则包括:problems 中每个编号必须出现在 README 表格中;sheets 的每个 slug 必须是 doc/cheatsheet/ 下的文件;row 必须严格大于所有 prereq 的 row;prereqs 不能有环;不能包含图已经隐含的边(需保持传递归约,只列直接前置)。行内顺序按文件出现顺序绘制,新主题应靠近其前置所在列。列表选择器由同一文件声明:lists 的 from 可以是 curated、list:<flag> 或 readme:<field>;topicSources 把各来源的分类映射到主题,null 表示有意不放在路线图上;分类键缺失、指向未知主题或映射后未使用都会导致构建失败。只有 curated 列表有教学顺序,才会渲染锁和前置。data/problem_lists.json 是 vendored 文件,需手动刷新:python3 script/fetch_problem_lists.py,检查命令加 --check(过期时退出码 1),切勿手工编辑。

测验部分:lc-complexity-quiz.html 读取 data/complexity_quiz.json,含 id、lc、topic、vars、code、time、space、why、trap 字段。规则:id 不重复;lc 编号须在 README 表格中;有 lc 的条目不设 title/difficulty(来自 README),无 lc 的必须设置二者;accept 必须是数组而非裸字符串;每个答案都要能解析为复杂度表达式。site/complexity.js 的标识符为单字母,应写 O(n * a) 并用 vars 说明 a 是什么,不能写 O(n * amount)。accept 只用于真正可辩护的答案,不用于拼写变体。

操作步骤:先检查已有条目(用 python3 读 roadmap.json 的 id 列表、grep 统计 quiz id、grep README 表格确认编号、检查 cheatsheet 文件是否存在);再写条目;然后用 SKIP_FONTS=1 bash site/build.sh 构建并阅读输出(路线图行、各列表的 shown of 计数、测验行);接着用 node site/e2e-check.js _site、npm test --prefix site 检查页面;最后报告条目、构建计数前后对比及推断内容。禁止事项:不要重复标题/难度/题解链接,不列隐含前置,row 不晚于前置,不写 O(n * amount),accept 不用裸字符串,不手工改 problem_lists.json,不忽略变化的 shown of 计数,未要求不提交或推送。

限制:以上为资料提供的用法与约束;其他环境细节暂未提供。