Commit Graph
572 Commits
Author SHA1 Message Date
xuyueandClaude Opus 5.5 dc89184488 fix(比赛): 「比赛信息」里老师贴的截图不会被压扁、点一下能放大;弹框改成点开,不再鼠标一挪就收起
Deploy / deploy (push) Canceled after 0s
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-10-14 08:54:01 +08:00
xuyueandClaude Opus 5.5 f0969f1458 fix(公告): 公告里的截图在窄屏上不再被压扁;点一下图片放大看,点任意处或按 Esc 关掉
Deploy / deploy (push) Canceled after 0s
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-10-14 08:44:11 +08:00
xuyueandClaude Opus 5.5 7e68e11371 feat(题目页): 手机上写代码顺手多了:键盘上面多一排常用符号(括号、引号、冒号、缩进…点一下就进去,括号自动配对),代码字号改小、长行折行不再看不见右半截;输入输出说明上下排、例子不再被左边两列标签挤窄;题单里那条不再超出屏幕
Deploy / deploy (push) Canceled after 0s
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-10-13 22:56:02 +08:00
xuyueandClaude Opus 5.5 3dbdc7cb1b fix(自学): 手机上读课好读多了:长代码不再被截掉半行(折行接着缩进),表格不再一字一行,填空的注释不再折成像另一行代码、空也大了;往下读时底栏收起、读到课末不再有两个「下一课」;点下一课落在新课开头而不是末尾;输出预测不再把同一个问题问两遍
Deploy / deploy (push) Canceled after 0s
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-10-13 22:40:39 +08:00
xuyueandClaude Opus 5.5 4c47e9389b fix(自学): 手机上「代码排序」「分组」写明先点一下、再点去处,电脑上分组仍提示拖动
Deploy / deploy (push) Canceled after 0s
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-10-13 22:27:23 +08:00
xuyueandClaude Opus 5.5 96a1c3808f fix(自学): 手机上「代码排序」「分组」两种练一练拖不动、做不了,改成点一下选中、再点一下放下也行;填空不再被手机输入法把首字母改成大写
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-10-13 22:24:59 +08:00
xuyueandClaude Opus 5.5 93f80740ef feat(公告): 公告页改成左边列表、右边全文,不用再一条条点开弹框;首页(学生和老师)的公告卡片点一条直接打开那一条,老师首页也改成最新三条
Deploy / deploy (push) Canceled after 0s
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-10-13 22:03:49 +08:00
xuyueandClaude Opus 5.5 06c679579c fix(前台): 地址打错不再是一整页空白,题目、比赛、题单不存在时写明是哪样不存在、给一个回去的按钮
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-10-13 22:03:49 +08:00
xuyueandClaude Opus 5.5 f3956ad6a1 feat(首页): 公告不再只放置顶那条,改成最新三条(置顶的排最前、带标),右边写发布日期
Deploy / deploy (push) Canceled after 0s
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-10-13 21:53:40 +08:00
xuyueandClaude Opus 5.5 801d84c53b feat(登录): 登录框改成点名字:打开就是这个班的名单,点自己再输密码;老师和往届写用户名,这台电脑上次怎么登下次就怎么开;注册完直接登上
Deploy / deploy (push) Canceled after 0s
- 学生登录 / 管理员登录两个页签和「没有我所在的班级」合成一条「写用户名」,入口是名单底下的「名单里没有我」「老师登录」
- 名单按拼音排、可打拼音缩写筛,只剩一个人时回车就选中;这台电脑没登过时先列出全部班级
- 密码错就地标在密码框下面(「密码不对,再试一次」),错太多次按钮灰掉写清 15 分钟
- 注册保留邮箱,错在哪个框标在哪个框下面,按钮改「注册并登录」
- name / autocomplete 原来写在 n-input 上、落在外层 div,没到真正的 input;改走 input-props,点名字时的密码框才真的不会让浏览器填上一个人的密码
- 登法和班级一样跨退出登录保留;authModal store 只管开关,表单回到组件里

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-10-13 21:48:30 +08:00
xuyueandClaude Opus 5.5 127bd6e5ce fix(部署): 搬家脚本把线上的旧 postgres 误认成「已经搬过了」,一步没做就退出
Deploy / deploy (push) Canceled after 0s
旧栈 compose 原名 docker-compose.debian.yml,按容器标签里的文件名包含 compose.debian.yml
来认会撞上。「已经搬过」改为只靠「旧库必须是 16」和「postgresql/ 不存在」两道判断。

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-10-13 21:17:16 +08:00
xuyueandClaude Opus 5.5 625bd49801 chore(部署): 服务器的数据库和 Redis 改由 OJ2 自己起,不用再改 OJDeploy 下的 compose;附一次性搬家脚本
Deploy / deploy (push) Canceled after 0s
compose.debian.yml 去掉外接形态,postgres / redis 固定由本栈起(PostgreSQL 18、Redis 8)。
docker/move-db-into-oj2.sh 把服务器上旧栈的 16 / 7 倒进来:先编镜像、确认机房已断开、
备份、恢复时剥掉 dump 里的 md5 口令(18 只认 SCRAM)、核对行数和网络登录,最后交给 deploy.sh。

