用途:在 Exercode/Judge 环境内生成课程教材(Exercode 教材),包括讲义、教科书和嵌入式测验。不适用于 Exercode/Judge 之外的场景。
使用前需阅读三份参考:references/course-format.md(课程目录结构、course.yaml 与材质 frontmatter 模式)、references/material-authoring.md(讲义写作规则)、references/question-authoring.md(嵌入式测验题写法)。
流程:先与用户确认课程参数(主题、目标受众、讲义数量、目标编程语言、输出目录),缺失且无法询问时自行选取合理值并在最终报告中列为待定决策。先写嵌套 markdown 大纲(每讲一条,附一行摘要),可行时请用户确认。按 course-format.md 创建目录:<courseId>/course.yaml 列出每讲(id、name、description);每讲一个目录,讲义 ID 用零填充序号前缀(01_、02_…);课程级编程题放在 <courseId>/problems/<problemId>/。讲义内的材料文件序号每讲从 01_ 重新开始,正文默认用日语(除非用户要求其他语言)。测验题以 yaml 围栏块嵌入正文,紧跟新概念之后而非集中放在末尾。
若写码/改码/执行代码属于学习目标,用 generate-judge-problems 在检查点创建课程级 Judge 题,题目需应用已引入的概念,并用 表示名 就近链接到前置材料,不得引用其他课程的题。
校验:使用 exercode-problem CLI(随 @exercode/problem-utils 提供,须为仓库声明依赖),命令为 bunx exercode-problem validate-course <courseDir> --problems-dir <problemsDir>;无 Judge 题时省略 --problems-dir,重复修复并重跑直至成功。警告亦应处理,保留时需说明原因。
限制:官方文本与价格、平台等细节暂未提供。