项目 / 计划:tuack-ng
概述
tuack-ng 项目是重构后的 tuack 项目,旨在提供更加高效和轻量的出题体验。
项目地址:https://github.com/Pulsar33550336/tuack-ng
目前进度效果展示




图中渲染的是 CSPS 2024 试题。
进度 / 计划
正在进行 / 即将开始的子项目
- 整个模块的配置文件等数据结构的定义;项目基础(长期)
- 将会提供
config模块作为配置修改的前端。 - 已经配置好 log 框架。
- 已经配置好整个项目的命令行前端。
- 未来可能支持 i18n。
- ……
- 渲染(
render子模块)
- 目前只有
noi目标模板,来自 CNOI 项目,后期将尝试迁移其他内容。 - 目前已经支持可合并列表等特性。
- 已经支持多个渲染目标模板。
- 已经支持所有功能和 CNOI 项目的拓展语法,基本完成。
- 测试(
test子模块)
- 主要用来进行出题期间的代码测试,类似于 Polygon 的 Solutions。
- 不会设计拿来当评测机,需导出到评测器配置。
- 基本完成,尚不支持 spj, 交互 等题型,不支持 subtask,捆绑测试。
未开始的子项目
- 导入导出(
import&dump)
- 将会支持导入 tuack 的配置文件,导出到评测器配置和 OJ。
- 小工具(
tools)
- 包括格式化,格式检查,等等等等。
里程碑
0.1.0
- 目标:基本完备的渲染和工程文件夹结构,完备的 CI 构建工作流,基本完备的基础设施(比如 wiki)
部分技术细节
- 目标语言:Rust。
- 目标渲染框架:typst。
- 格式转换库:魔改后的 markdown-ppp 项目,已经开源 https://github.com/Pulsar33550336/markdown-ppp。
致谢
感谢 MrPython 的 CNOI tuack 模板。
开源协议
由于采用了 CNOI 中的内容,与 MIT 协议开源的 markdown-ppp 项目,综合下来,使用了 AGPL 3.0 协议。
附录
顺手写一下目前工程文件夹的计划吧,备忘:
注意,这个东西可能不准。
结构:比赛->比赛日->赛题
比赛配置文件:
1 | |
比赛日配置文件:
1 | |
试题配置文件:
1 | |
试题目录结构:
- img: 存储图片
- sample: 存储样例
- pretest: 存储预测试数据
- data: 存储测试数据
- statement.md: 存储题面
项目 / 计划:tuack-ng
http://pulsar33550336.github.io/2025/12/10/项目-计划:tuack-ng/