Tuack-NG 是一套用于辅助 OI/ACM 竞赛题目开发的命令行套件,但因其是 CLI 工具,上手门槛较高。
Tuack-GUI 旨在解决这一问题:为 Tuack-NG 提供一个美观、跨平台的图形化界面,让使用者无需记忆和输入命令,即可完成题目工程的配置与各项操作,扩大用户群体、降低上手难度。
- 图形化配置
conf.json(表单 + 高级 JSON 编辑器),无需手改配置文件 - 按钮化执行 Tuack-NG 命令,无需手敲 CLI
- 现代化的界面
- 工程树展示(contest → day → problem 三层结构)
- 常用字段图形化表单(名称 / 标题 / 类型 / 时限 / 空限 / 子目录 / Subtask / 样例等)
- 高级原始 JSON 编辑与校验(修改任意字段)
- 保存时保持字段顺序与格式,避免破坏手改内容
- 生成工程(
gen:contest / day / problem / data / samples / code) - 测试题解(
test,解析result.csv渲染评测记分板) - 渲染题面(
ren) - 数据生成(
dmk) - 数据校验(
validate) - 批量修改配置(
conf) - 导出评测系统(
dump) - 文档检查 / 修复(
doc) - 命令输出流式展示、可取消、进度显示
- 内置 Tuack-NG 二进制与资源,开箱即用
- 支持切换外部 Tuack-NG 可执行文件路径
- Windows / macOS / Linux 三平台安装包
flowchart LR
RC["v1.0.0-rc3(当前)"] --> M1["M1 稳定化:错误提示 / 打包自检"]
M1 --> V1["v1.0.0 正式版"]
V1 --> M2["M2 评测与数据:记分板增强 / 测试点高级字段"]
V1 --> M3["M3 渲染与模板:ren 模板管理 / PDF 预览增强"]
M2 --> V11["v1.1"]
M3 --> V11
V11 --> M4["M4 分发与生态:自动更新 / 签名 / 包管理器"]
M4 --> M5["M5 macOS(Nix 构建)"]
M5 --> M6["M6 编辑能力:内置编辑器、i18n"]
日常开发在 dev 分支进行,稳定版本切出维护分支并行修 bug:
%%{init: {'gitGraph': {'showBranches': true, 'showCommitLabel':true, 'mainBranchName': 'main'}} }%%
gitGraph
commit tag: "v1.0.0-rc3"
branch dev
commit
checkout main
commit tag: "v1.0.0(稳定通道)"
branch 1.0
commit
commit tag: "v1.0.1"
checkout dev
commit tag: "v1.1.0-alpha.1"
switch main
merge dev
| 里程碑 | 内容 |
|---|---|
| M1 稳定化 | 报错信息再完善(反馈问题时能直接看到原因)、打包产物装后自检、正式版发布准备 |
| M2 评测与数据 | 记分板实时刷新与历史记录、args / subtasks / checker 依赖的可视化编辑 |
| M3 渲染与模板 | ren 模板管理(预览图 / 自定义模板目录)、PDF 预览缩放翻页 |
| M4 分发与生态 | 自动更新、代码签名、AUR / Nix / winget / Scoop |
| M5 macOS | 用 Nix 构建 Tuack-NG 与 Tuack-GUI,提供 macOS 包(Tuack-NG 尚无 macOS 预编译二进制) |
| M6 编辑能力 | statement.md / 生成脚本内置编辑器、工程模板预设、中英文切换 |
- 桌面框架:Tauri 2(Rust 后端 + 系统 WebView)
- 前端:React + TypeScript + Tailwind CSS
- 构建:Vite + pnpm
后端通过 CommandRunner 抽象屏蔽底层调用方式:
前端 ──(Tauri IPC, 异步 JSON)──▶ 后端
├─ CliRunner (子进程调用 tuack-ng,当前方案)
└─ RpcRunner (JSON-RPC 客户端,待 Tuack-NG 提供接口后接入)
前端只通过语义化命令(如 gen_contest / run_test / read_config)与后端交互,待 Tuack-NG 暴露 JSON-RPC 接口后,会有计划迁移。
Warning
以下为开发环境搭建说明,仅使用请参考 下载 栏目
pnpm install
pnpm tauri dev通过 GitHub Releases 下载所需平台版本。Nix 与 AUR 的支持在计划中。
感谢以下同学为本项目的开发提供支持(✨):
Vesperon 🎨 |
Qaaxaap 💻 🤔 📖 🎨 🚧 |
Weihao Cheng 🎨 |
Copyright (C) 2025-2026 Tuack-GUI Develop Team.
本项目以 Affero General Public License 3.0 或更高版本获得许可,详见 LICENSE。