我觉得 Polygon 太难用了,于是我让 AI 造了这个……
感谢 @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.