已开启
[共创大赛] feat: add math-worksheet plugin - math worksheet generator #2
[共创大赛] feat: add math-worksheet plugin - math worksheet generator #2
已开启
gcw_pQGZdeQf创建于 7月3日
gcw_pQGZdeQf
7月3日

小学数学智能出题器 (Math Worksheet Generator) 🧮

一键生成高质量小学数学练习题的 AtomCode 插件。教师家长必备工具。

✨ 功能特点

功能 说明
📚 全学段支持 1~6 年级全覆盖
🔢 多种题型 加减乘除、分数、小数、百分数、比例、圆面积
🎯 自动出题 每次运行随机生成,题目不重复
✅ 带参考答案 自动生成标准答案,方便批改
🖨️ 可打印导出 输出 HTML 格式,浏览器打开即可打印或导出 PDF
🆓 完全免费 开源免费使用

📖 使用方法

在 AtomCode 中运行:

/math-worksheet:math-worksheet -g 3 -c 30 -o lianxiti.html

或终端直接运行:

python3 math_worksheet.py --grade 3 --count 30 --output worksheet.html

📁 文件结构

plugins/math-worksheet/
├── .atomcode-plugin/plugin.json    # 插件清单
├── README.md                       # 使用说明
├── scripts/
│   └── math_worksheet.py           # Python 出题脚本
└── skills/
    └── math-worksheet/
        └── SKILL.md                # AI 调用指令

👤 作者信息

  • 作者:心栖智学
  • 邮箱:36114870@qq.com
  • 许可:MIT
likedislike
合并受阻
Ggcw_pQGZdeQf
7月3日 修改了pull request 的描述
Ggcw_pQGZdeQf
7月3日 推送  1 个提交:476348f3-chore: add author email to README
Ggcw_pQGZdeQf
7月3日 推送  1 个提交:40350227-chore: add author info to SKILL.md
atomgit-bot
atomgit-bot成员
7月3日 评论:

AtomGit AI 助手使用指南

在 PR 评论中使用命令即可触发。支持在普通评论和代码行评论中使用。

功能 命令 说明
代码审查 /ai review 检查代码质量、潜在问题、安全风险
PR 摘要 /ai summary 生成 PR 变更内容的结构化摘要
代码解释 /ai explain 解释代码变更的逻辑和意图
自由提问 @atomgit-bot <问题> 询问关于本 PR 的任何问题
帮助 /ai help 显示此帮助信息

免责声明

AI 助手可能存在误判,请结合自身判断。可以对评论点 👍 或 👎 帮助我们改进。

likedislike
不准确?
atomgit-bot
atomgit-bot成员
7月3日 评论:

变更摘要

此次 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 等参数,支持灵活的一键出题操作。
likedislike
不准确?
此处折叠了51条消息 查看更多
atomgit-bot
atomgit-bot成员7月30日进行代码检视2
plugins/math-worksheet/scripts/math_worksheet.py
已过期
@@ -0,0 +157,4 @@
157+ value = p * k // 100 # 已知部分
158+ if value == 0:
159+ value = 1
160+ k = 100 // p
atomgit-bot
atomgit-bot7月30日评论:

🔵 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(...) 调用。

likedislike
不准确?
System
系统消息系统
7月30日 评论:

changed this line on 1abdd502 view diff detail

Ggcw_pQGZdeQf
7月30日 推送  1 个提交:1abdd502-fix: 修复第6轮审查指出的3个P3问题
atomgit-bot
atomgit-bot成员
7月30日 评论:

AtomGit AI 助手使用指南

在 PR 评论中使用命令即可触发。支持在普通评论和代码行评论中使用。

功能 命令 说明
代码审查 /ai review 检查代码质量、潜在问题、安全风险
PR 摘要 /ai summary 生成 PR 变更内容的结构化摘要
代码解释 /ai explain 解释代码变更的逻辑和意图
自由提问 @atomgit-bot <问题> 询问关于本 PR 的任何问题
帮助 /ai help 显示此帮助信息

免责声明

AI 助手可能存在误判,请结合自身判断。可以对评论点 👍 或 👎 帮助我们改进。

likedislike
不准确?
atomgit-bot
atomgit-bot成员
7月30日 评论:

变更摘要

本次 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 等参数,同时对输出路径进行工作目录范围校验以防止路径穿越。
likedislike
不准确?
atomgit-bot
atomgit-bot成员
7月30日 评论:

代码审查

✅ 未发现问题

likedislike
不准确?