我觉得 Polygon 太难用了,于是我让 AI 造了这个……

Getaway_Car

感谢 @JDScript0117 赞助的大量 Token!

TaskWeave——一体化的本地造题平台

你是否还在为:

  • Polygon 访问速度太慢、操作不便。
  • 不会编写 TeX 题面。
  • 洛谷配置 config.yml 与计分脚本过于繁琐。
  • LemonLime 配置比赛重复且枯燥。
  • 多平台题目格式不一致。
  • 太懒了又没人帮你造题。
  • ……

而烦恼?快来试试 TaskWeave 吧!这里有:

  • 本地的造题服务,支持与 Polygon 同步。
  • 支持 Markdown 与 TeX 混用并导出 TeX 的编辑器。
  • 一键导出题目数据与 config.yml 与计分脚本的功能。
  • 一键生成 LemonLime 可评测包的功能。
  • 导入 / 导出多平台(Codeforces & Polygon,洛谷,Hydro,JOI & AtCoder 风格)题目格式的功能。
  • 帮你干活的 AI(需设置 API)。
  • ……

下载:GitHub Releases,支持 Windows x64 与 Linux x64。

Feature:Codeforces / Polygon Workflow

几乎支持 Polygon 的所有功能,包括但不限于:

环境

  • 支持配置多种语言,包括但不限于 C++、Python3、PyPy3、Java、Rust……

题目

  • 多语言题面 / 题解。题面支持分段。
  • defs.toml 宏包,编辑器中键入 \ 即可自动补全。
  • 样例与题面样例,与 Test Cases 染色。
  • testlib.h,Solution,Generator,Validator,Checker,script.txt。
  • Stress(对拍),Invocation(批量评测)。
  • IO 交互题。
  • 导出 Package。
  • 自动检查功能。

比赛

  • 预览整场比赛的题面与题解。
  • 导出题面与题解。支持格式:PDF、TeX、HTML、Markdown。
  • 添加比赛说明。

同步

在设置中绑定 Polygon API Key 后,即可从 Polygon 拉取题目与比赛。本地编辑过的题目也可以同步到 Polygon 上。同步时,会自动将文件格式转换为 Polygon 支持的格式(如 Markdown 转换为 TeX,若转换不成功会弹出提示),并展示与 Polygon 端的 diff。也可以同步整场比赛。

Feature:AI 造题

在设置中绑定 AI 后,即可在题目或比赛页面使用 AI。本质上是做了一个 Agent。你可以使用 AI 造题或检查,应用内置了大量常用 Prompt。支持设置价格、统计用量。目前支持的协议:Anthropic、OpenAI Chat Completions、OpenAI Responses。

Feature:CNOI 向适配

  • 一体化题面(对应 Codeforces & Polygon 的分段题面)。
  • 支持 Markdown 与 TeX 混用。
  • 题目的子任务捆绑、依赖与计分(这真的是 CNOI 吗)。
  • 内置了部分 OI 题面中的常用文本。以 \OI 开头(如 \OIInputFile、\OISubtask)。
  • 支持设置大样例。
  • 支持 Grader 交互题。
  • 比赛支持导出 CNOI 题面(内置 cnoi-statement-generator)。
  • 比赛支持导出 down.zip,包含 CNOI 题面与所有样例。
  • 比赛支持导出 LemonLime 可评测包,只需要在评测机上使用生成的脚本编译 Checker,无需额外配置就可以开始评测。

Feature:多平台支持与兼容模式

多平台支持

目前支持多种格式的导入与导出:

  • Polygon Package。
  • 从 Hydro 上整题下载的格式。
  • Hydro 的 FPS 格式(XML)。
  • 洛谷的 data.zip,包含数据、config.yml 与 score.txt(score.txt 需手动粘贴到洛谷的计分脚本中)。
  • JOI / AtCoder 格式(in 与 out 文件夹中存放若干个 .txt,对 OI 极其不友好)。
  • 纯数据包。
  • LemonLime 评测包(整场比赛导入)。

兼容模式

注意:不推荐使用兼容模式造题。兼容模式的主要目的是存放不完整的题目。

上文中提到的许多格式都未包含完整的题目,常常会缺失 Solution、Generator 等重要文件,并包含了额外的输出文件。于是导入此类包后会自动进入兼容模式。兼容模式下,大部分功能如对拍、批量评测等均不可用。

兼容模式下,你可以:

  • 手动 / 让 AI 补全缺失文件并退出兼容模式。
  • 使用 Solution 重造输出。
  • 配置子任务。
  • 导出题目。

你同样可以将兼容模式下的题目正常加入比赛并导出各种格式。因此,兼容模式更多是作为题目格式的中转站,而不是为了造题使用。

Other Features

  • 所有信息均存储在本地(使用 AI 或与 Polygon 同步时,相关内容会发送到对应服务)。
  • 导入时恢复原包中的子任务配置;没有配置时,可按文件名(如 xxx-yyy)一键识别子任务。
  • 支持管理题目文件夹 / 比赛文件夹。
  • 各个子任务可单独设置 Validator。
  • ……

Notes

  • 本地评测需要安装 g++(Windows 可使用 MinGW-w64)。
  • CNOI 题面所需的宋体、黑体、楷体不随应用分发:Windows 自带;Linux 需将 simsun.ttc、simhei.ttf、simkai.ttf 放到 ~/.taskweave/fonts/。
  • 本地新建 Testset 后,需手动在 Polygon 端创建。
  • 平台不对 AI 产生的后果负责。

License

TaskWeave 以 GNU Affero General Public License v3.0 或更高版本(AGPL-3.0-or-later)开源,源码见 GitHub。你可以自由使用、修改和分发;分发修改版,或让他人通过网络使用修改版时,需要以同一许可证提供完整源码。

内置的第三方组件保留各自的许可证,详见 THIRD_PARTY_NOTICES.md:

  • CNOI Statement Generator(AGPL-3.0):OI 题面排版的编译模块与模板。
  • testlib 与 Testlib for Lemons(MIT)。
  • LemonLime 原生比较方式的适配(GPL-3.0-or-later)。
  • Fira Mono(SIL OFL 1.1)、Latin Modern 与 New Computer Modern(GUST Font License)字体。
  • typst.ts、Monaco Editor、KaTeX、Vue、Naive UI、Fastify 等开源依赖。

宋体、黑体、楷体的许可不允许随应用分发,因此不包含在 TaskWeave 中。TaskWeave 与 Codeforces、Polygon、洛谷、Hydro、AtCoder、LemonLime 均无关联,相关名称归各自所有者。

  • Title: 我觉得 Polygon 太难用了,于是我让 AI 造了这个……
  • Author: Getaway_Car
  • Created at : 2026-10-30 08:00:00
  • Updated at : 2026-11-03 21:10:46
  • Link: https://getawaycar1024.github.io/article/我觉得 Polygon 太难用了,于是我让 AI 造了这个……/
  • License: This work is licensed under CC BY-NC-SA 4.0.
Comments