NovaOJ 维护及更新日志

Woshiluo 2019-05-10 19:29:59 2019-05-22 23:00:52

5 月 21 日

在 2019/05/21 ,NovaOJ 进行了热更新

本次更新改进了以下部分

  • 跟进 SYZOJ 版本到 b6dd004
  • 重新添加 复制题目样例功能(在 5 月 10 日更新时该功能被移除)

因维护时间短暂,NovaOJ 有许多尚未发现的 Bug ,希望您理解并及时报告 Bug 给我们


5 月 21 日

为 NovaOJ 的 http 访问添加了 301 跳转(跳转至 https 访问)。

现在不添加 https 访问 NovaOJ 不会再触发 403 错误。


5 月 10 日

因为功能和架构更新,NovaOJ 在 2019/05/10 16:50 ~ 19:30 期间进行了下线维护

本次更新了以下几点

  • 带高亮的新编辑器
  • 跟上 SYZOJ 最新版本(现在还能跟上简直是奇迹)
  • 数据库更新

这应该是 CTS / APIO 2019 前最后一次更新了

在此,NovaOJ 管理组祝各位 CTS / APIO 2019 RP ++


5 月 9 日

在本次更新中,我们对翻页机制进行了改进。

我们采用了类似 Atcoder 的翻页方式,采用倍增式翻页。

效果大概是这样的:

pages.png

Enjoy it!


5 月 7 日

因服务器反向代理模块和网页服务 (Apache2) 的更新,Nova OJ 在 2019/05/05 ~ 2019/05/07 期间进行了维护

本次更新有以下改动

  • 降低 出现 服务不可靠 / 安全错误 的几率
  • 增加 TLSv 1.3 支持
  • 增加 brotli 压缩支持

4 月 9 日

NovaOJ 图床上线。

图床的注册需要邀请码,需要注册的话请联系woshiluo@woshiluo.site。


3 月 31 日

修复了邮箱验证不可用的问题。


3 月 26 日

因 新功能添加 的原因, NovaOJ 在 2019/03/26 20:30 - 22:30 进行了下线维护

本次更新,添加了以下功能:

  • 用户组模式 添加
  • 新的运势 添加

因本次更新涉及大量更改,故可能会出现一些意料之外的错误,如有任何 Bug ,请发送邮件至 woshiluo@woshiluo.site


3 月 23 日

以下内容来自 LiberOJ 公告 ,因我们也滚动更新到了最新分支,故发布相同公告
因 NovaOJ 目前题目数量属于可控访问内,望各位题目管理员尽快排查和更新题面

同时,我们也认为,新的渲染方式与 Markdown 语法规范,可以使我们的书写更加轻松,整齐
关于更加详细的 Markdown 书写风格,我们建议您参考 这篇指南

3 月 23 日更新,切换 Markdown、数学公式、代码高亮的渲染方案为 syzoj-renderer,其后端为:

  • Markdown:markdown-it(原为 marked
  • 数学公式:MathJax(原为 KaTeX + MathJax,为避免兼容性问题去除了 KaTeX
  • 代码高亮:Pygments(未改变)

其中 Markdown 和代码高亮使用 Redis 缓存。

因新的 Markdown 渲染器符合 GFM 标准(旧的不符合),一些 Markdown 文本在新旧的渲染器下会得到不同的结果,这导致了一些破坏性改动

  • 强调(倾斜加粗)语法不再在当内部的最后一个字符为标点且右侧外部的第一个字符为非空白字符时生效(markdown-it/markdown-it#410
    • 受影响的例子:**Lorem.**Ipsum
    • 对于英文,空格应当被添加到每个非行尾标点右侧,所以规范的英文文本不会出现这种错误。
    • 对于中文,请考虑使用 HTML 标签 <em></em><strong></strong> 代替 Markdown 语法,或将标点符号从强调语法中移出。
  • HTML 块中的行内 Markdown 语法会失效(markdown-it/markdown-it#506
    • 受影响的例子:<td>$2n+1$</td>
    • 该问题普遍存在于描述题目数据范围的表格中,原始的 HTML 代码常常被用于编写含有单元格合并的表格。
    • HTML 表格已被自动处理,表格以外的 HTML 需要手动处理。
  • 由于 cheerio 的一个 Bug(cheeriojs/cheerio#1101),所有由 MathJax 渲染的数学公式在一些老旧(不支持 SVG)的浏览器(如 Safari)下显示为空白。(该 Bug 在之前的渲染方案中已经存在,但由于之前的大部分公式由 KaTeX 渲染,该 Bug 未被发现。)
    • 已修复。

在新的渲染方案中,为了实现合并单元格,Markdown 表格中相邻且具有相同内容的多行与多列将被合并(列上的合并优先于行上的合并,如果列上合并完后行上仍能合并,则继续合并,详见 markdown-it-merge-cells 的实现),如:

| 1 | 1 | 3 | 4 | 5 |
|:-:|:-:|:-:|:-:|:-:|
| 1 | 1 | 2 | 2 | 6 |
| 1 | 1 | 2 | 2 | 7 |
| 1 | 4 | 3 | 5 | 5 |

将生成:

1 3 4 5
1 1 2 6
7
4 3 5

旧的题面、比赛、文章、回复中的所有以 HTML <table> 编写的表格均已被自动替换为 Markdown 表格,以 rowspan 和/或 colspan 属性标记的单元格合并已被迁移到新的合并单元格方式(原有的 HTML 代码被以注释的形式保留)。


3 月 21 日

因 Bug 处理 版本更新 及 功能性更新,NovaOJ 在 2019/03/21 17:30 - 20:30 进行了下线维护

对给位同学们造成的不便,NovaOJ 管理组在此向各位同学们表示抱歉

本次维护工作更新/修复了以下几点:(没错,一下午完成了很多工作)

  • 加入了对 C++ 11/14 的支持
  • 对 MySQL 进行了更新(5.7 => 8.0),访问效率可能有小幅提升
  • 将 SYZOJ 更新到最新版
  • 添加了邮箱验证/重置密码的功能
  • 修复了 rating 系统的 bug ,并重新计算了 rating
  • 修复了之前无法添加比赛描述的 bug

因为在更新过程中进行的数据库迁移可能会丢失数据,若有用户发现使用问题,请立即联系 NovaOJ 管理组,我们会尽快回复

感谢各位对 NovaOJ 的支持!


3 月 19 日

经过不到 15 分钟的瞎搞,我们成功地给 NovaOJ 加上了多线程评测功能!

现在 NovaOJ 正在以 4 线程进行评测,对于一些时限较长的题目,单次提交的总评测时间将会降低不少。

多线程评测的相关实现我们参考了 memset0的文章 ,在此表示感谢。