一个纯前端的算法筛选与导出小工具。提供层次分类模式与算法分类模式,可标记掌握情况并导出图片/PDF,适合自查或展示掌握清单。
- 层次分类模式:按入门/普及/提高/省选/NOI 分块展示,每个分类一行,点击算法即可标记/取消。
- 算法分类模式:类似思维导图的分类视图,按大类-小类展开,点击标记/取消。
- 多重筛选:按层次、分类、标签搜索过滤;可显示已选或未选;批量全选/反选/清空。
- 导出:当前模式可导出 PNG/PDF;算法分类模式额外支持导出分类思维图。
- 状态保存:选中状态存储在浏览器 localStorage,刷新不丢失。
- 数据来源:算法清单与层次源自 OIWiki/竞赛大纲,存放于
data/algorithms.json,并在app.js内置 fallback,支持直接 file:// 访问。
- 直接打开
index.html即可本地使用;如需本地服务器可运行:然后访问python -m http.server 8000
http://localhost:8000/。 - 选择模式、筛选、点击算法标记掌握;右侧按钮可显示已选/未选、批量操作或清空筛选。
- 导出:根据当前模式选择导出图片或 PDF,或在算法分类模式导出分类思维图。
index.html:页面骨架与 CDN 依赖(html2canvas + jsPDF)。styles.css:深色渐变风格、按钮与模式布局。app.js:数据加载、筛选、模式切换、导出逻辑与本地存储。data/algorithms.json:算法/分类/层次数据源。
- 修改
data/algorithms.json以调整算法、分类、层次或标签;同步更新app.js内的FALLBACK_ALGORITHMS(用于 file:// 模式)。
- 静态托管即可(GitHub Pages、Vercel、Nginx 等);无后端依赖,无构建步骤。
- 算法分类与层次参考 OIWiki/竞赛大纲,界面与交互为本项目设计。