合并受阻
变更摘要
此次 PR 新增了一个名为 math-worksheet 的 AtomCode 教育类插件,用于自动生成小学 1~6 年级数学练习题。核心改动包括:在插件市场中注册该插件、添加插件清单文件、以及实现一个完整的 Python 出题脚本。该脚本基于 MathGenerator 类按年级分别生成加减乘除、分数、小数、百分数、比例、圆面积等多种题型的随机题目,并通过 to_html() 函数输出带参考答案、可打印/导出 PDF 的 HTML 格式文件。
主要改动
- 市场注册新增
math-worksheet插件条目:在.atomcode-plugin/marketplace.json中新增了一个math-worksheet插件记录,包含作者信息(心栖智学)、分类education、版本1.0.0,以及通过git-subdir方式指向plugins/math-worksheet的源码配置。 - 新增插件清单文件:
plugins/math-worksheet/.atomcode-plugin/plugin.json定义了插件名称为math-worksheet、版本1.0.0,并通过"skills": "skills"指定了 AI 技能指令目录。 - 核心出题脚本
math_worksheet.py:实现了Question数据类承载题目内容和答案,以及MathGenerator类按 1~6 年级分别实现的_grade1()至_grade6()六个生成方法,覆盖加法减法、乘法、除法、分数运算、小数乘法、百分数、圆面积、比例等多种题型。 - HTML 输出与打印支持:
to_html()函数将生成的题目渲染为包含 CSS 打印样式(@page)的双列表格 HTML,前半部分为练习题、后半部分为红色粗体参考答案,并包含姓名/日期/得分区域和页脚信息。 - 命令行接口:
main()函数通过argparse提供--grade(1-6)、--count(题目数量)、--output(输出文件路径)、--title和--version等参数,支持灵活的一键出题操作。


🔵 Low Priority
变更行: 第 158-160 行 if value == 0: value = 1; k = 100 // p 是一个永远不可达的分支。
受影响行为: value = p * k // 100,其中 p 取自 [1, 2, 4, 5, 10, 20, 25, 50](均为 100 的约数),k = random.randint(1, 50) * (100 // p)。由于 k 始终是 100/p 的倍数,p * k 始终是 100 的整数倍且 ≥ 100,因此 value 最小为 1,永远不会为 0。
失效模式: 死代码本身不会导致运行时错误,但会给维护者造成困惑——看起来像是处理了一种边界情况,实际上永远触发不了。如果未来有人修改了 p 的取值列表(如加入非 100 约数),这个分支可能会意外激活并使用了一个非预期的 k 值(k = 100 // p 在 p 不整除 100 时会产生不精确的结果)。
建议:移除不可达的 if value == 0: 分支及其内部三行代码,保留后续的 qs.append(...) 调用。


变更摘要
本次 PR 为 AtomCode 插件市场新增了一个名为 math-worksheet 的教育类插件。该插件是一个小学数学智能出题器,支持 1~6 年级的加减乘除、分数、小数、百分数、比例、圆面积等题型,可自动随机生成题目并输出带参考答案的可打印 HTML 文件。核心实现位于 plugins/math-worksheet/scripts/math_worksheet.py 中的 MathGenerator 类,通过 to_html 函数渲染 HTML,同时在市场清单中注册了插件元信息。
主要改动
- 市场注册表新增插件条目:在
.atomcode-plugin/marketplace.json中新增了math-worksheet插件的注册信息,包含作者、分类、描述、GitCode 源地址、标签及verified等级等元数据。 - 新增插件清单文件:创建了
plugins/math-worksheet/.atomcode-plugin/plugin.json,声明插件名称为math-worksheet,版本1.0.0,并指定技能目录为skills。 - 新增核心出题脚本:
plugins/math-worksheet/scripts/math_worksheet.py实现了MathGenerator类,按年级分派_grade1至_grade6六个方法生成Question数据类实例,涵盖整数四则运算、分数、小数乘除、百分数应用题、圆面积及比例等题型,并在答案生成中采用整数运算避免浮点精度问题。 - HTML 输出与安全校验:通过
to_html函数生成包含题目区和参考答案区的可打印 HTML 页面,并在main函数中使用argparse解析--grade、--count、--output等参数,同时对输出路径进行工作目录范围校验以防止路径穿越。


小学数学智能出题器 (Math Worksheet Generator) 🧮
一键生成高质量小学数学练习题的 AtomCode 插件。教师家长必备工具。
✨ 功能特点
📖 使用方法
在 AtomCode 中运行:
或终端直接运行:
📁 文件结构
👤 作者信息