HydroOJ 从入门到入土(5)插件集锦(24.5.29 更新)
总有些需求, 未必有啥用, 但是很可爱.
本文将介绍一些插件相关的知识, 并不专业, 因为我不懂 js (逃
1. 关于插件
- 插件使用 js / ts 语言编写.
- 插件功能强大, 分前后端, 可以干任何事情, 所以尽量不要使用来路不明的插件, 除非你能看懂他在做啥.
- 如果想实现什么需求, 都可以写插件解决, 但需要一些前端经验.
- 插件的实现从易到难, 可以分为
改前端页面模版(需要懂Markdown/html)
改前端页面功能(需要懂js/ts/html/css/vue)
改后端功能(需要懂node.js和源代码架构)
- 使用方式:
- 官方插件启用方式:https://docs.hydro.ac/plugins/
- 修改前端页面方式:https://docs.hydro.ac/docs/system/frontend-modify.html
- 自己编写的插件:
- 参考插件内附使用方式
- https://docs.hydro.ac/plugins/#安装 主要步骤:
- 把插件文件夹上传到服务器的某个地方,比如
/root/xxx
hydrooj addon add /root/xxx
(注意要用绝对路径)
- 把插件文件夹上传到服务器的某个地方,比如
2. 官方插件
官方预装插件包 by HydroOJ (内容后附)
https://docs.hydro.ac/plugins/
Hydro 官方目前提供了以下附加组件:
ID | 描述 |
---|---|
@hydrooj/blog | 博客功能 |
@hydrooj/fps-importer | 导入 fps 格式的题目 |
@hydrooj/geoip | 显示用户登录地(需要IP库支持) |
@hydrooj/hydrojudge | 评测组件 |
@hydrooj/import-qduoj | 导入 QDUOJ 导出的题库 |
@hydrooj/login-with-github | 允许用户使用 GitHub 登录 |
@hydrooj/login-with-google | 允许用户使用 Google 登录 |
@hydrooj/migrate | 从 vijos4/HustOJ/SYZOJ/UniversalOJ 升级 |
@hydrooj/recaptcha | 注册时启用 reCAPTCHA 验证码 |
@hydrooj/ui-default | Hydro 的默认用户界面 |
@hydrooj/onlyoffice | 显示 doc/docx 格式题目 |
@hydrooj/sonic | 基于 sonic 的题目搜索增强 |
@hydrooj/elastic-search | 基于 Elastic 的题目搜索增强 |
@hydrooj/vjudge | Codeforces/SPOJ/UOJ/POJ/Luogu |
@hydrooj/prom-client | 导出系统状态至 Prometheus |
大部分插件的配置均可在安装后于 控制面板>系统设置 中找到。
部分插件若安装后没有正确配置可能会影响系统正常使用!
不允许查看 24 小时以前的提交记录
https://docs.hydro.ac/dev/hook.html#示例
import { Context, Time } from 'hydrooj';
export async function apply(ctx: Context) {
// handler 表示路由事件
// after 表示在主逻辑完成后运行,同时支持 before, before-operation, 参照 【插件编写】 章节 【请求流程】
// RecordDetail 为需要捕获的路由名
// #get 表示仅捕获 GET 请求,若无此后缀表示捕获该路由的所有请求
ctx.on('handler/after/RecordDetail#get', (h) => { // handler 系列钩子的一参数为对应的 Handler 实例
// 不允许查看 24 小时以前的提交记录
if (h.rdoc._id.getTimestamp() < new Date(Date.now() - Time.day)) {
h.rdoc.code = '';
}
});
}
3. 题库插件
一本通启蒙插件(v1/v2) by HydroOJ (4.9.17<=ver<=4.9.2x)
- 安装:
hydrooj install https://hydro.ac/hydroac-client-0.0.1.tgz
- 压缩包地址: QQ 群(1085853538)文件
- 注意仔细压缩包内的阅读安装说明, 有问题就多重启几次
一本通启蒙插件(v3) by HydroOJ (>=4.10.1)
- 安装:
hydrooj install https://hydro.ac/hydroac-client.zip
- 如果一直
waiting
, 可以试试执行:hydrooj cli system set hydroac-client.remotejudge-endpoint https://ws.hydrooj.com
- 系统更新之后, 本插件需要同步更新
- 压缩包地址: QQ 群(1085853538)文件
- 注意仔细压缩包内的阅读安装说明, 有问题就多重启几次
BZOJ 远程评测插件 by 小蛐蛐
- 项目地址: Hydro4LVJ
- 安装:
hydrooj install https://img.zshfoj.com/Plugins/judge-client-bzoj.zip
- 压缩包地址: QQ 群(1085853538)文件
- 注意仔细压缩包内的阅读安装说明, 有问题就多重启几次
(免费rmj)洛谷深入浅出程序设计竞赛 - 基础篇(>=4.10.2)
-
压缩包地址: QQ 群(1085853538)文件
-
注意仔细压缩包内的阅读安装说明, 有问题就多重启几次
-
注:此功能由洛谷提供数据支持,题目来自洛谷编写教材《深入浅出程序设计竞赛 - 基础篇》,并带有详细的教程和讲解,点击下列链接了解本书详情。
【官方网店绝赞热卖中!】>>>(https://item.taobao.com/item.htm?id=637730514783)
4. 三方插件
HydroOJ 咕咕倒计时 by liyanqwq
项目地址: liyanqwq/hydrooj-countdown
HydroOJ 云剪贴板服务 by liyanqwq
项目地址: liyanqwq/hydrooj-pastebin-plus
徽章管理页面插件 by wood3
项目地址: wood3/ojtools
可以在控制面板编辑的边栏导航 by wood3
项目地址: wood3/ojtools
可以二次跨域复制题目 by Milmon
项目地址: Molmin/miniprojects/hydrooj-secondary-copy
QQ登录组件 by air.
项目地址: air-adteam/login-with-qq-forhydro
5. 我的插件
取消上传头像功能 by bowen404
项目地址: 15921483570/hydrooj-cancelavatar
注册自动填充随机邮箱地址 by bowen404
项目地址: 15921483570/hydrooj-autoemail
更改上方导航条宽度, 避免点自测开关的时候点到用户名 by bowen404
项目地址: 15921483570/hydrooj-nav-full
调整作业显示顺序,方便管理员管理作业。by bowen404
项目地址: 15921483570/hydrooj-ddlfirst
输入 uid 重置用户密码,方便重置学生密码。by bowen404
项目地址: 15921483570/hydrooj-resetPwd
6. 官方站上的第三方插件
这里的插件需要简单加工一下才能在自己的 OJ 上使用.
名称 | 功能 | 作者 |
---|---|---|
圆角 | 将卡片设置为圆角 | undefined 可爱! LV 10 SU |
Cascadia Code | 在代码框中使用 Cascadia Code 字体。 | undefined 可爱! LV 10 SU |
暗色模式主题重建版 0.1.1 Alpha | 重新调整的 Hydro 暗色模式(部分完成) | NetherDevil LV 10 |
圆角重制版 | 卡片圆角 支持表格表头圆角 | Necho |
洛谷题目跳转插件 | 在洛谷域点击 id 即可跳转到洛谷上对应的题目。 | nomliM (liujiameng) LV 10 |
优化引用块 | 目前仅定义default,note,warn三种样式 | Necho |
隐藏一言 | 隐藏首页的一言 | yzy1 LV 9 |
自动退出题解 | 当 OI 玩家不小心点到题解的时候自动退出。 | gameObject.GetComponent |
Markdown | 域首页、题目、比赛页面在 F12 控制台显示内容 Markdown,在题目页面显示复制来源。 | nomliM (liujiameng) LV 10 |
Smart Hydro | 想要全站的圆角和阴影?启用这个脚本吧!(已完成:主页) | Halcott (HhF03) LV 4 |
调整提交记录页面细节 | 把评测状态卡片 header 的 padding 改了。 | tiger2005 LV 5 |
底部拓展信息 | css追加展示信息,全局圆角,收藏题目行间距,题库搜索圆角。 | symo LV 1 |