Repository navigation
Changelog
dxx114514-stack edited this page Oct 1, 2026
·
2 revisions
完整版见仓库 README 更新日志 与 Releases。以下为摘要。
试卷系统
- 新增试卷系统:选择题、判断题、填空题(客观/主观)、大题四种题型
- 试卷 CRUD:教师可创建/编辑/删除,配置时间限制、及格分、最大尝试次数
- 智能评分:客观题自动评分,主观题支持 AI 评分(Ollama)与教师手动批改
- 题面 Markdown + KaTeX 实时预览;Excel 导入(中英文表头映射,配套 15 项单元测试,站内示例
/exam-sample.xlsx) - 新增试卷列表/答题/结果/批改页面与导航入口
Markdown 与渲染修复
- 重写
renderMarkdown解析器:补全列表/引用/表格/围栏代码块/h4–h6 与段落级联,行内单趟分词(修复图片被链接规则吃掉、公式被斜体拆开等缺陷) - 修复嵌入块/公式占位符被浏览器丢弃的问题(
\x00→ 私有区字符\uE000/\uE001) - 修复 Tailwind
prose类与@apply失效(新增预构建css/prose.css),移除 0 引用死文件frontend/css/app.css - 修复
@[url]内嵌网页失效(helmet CSPframe-ancestors改'self') - 新增 Markdown 交互演示页
pages/markdown-demo.html
工程质量
- 测试隔离:数据库测试改用
%TEMP%\NoldOJ-test\独立库,不再读写生产库 - 新增
npm run test:server黑盒安全套件(24 项)与 README「测试」章节 - 启动收敛 IDE 运行残留中间态;启动告警(沙箱回退、
CORS_RESTRICTED=false);补静默空 catch 日志 - 清理死代码(废弃 Sandboxie 加载、重复键、0 引用文件)
- 引入 ESLint(首跑清零 77 项,顺带修出 2 处真实运行时缺陷:提交详情
test_groups未定义、problems.js未导入config) - 新增 CI(
.github/workflows/test.yml:lint-and-test+blackbox两个 job),并修复首跑两类失败:Linux 判题回退路径runUnix拼接 ENOENT、全新库随机 admin 口令致登录 401(新增NoldOJ_INIT_ADMIN_PASSWORD)
- 重大重构:移除 Sandboxie 依赖,改用原生三层安全架构(低完整性级别 + Job Object + 受限令牌/AppContainer)
- 题目详情页左右分栏;比赛上下文(返回比赛按钮、提交自动关联比赛排行)
- 新增 statistics/wordcloud
accepted_count字段、题目页「复制为 Markdown」 - 移除在线用户列表功能;修复 401 误清 token、删除题目 500
- 超管工具:创建用户(随机强密码)、Excel 批量导入用户、注册开关(落盘
config/register.txt热生效) - 题面多样例(
problem_samples+ 幂等迁移) - Markdown 增强:
@[office]/@[echarts]/@[mermaid] - AI 提示(失败 2 次可获取方向提示,60s 冷却)、AI 测试数据生成
- Sandboxie-Classic 三层隔离(后于 v2.0.0 移除)
- 隐私开关:成就/数据看板/收藏三个独立开关,可对其他普通用户隐藏
- 成就/看板/收藏支持
user_id查看他人数据(遵循隐私开关),API 文档补全
-
数据库引擎 sql.js →
node:sqlite(原生同步直写、零依赖;旧库无需转换直接打开) - 新增迁移脚本
scripts/migrate-sqlite.js(备份 + 完整性校验 + 行数统计) - 修复内嵌
@[url]CSP 白名单过窄、非管理员 CreateProcessAsUser error 5
- 公告系统、题目标签与难度、代码 Diff、多文件提交、WebSocket 实时推送
- 比赛排行榜冻结、题单训练计划、讨论/题解区、虚拟比赛、代码查重
- 验证码开关迁至
config/captcha.txt,JWT 密钥迁至config/jwt.txt - API 扩展至 16 模块 100+ 端点、前端 30 页面、单元测试 70+ 用例
| 版本 | 亮点 |
|---|---|
| v1.6.0 | SVG 图形验证码、模糊搜索、用户资料预览、图床限额管理、配置文件体系化(config/ 目录)、Token 刷新锁 |
| v1.5.0 | 黑夜模式、用户偏好语言、Markdown 嵌入语法(bilibili/url/audio/video)、IDE 队列与内存检测、AI 审查注入防护、提交锁、注册限流、OpenAPI 文档 |
| v1.4.0 | Rating 排行榜、LM Studio 代码审查、128KB 长度限制、封禁全拦截、ID 回收复用 |
| v1.3.0 | Markdown + KaTeX 渲染、个性签名/简介、Rating 等级分、文章/题解系统、图床 |
| v1.2.0 | 比赛邀请制与排行榜、首页统计、提交重测/删除 |
| v1.1.0 | 自定义计分脚本、测试分组、管理面板 GUI、su 免密登录 |
NoldOJ · Windows 在线评测系统 · MIT License