生产库口令原来是默认的 onlinejudge(超级用户、5445 对公网开着),脚本要求换成强口令才执行。

本机按线上「之前」的状态完整演练过:停机到恢复 36 秒,行数一致,登录态保住,提交照常判题。

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-10-13 21:10:09 +08:00
xuyueandClaude Opus 5.5 fad43f513f chore(部署): ruff 升到 0.17.0,学生提交前的自动排版结果不变
Deploy / deploy (push) Canceled after 0s
生产库全部 Python 提交去重后 62522 份,0.15.12 与 0.17.0 逐个文件比对输出一字不差。

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-10-13 20:48:32 +08:00
xuyueandClaude Opus 5.5 67590597f1 chore(部署): PostgreSQL 升到 18、Redis 升到 8,附生产库升级步骤
线上的库和服务器的 Redis 不归这几份 compose 管,要按 docs/deploy.md「PostgreSQL 升级」
在服务器上手工换;机房的 Redis 随下次部署换成 8。

本机拿 10-13 的生产备份演练过:恢复后生产库口令是 md5 哈希,18 只认 SCRAM,
不重新存一遍口令的话 api 和机房从网络连都会 password authentication failed。

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-10-13 20:48:32 +08:00
xuyueandClaude Opus 5.5 a085351a2f style(代码配色): True / False / None 和 NULL 改成关键字蓝;SQL 的 COUNT、AVG、ROUND 这些函数是函数色;编辑器的选区、行号、当前行、括号配对也换成 VS Code 的样子
Deploy / deploy (push) Canceled after 0s
True / None 原来和数字一个绿色,VS Code 里是 constant.language,和关键字同色。
SQL 的解析器把 COUNT 当关键字、把 avg 当普通名字,现在后面跟着括号的常用函数一律是函数色。

编辑器的框原来沿用 smoothy / One Dark(亮色选区是淡黄),现在照 VS Code 的默认值:选区淡蓝 /
深蓝、行号青色、当前行是一圈边框。当前行只在有焦点时画,免得自学一课十几个代码块每块第一行都框着。
暗色的底色仍用网站的。

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-10-13 20:35:34 +08:00
xuyueandClaude Opus 5.5 60e96f311e feat(代码配色): 代码里的全角标点(print(“你好”)、!=、全角空格)标红加波浪线;Python 的 int / str / list 一律青绿色,print 一律是函数色,"%.f" 也认了
Deploy / deploy (push) Canceled after 0s
12 万条 Python 提交里,代码里带全角标点的 1947 条全部编译出错,占 Python 编译错误的五分之一,
原来的配色下 “你好” 被认成变量名,看着和正常代码一样。

int 原来是 int(input()) 里棕色、map(int, …) 里深蓝;print 碰上 print"yes"、print(c) 会变成
关键字蓝。现在都照 VS Code。C 的解析器碰到全角标点会把后半行当成没有引号的「字符串」,
这种不算字符串,里面的全角标点照样标。

