生态概览
工具链
Standard Ranklist
这是 srk 核心。包含:
- 规范文档
- TypeScript 类型定义
- JSON Schema
对于开发者,它可以用来:
- 引入类型声明,使用 TS 开发上层工具和应用:
bash
npm install -D @algoux/standard-ranklisttypescript
import type * as srk from '@algoux/standard-ranklist';
const myRanklist: srk.Ranklist = { ... };- 使用 JSON Schema 为 JSON 添加自动补全和验证,或搭配其他校验工具:
json
{
"$schema": "http://json-schema.org/draft-07/schema#",
"$id": "https://unpkg.com/@algoux/standard-ranklist@latest/schema.json",
"contest": { ... },
"problems": [ ... ],
"series": [ ... ],
"rows": [ ... ]
}Renderer Component
仓库: algoux/standard-ranklist-renderer-component
srk 的 Web 渲染组件,可以用它渲染榜单。它已被用于:
- 过往多届 CCPC 官方榜单页面
- RankLand
→ 详见 Renderer 渲染组件
Utils
仓库: algoux/standard-ranklist-utils
srk 实用工具库,提供 srk 数据处理的常用功能:
- 数据验证
- 排序和计算
- 静态榜单和提交记录列表的相互转换
- 其他实用工具函数
→ 详见 Utils 工具库
Convert-to
仓库: algoux/standard-ranklist-convert-to
格式转换工具,可以将 srk 数据转换为其他平台和工具的格式,包括:
- Codeforces Gym 格式
- Excel 表格
- Virtual Judge Replay 格式
→ 详见 格式转换工具
典型工作流
对开发者来说,很多场景都适合使用 srk 生态,如:
- 生产 — 增强你的 OJ、工具或服务,只需使用原生或经过转换的 srk 数据格式
- 渲染 — 使用 Renderer 组件在自己的应用中展示榜单
- 分析 — 使用 Utils 和 Convert-to 工具对榜单数据进行提取和批处理
平台
RankLand
RankLand 是基于 srk 的数据分发平台。你可以轻松地:
- 浏览官方维护和社区贡献的历年竞赛榜单数据
- 通过 Playground 在线调试 srk 数据
- 接入你管理的比赛,获得稳定可靠的实时外榜分发服务和数据归档服务 内测
- 使用 Kessoku Series 套件,为你的比赛提供直播导播能力,极大丰富比赛体验 内测