ZXSUB Tools · Build Spec
v1.1.0
2026-10-19 · 仲夏·字幕协同工作台
跨版本
这一版换掉的是底座:账号服务从 PHP 改成一个常驻的 Go 单文件进程,前端补上路径选择与组件定位,界面统一到新字标。功能位置没有大改,但部署方式与排错路径变了。
RuntimeGo 1.23 · 静态链接
API 体积5.4 MB / 单文件
前端 gzip≈ 110 KB
运行时依赖react + react-dom
01 · 变更清单 8 items
| S-01 | 后端改为 Go | 账号 / 会话 / 字幕组 / 成员与权限全部搬进 server/go;数据写 JSON,落盘用临时文件替换,进程内互斥。旧 PHP 入口保留,回滚只需把 nginx 那段换回 rewrite。 |
| S-02 | 常驻服务 | systemd 单元 zxsub-api.service,只监听 127.0.0.1:8788,崩溃自动拉起。nginx 由「重写到 index.php」改为反代。 |
| S-03 | 全站更名 | 仲夏·字幕协同工作台 ZXSUB Tools。字标图、窗口图标、网站 favicon 换成同一套;窗口标题、产品名、Cargo 描述一并改。 |
| S-04 | 路径可选 | 桌面端「选择…」弹系统对话框,选完是绝对路径;网页端不假装能选,直接说明浏览器不给磁盘路径。 |
| S-05 | 运行组件 | ffmpeg / mkvmerge / MakeMKV / eac3to / DGIndexNV 各一行,可填可点选,命令按填的位置生成。这些程序不内置:一个静态 ffmpeg 就有几十 MB。 |
| S-06 | 开发进度页 | 跨版本规则从前提到列表上方做图例;每个版本单页加固定返回条并标注与上一版的关系;「查看」一律新标签页。 |
| S-07 | 侧栏与首屏 | 侧栏品牌换成字标图、身份收成一行灰字、退出登录降为小号文字按钮;落地页首屏换成真实界面截图,按钮宽度随文字,加入克制的滚动与悬停动效。 |
| S-08 | 细节修整 | 退出登录摘掉表单按钮骨架(原先 15px 内边距 + 620 字重,成了一块抢眼方牌),并对齐到账号名那一列;外链项「主页」的箭头从等宽字体挪到文字后面;站标链接去掉 sizes="any",不再回退请求站根 /favicon.ico。 |
02 · 验证 7 checks
| V-01 | 公开接口 | /api/ 返回 runtime: go;登录、组清单、注册均通 | PASS |
| V-02 | 数据隔离 | /api/.data/zxsub.json 直连 404;只有进程能读 | PASS |
| V-03 | 旧账号可用 | bcrypt 哈希原样迁移,admin 登录后组与权限不变 | PASS |
| V-04 | 前端类型 | tsc --noEmit 零错误 | PASS |
| V-05 | 桌面端 | 对话框插件编入,目录选择走系统窗口 | PASS |
| V-06 | 进度页 | 21 个版本一版一条;21 个单页都有返回条 | PASS |
| V-07 | 全量回归 | 45 条用例全过;控制台零报错,零非 2xx 请求 | PASS |
03 · 实拍 1 shot
项目 / 流水线 · 侧栏使用新字标,面板边缘恢复到能看见轮廓
关于「把 ffmpeg 封进 exe」:客户端现在是 3 MB 的单文件,一个静态 ffmpeg 就有 60–120 MB,直接塞进去会把「免安装、秒开」这件事毁掉。所以做成可指定路径:装在 PATH 里就按名字调用,装在别处就在「运行组件」里点一下,命令照你填的位置生成。