补的这几种标记合在 shared/codeMarks.ts 一处(原 formatPlaceholder.ts),编辑器和静态代码共用;
Python 解析器的补丁挪到 extensions/pythonLanguage.ts,免得 language → codeMarks → highlight 绕圈。

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-10-13 20:27:03 +08:00
xuyueandClaude Opus 5.5 3b04afc275 style(代码配色): printf 里的 %d、%.2f 和 Python f-string 的 { } 有了自己的颜色;Python 的 from / as / with 和 import 一个颜色,跟 VS Code 一样
lezer 把整个字符串当一个词,占位符另外扫一遍(shared/formatPlaceholder.ts),编辑器挂装饰、
静态代码拆 span,用同一份正则。Python 解析器补了几条 styleTags,编辑器和静态代码共用。
CodeEditor.vue 原来自己抄了一份语言选择,改成用 languageExtension。

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-10-13 20:18:29 +08:00
xuyueandClaude Opus 5.5 a559af0aa9 style(代码配色): 全站代码换成 VS Code 的 Light+ / Dark+ 配色;if / return / #include 单独一色,变量名、\n 也有颜色了
Deploy / deploy (push) Canceled after 0s
色值照 VS Code 内置主题(light_plus / dark_plus 等)。高亮器多分了三类词:管流程的关键字、
变量、转义字符;运算符不再上色。编辑器的底色、光标、选区、行号没动。

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-10-13 20:13:30 +08:00
xuyueandClaude Opus 5.5 b2459b5b8a style(代码配色): 全站代码换成 Catppuccin 配色(亮色 Latte、暗色 Mocha),注释改成斜体
Deploy / deploy (push) Canceled after 0s
色值照官方 palette.json,哪类词用哪个色照官方 style guide:关键字紫、函数蓝、字符串绿、
数字橙、类型黄、注释灰。编辑器的底色、光标、选区、行号没动。

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-10-13 20:04:35 +08:00
xuyueandClaude Opus 5.5 df3b4f0dfd style(代码配色): 全站代码换成 Dracula 配色(亮色用官方浅色版 Alucard);编辑器、题面和教程的代码块、练一练、提交详情的颜色一模一样了
Deploy / deploy (push) Canceled after 0s
原来三套配色各管一块:编辑器是 smoothy / One Dark,正文代码块和练一练是仿 GitHub,
提交详情是 Naive 自带的,同一段 printf 在一课里就有两种颜色。现在静态代码也走编辑器
那套 lezer 解析器,颜色只在 shared/highlight.css 写一份,highlight.js 删掉。

填空题顺手修好:空会把语法搅乱,(humidity ____ 40) 被认成类型声明、humidity 染成类型色,
现在空里先填上答案再解析,答案不输出。

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-10-13 19:49:20 +08:00
xuyueandClaude Opus 5.5 27210eac1b feat(自学): C 教程里没写 main 的片段也能运行——上下套一层灰色的 main,灰的几行改不了;其余没 main 的片段不再给一按就报错的「运行」按钮
Deploy / deploy (push) Canceled after 0s
教程正文里写 ```c main 的片段才套。套的行就在编辑器里,报错行号和看到的一致,复制出去是完整程序。

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-10-13 19:20:45 +08:00
xuyueandClaude Opus 5.5 dae10d0813 style(班级 PK): 「AI 分析」按钮和旁边的「这周 / 这学期」一样高
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-10-13 19:20:45 +08:00
xuyueandClaude Opus 5.5 1d669d2ef3 fix(登录): 「没有我所在的班级」挪到班级下拉框最前面,往届学生不用翻到底找
Deploy / deploy (push) Canceled after 0s
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-10-13 19:04:17 +08:00
xuyueandClaude Opus 5.5 c1cd908fa2 chore(文档): CLAUDE.md 里几处和代码对不上的说法改成现状
Deploy / deploy (push) Canceled after 0s
- 格式化行宽早就回到 Oxfmt 默认的 100,去掉「printWidth: 80 别删」
- 前端不再是「从 ojnext 原样搬来」,大部分页面已重写
- 判题镜像已没有 Node;时间列、入参校验处数这两个会变的数字去掉
- 前端路由 meta 补上 requiresTeacherAdmin,composables 补上 problemJump / teacherHelp

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-10-13 19:00:23 +08:00
xuyueandClaude Opus 5.5 e10a7791a2 fix(演示模式): 演示模式下提交列表和提交详情不再露出别人的代码——投屏装成学生时,和学生看到的一样是「别人的代码看不到」
Deploy / deploy (push) Canceled after 0s
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-10-13 14:58:35 +08:00
xuyueandClaude Opus 5.5 10d2638c23 feat(首页): 学生上课时首页最上面就是这节课和「接着做」,课后先看上次没做完的;老师有了自己的首页,看今天哪些班在上课、点进课堂看板
Deploy / deploy (push) Canceled after 0s
去掉和顶栏重复的找题框、常年空着的比赛卡、底部快捷入口,公告只留置顶那条。
修了当天上午上课、下午再登录时写「上次(今天的日期)还有几道没过」。

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-10-13 14:53:38 +08:00
xuyueandClaude Opus 5.5 c8c38553ec feat(首页): 新接口给老师首页列出今天在上课的每个班——这节课的题、几人交过、全做对几人、最后一次交题的时刻
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-10-13 14:53:38 +08:00
xuyueandClaude Opus 5.5 46b043999b feat(顶栏): 顶栏导航加回「公告」,排在排名后面——首页只放置顶那条了,其它公告从这里进
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-10-13 14:49:25 +08:00
xuyueandClaude Opus 5.5 30bff2acc4 style(后台): 后台各张列表都改成斑马底纹(题目、用户、比赛、公告、练一练记录、标签、AI 报告、成就)
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-10-13 14:45:22 +08:00
xuyueandClaude Opus 5.5 3987ce0ff6 feat(后台设置): 设置页改了就存——开关一拨、班级一加一删立刻存上,网站名停手半秒再存,右上角写「已保存」
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-10-13 14:45:22 +08:00
xuyueandClaude Opus 5.5 0ee5444ede feat(后台设置): 设置页重排成网站、班级、开关、判题机几块,保存挪到右上角;班级按年级分组不用再拖;判题机写出多久没动静;AI 小助手(MaxKB 挂件)整个删掉
Deploy / deploy (push) Canceled after 0s
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-10-13 14:37:35 +08:00
xuyueandClaude Opus 5.5 20a6f667d8 refactor(设置): 站点配置去掉从来没人读的网址、简称、页脚三项和 AI 小助手开关
库里 options 表那几行旧值留着,没有代码再读。

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-10-13 14:37:35 +08:00
xuyueandClaude Opus 5.5 ee649b81b1 feat(后台成就): 成就按指标排成阶梯,一组一行从低到高,每档写解锁人数和占全部学生的比例,下架的变淡;点一档就编辑,删除挪进编辑框
Deploy / deploy (push) Canceled after 0s
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-10-13 14:32:33 +08:00
xuyueandClaude Opus 5.5 c33b084788 fix(后台成就): 成就指标的名字改成大白话(「AC 题目数」→「做对的题数」这类)
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-10-13 14:32:33 +08:00
xuyueandClaude Opus 5.5 6470f56f87 fix(后台): 用户、题目、比赛、公告、标签几张列表的操作不再收进 ⋯,直接摆在行尾;名字和题目那列不再吃掉整行的空,创建日期不再折成两行
1366 宽的屏上题目列表、比赛列表的按钮都放得下;题目的知识点多于两个时只摆一个加「+N」。

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-10-13 14:29:56 +08:00
xuyueandClaude Opus 5.5 bd3a57468f feat(后台公告): 公告列表一行一条,「编辑」常驻、置顶和删除收进 ⋯;改公告时标题、类型、置顶、学生看得到排一行,保存挪到右上角
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-10-13 14:21:49 +08:00
xuyueandClaude Opus 5.5 b93d4d83a1 fix(后台公告): 后台公告列表置顶的排在最前,和学生在首页看到的顺序一样
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-10-13 14:21:49 +08:00
xuyueandClaude Opus 5.5 56071c71bd feat(后台首页): 后台首页改成看板——判题机、今天提交、在线、正在上课一排,全站的数一排,最近 30 天每天交了几次一张图;抽签改成选班级
拿掉要手输班级前缀的班级排名表(前台排名页有)。

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-10-13 14:17:00 +08:00
xuyueandClaude Opus 5.5 1d406a50e4 feat(后台首页): 首页接口带上全站的数(学生、题目、提交、比赛、题单、自学、这周做题的人)、最近 30 天每天提交、系统错误、在线人数和正在上课的班
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-10-13 14:17:00 +08:00
xuyueandClaude Opus 5.5 6e6816436e feat(后台 AI 报告): 左边一份一行、点哪份右边就是全文,不用再弹框、关框、点下一份;从没用过的「PIN」收成一个「固定给他看这份」开关
Deploy / deploy (push) Canceled after 0s
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-10-13 14:11:07 +08:00
xuyueandClaude Opus 5.5 09e5e0bfcf feat(后台 AI 报告): 报告列表带上学生是哪个班的
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-10-13 14:11:07 +08:00
xuyueandClaude Opus 5.5 32f7bcaf8b feat(后台比赛): 比赛列表一行看全——开始时间和多长、几道题、几人参加、学生看得到;期中期末挂标,操作只剩「编辑」「成绩」和 ⋯
Deploy / deploy (push) Canceled after 0s
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-10-13 14:07:24 +08:00
xuyueandClaude Opus 5.5 591c7bcab9 feat(后台比赛): 比赛列表带上每场几道题、几人参加,按开始时间排,复制出来的旧比赛不再跑到最前面
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-10-13 14:07:24 +08:00
xuyueandClaude Opus 5.5 c59e31eeb2 feat(后台标签): 标签页改成知识点、主题左右两栏,一眼看出每个标签挂了几道题;改名、换分类、删除收进 ⋯,没归类的单独放最上面
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-10-13 14:04:06 +08:00
xuyueandClaude Opus 5.5 5561e0bc3a feat(后台用户): 用户列表按班级看、「重置密码」常驻;批量建号粘进名单当场列出会建成的账号,重名和已有的先点出来,建好能下载名单、打印账号条
用户列表去掉 ID、真名、占位邮箱和四颗彩色按钮。下载的名单开头带 BOM,Excel 打开中文不再乱码。

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-10-13 13:56:03 +08:00
xuyueandClaude Opus 5.5 ba823ecb7d feat(后台用户): 用户列表能按班级筛、按用户名排、看出几人从没登录;批量建号前能查重名,新班级建好自动加进班级列表
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-10-13 13:56:03 +08:00
xuyueandClaude Opus 5.5 48738f74d9 fix(题目列表): 老师账号看题目列表也有「状态」列了,自己做对的题打勾
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-10-13 13:46:34 +08:00
xuyueandClaude Opus 5.5 97049d562b feat(后台题目): 题目列表重排——1366 屏上不用横滚就看得到「学生看得到」开关;一行只剩「编辑」和 ⋯,有人交过的题删除直接灰掉;勾几道一次放出、藏起、加减知识点
去掉内部 ID、难度、看不懂的「功能」图标和反馈表情几列;题目名点了就是编辑。

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-10-13 13:27:39 +08:00
xuyueandClaude Opus 5.5 952edbf86f feat(后台题目): 题目列表带上做对 / 做过的人数和「学生看得到 / 藏着的」各几道,能一次放出或藏起好几道题;比赛题目也能按题号搜
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-10-13 13:27:39 +08:00
xuyueandClaude Opus 5.5 567c745432 feat(课堂看板): 讲错误的弹层多一个「题目」按钮,点了左边出题目、右边是他的代码,演示错误时不用来回切
Deploy / deploy (push) Canceled after 0s
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-10-13 13:09:34 +08:00