[{"data":1,"prerenderedAt":-1},["ShallowReactive",2],{"project-80239":3},{"id":4,"name":5,"fullName":6,"owner":7,"repo":5,"description":8,"homepage":9,"htmlUrl":10,"language":11,"languages":10,"totalLinesOfCode":10,"stars":12,"forks":13,"watchers":14,"openIssues":15,"contributorsCount":16,"subscribersCount":16,"size":16,"stars1d":17,"stars7d":18,"stars30d":19,"stars90d":16,"forks30d":16,"starsTrendScore":20,"compositeScore":21,"rankGlobal":10,"rankLanguage":10,"license":22,"archived":23,"fork":23,"defaultBranch":24,"hasWiki":25,"hasPages":25,"topics":26,"createdAt":10,"pushedAt":10,"updatedAt":27,"readmeContent":28,"aiSummary":29,"trendingCount":16,"starSnapshotCount":16,"syncStatus":15,"lastSyncTime":30,"discoverSource":31},80239,"shiroha-quiz","reiqr\u002Fshiroha-quiz","reiqr","支持自定义题库导入、练习刷题、模拟考试与错题复习的轻量级刷题应用（现已支持AI核对、AI解析）","",null,"JavaScript",107,12,56,2,0,20,30,51,60,3.34,"GNU General Public License v3.0",false,"main",true,[],"2026-06-12 02:03:59","\u003Cdiv align=\"center\">\n\n> [!NOTE]\n> 最近空闲时间沉迷「黑夜君临」，更新不会很勤快（）祝大家刷题顺利~\n\n\u003Cimg src=\"assets\u002Fpromo4.jpg\" width=\"800\" alt=\"Shiroha Quiz\">\n\u003C\u002Fdiv>\n\n\u003Cbr>\n\n# Shiroha Quiz\n\n\u003Cimg src=\"assets\u002Fshiroha_quiz_ui_assets_v2_cutout\u002Fillus_me_settings.webp\" width=\"160\" align=\"right\" alt=\"看板娘\" \u002F>\n\nShiroha Quiz 一个轻量、开源的刷题工具，支持自导入题库、练习、考试、与多端使用。\n\nShiroha Quiz 解决一个很实际的问题：\n\n> 你手里有题库——Word、Excel、TXT、JSON，或者题目和答案分开的文件。但格式不统一，整理成本高，即使整理完了也只能翻看，没法真正做题。Shiroha Quiz 把它们自动识别导入，变成可练习、可考试、可错题复盘的个人题库。文字层 PDF 作为辅助支持，扫描件 \u002F 图片型 PDF 暂不作为主要推荐格式。\n\n当前项目包含三条线：\n\n- **Web 版**：基础刷题流程完整稳定，题库导入、刷题考试、错题复习均已就绪。\n- **Android WebView 壳版**：Web 资源打包进 APK，离线加载，逻辑与 Web 版一致。\n- **Android 原生 Compose 版**：Kotlin + Compose 原生实现，当前主开发线，暗夜模式、AI 解析、背题模式、斩题功能、智能复习、收藏、快速编辑、错题复盘等增强功能均已落地。\n\n\u003Cbr style=\"clear:both\">\n\n---\n\n### 快速导览\n\n| 想了解什么 | 跳转 |\n|-----------|------|\n| 有哪些功能 | [当前能力](#当前能力) |\n| AI 功能 | [AI 智能功能](#ai-智能功能原生版) |\n| 两个 APK 选哪个 | [Android 双版本说明](#android-双版本说明) |\n| 怎么用 | [使用说明](#使用说明) |\n| 支持什么格式 | [导入格式与策略](#导入格式与策略) |\n| 怎么下载 | [下载与使用](#下载与使用) |\n| 怎么参与 | [参与贡献](#参与贡献) |\n\n---\n\n## 当前能力\n\n- Web 端功能完整，在线即可使用。\n- Android WebView 版，该版本仅过渡参考。\n- Android 原生 Compose 版暗夜模式、AI 解析、表格导入、背题模式、斩题功能、智能复习、题目收藏、快速编辑、顺序练习进度记忆、保存退出继续练习、错题复盘均已落地。\n- 内置 C1 科目一题库，方便首次体验。\n\n### 刷题与考试\n\n**练习模式**\n- 支持随机抽题或题库顺序两种组题方式，偏好自动记忆\n- 单选题\u002F多选题选项选择，判断题对错切换，填空\u002F简答文本输入\n- 支持即时练习与批量练习：即时练习可选择”选择后立即判题”和”答对后自动下一题”，单选\u002F判断题支持”选后自动下一题”，批量练习保留整组提交\n- 支持题目快速编辑：练习中可从题目右上角直接修改当前题目\n- 支持题目收藏：练习中一键收藏题目，在收藏页集中查看\n- 支持背题模式：练习页直接显示答案与解析，不计入正确率、不加入错题本、不生成普通练习记录\n- 支持斩题功能：可把一眼会的题移出普通练习池，并在题库详情中集中管理和恢复\n- 支持顺序练习进度记忆：下次可从上次顺序练习进度继续，退出练习时可选择保存当前位置\n- 支持字号缩放：题干与选项字号可独立调整，紧凑选项模式减少卡片间距适合长题快速阅读\n- 提交后选项着色区分正误，顶部卡片可收起\n- 答错的题自动进入错题本\n- 完成全部题目后展示总结：正确率、错题数、重新练习入口\n\n**考试模式**\n- 按题型自定义题目数量与分值，设置考试时长，偏好自动记忆\n- 实时倒计时，到时自动交卷\n- 答题卡快速跳题，未答题目交卷前提醒，支持滑动切题\n- 考试不受背题模式和斩题功能影响：不会提前显示答案，也不会过滤已斩题\n- 交卷后展示各题型得分、正确率和明细报告\n\n**错题本**\n- 练习与考试中答错的题自动收录，记录首次出错时间和累计错误次数\n- 支持按题库、题型和掌握状态筛选错题\n- 错题本展示“错 X 次 \u002F 对 Y 次”，用于保留进入错题本后的历史累计表现\n- 错题可重新练习，连续答对 2 次后自动标记为已掌握\n- 再次答错会清空连续答对次数，并回到未掌握状态\n- 支持手动标记掌握 \u002F 取消掌握，状态调整不会篡改历史答对次数\n- 支持智能复习模式：根据错题表现自动安排到期复习，首页同步待复习数量\n- 斩题与错题掌握互相独立：斩题用于移出普通练习池，错题掌握用于错题复习状态\n\n**刷题记录**\n- 每轮练习或考试生成一条独立记录\n- 记录详情支持逐题复盘，查看每道题的作答与正误\n- 按时间倒序排列，方便回顾学习轨迹\n\n**多题型支持**\n- 单选题、多选题、判断题、填空题、简答题\n\n### 题库导入\n\n**多格式支持**\n- 上传 `docx` 文件（推荐），也支持 `xlsx`\u002F`xls` 表格、`txt`、`json`、文字层 `pdf` 或粘贴纯文本\n- 原生版支持 docx 内嵌图片提取，Web 版支持 PDF.js 解析\n- 原生版兼容 Web 导出的图片题 JSON：支持旧 Markdown base64 图片和新的 `images` 数组结构\n- **扫描件\u002F图片型 PDF 暂不支持**\n\n**双文件导入**\n- 题目文件和答案文件分别上传，自动匹配题号\n- 支持 “1-10：D A A B C…” 范围格式和 “1.D 2.A” 配对格式\n- 答案文件缺失题号时按顺序自动对应\n\n**识别与预览**\n- 自动识别题号、题干、选项、答案、解析和题型\n- 兼容题型大小写和常见别名，如 `single`\u002F`SINGLE`、`multiple`\u002F`MULTIPLE`、`judge`\u002F`JUDGE` 等\n- 支持分区标题继承题型（如 “一、单选题” 下所有题自动归为单选）\n- 原生版支持共用题干 \u002F 材料题兜底识别，并可将集中答案解析区合并回对应题目\n- 填空题关键词覆盖更广（空白、空格、横线、括号内等），减少简答题误判\n- 识别结果预览：逐题查看题型、答案和异常标记，核对筛选器按需显示\n- 识别失败时可手动切换解析策略或调整文本后重试\n\n**手动修正**\n- 预览中可逐题修改题型、答案和题干\n- 文本编辑器支持查找\u002F替换，可正则匹配批量修改导入原文\n- 支持批量编辑和删除异常题目\n\n**备份恢复**\n- 全部数据一键导出为 JSON 备份文件，Web 端与原生端导出格式互通，可相互导入\n- 原生端导出 ZIP 含图片素材，Web 端同样可直接导入并自动转换\n- 支持批量导出单个题库 JSON\n- 恢复时可选合并或覆盖现有数据\n\n### AI 智能功能（原生版）\n\n- **AI 核对**：导入结果可发送至 AI 自动校验题型、答案和解析\n- **AI 解析**：AI 自动生成题目解析，适合补全缺解析或解析过短的题目\n- 支持 DeepSeek、OpenAI 兼容接口和自定义接口，可配置 API 地址、API Key 与模型名称\n- 支持仅处理异常题、控制单批处理数量、超时时间和保存阈值\n- AI 建议会先进入核对流程，便于人工确认后再写入题库\n\n### 视觉与体验（原生版）\n\n- 暗夜模式 \u002F 浅色模式切换，偏好会持久化保存\n- Shiroha 模式：统一管控开屏图、页面插画和应用图标，可在更通用的场景下关闭角色元素\n- 二级页面支持系统侧边返回映射，减少误退到桌面的情况\n- 阅读显示偏好可调：题干\u002F选项字号独立控制，支持紧凑选项模式\n- 统一的 Design Token 间距与颜色系统，卡片、按钮、底部导航保持一致质感\n\n---\n\n## Android 双版本说明\n\n\u003C!-- ![WebView 壳版截图](assets\u002Fscreenshot-web.png) -->\n\u003C!-- ![原生 Compose 版截图](assets\u002Fscreenshot-native.png) -->\n\nReleases 页面提供两个 APK，根据需求选择：\n\n### WebView 壳版（`*-web-release.apk`）\n\n- 内置完整 Web 页面，离线可用\n- 功能完整，仅做必要维护，不再作为主要开发线\n- 下载约 6 MB\n\n### 原生 Compose 版（`*-native-release.apk`）\n\n- Kotlin + Compose 纯原生实现，当前主要开发线\n- 启动更快，界面更流畅，体积更小（约 5 MB）\n- 暗夜模式、AI 功能、表格导入、背题模式、斩题功能、错题复盘、跨端互通均已落地\n\n| | WebView 壳版 | 原生 Compose 版 |\n|------|-------------|----------------|\n| 定位 | 稳定维护 | 主要开发线 |\n| 流畅度 | 一般 | 高 |\n| 功能完整度 | 完整 | 完整（含 AI\u002F暗夜\u002F背题\u002F斩题\u002F错题复盘等） |\n| APK 大小 | ~6 MB | ~5 MB |\n| 适合人群 | 日常刷题用户 | 想体验原生流畅度的用户 |\n\n> **两个版本可同时安装，互不冲突（包名不同）。**\n\n### 工程结构\n\nAndroid 工程通过 `productFlavors` 维护两个版本，共享同一 Gradle 项目：\n\n| Flavor | 包名 | 技术路线 |\n|---|---|---|\n| `web` | `com.yiqiu.shirohaquiz` | WebView 加载本地 Web 资源 |\n| `native` | `com.reqir.shirohaquiz` | Kotlin + Jetpack Compose + Material3 |\n\n---\n\n## 使用说明\n\n### Web 端快速上手\n\n1. 打开 `apps\u002Fweb\u002Findex.html`，或访问 [在线版](https:\u002F\u002Freiqr.github.io\u002Fshiroha-quiz)。\n2. 进入 **导入题库**，粘贴文本或上传文件。\n3. 系统自动识别题型、选项、答案和解析。\n4. 在识别预览中确认题目无误。\n5. 进入 **刷题练习** 或 **考试模式** 开始使用。\n6. 答错的题会进入 **错题本**。\n7. 定期在 **设置\u002F导出** 中导出备份。\n\n### 原生 Compose 版快速上手\n\n1. 安装 `*-native-release.apk`，进入首页查看当前题库和学习状态。\n2. 在 **导入** 页面上传 `docx`、表格、`txt`、`json` 或粘贴文本。\n3. 在核对页检查题型、答案、解析和异常标记，必要时用全文编辑或 AI 核对辅助清洗。\n4. 在 **练习** 中选择普通练习、即时反馈、自动下一题或背题模式。\n5. 遇到一眼会的题，可以开启斩题功能，把它移出普通练习池。\n6. 答错的题会进入 **错题本**，连续答对 2 次后自动标记为已掌握。\n7. 在 **记录** 中复盘每轮练习或考试的逐题结果。\n\n### 数据备份建议\n\nShiroha Quiz 的题库和记录保存在本地存储中（Web 端使用浏览器 LocalStorage，原生版使用 SharedPreferences）。\n\n建议：\n\n- **重要题库导入后，及时导出全部数据备份。**\n- **换设备、清理缓存、卸载 App 前，务必先导出备份 JSON 或 ZIP。**\n- 从 Shiroha Quiz 导出的备份 JSON\u002FZIP，应在 **设置\u002F导出 → 导入配置 \u002F 备份 JSON\u002FZIP** 中导入。\n- Web 端导出的 JSON 可直接导入原生端；原生端导出的 ZIP 也可导入 Web 端，含图片题库完全互通。\n- 原生端会兼容题型大小写差异和图片字段差异，减少跨端导入时的题型丢失与 base64 文本外露。\n- **备份 JSON、批量题库 JSON 不要放进普通题库导入区解析。**\n\n---\n\n## 导入格式与策略\n\n支持 `docx`（推荐）、`xlsx`\u002F`xls` 表格、`txt`、`json`、粘贴纯文本、题目+答案双文件导入，也可辅助解析文字层 `pdf`。系统自动识别题号、题干、选项、答案、解析、题型、分区\u002F分卷；原生版额外加强了共用题干、材料题和集中答案解析区的兜底合并能力。导入后会进入识别预览，供逐题确认。\n\n详细说明：\n\n- [所有支持的题库导入格式](docs\u002FShiroha_Quiz_题库导入格式支持说明.md)\n- [题库导入策略与使用指南](docs\u002FShiroha%20Quiz%20题库导入策略与使用指南.md)\n- [题目导入解析方法说明](docs\u002FShiroha%20Quiz%20题目导入解析方法说明.md)\n- 标准题库格式示例：[Markdown](docs\u002F标准题库格式示例.md) \u002F [Word](docs\u002F标准题库格式示例.docx) \u002F [PDF](docs\u002F标准题库格式示例.pdf)\n\n如果原题库格式非常混乱，且题目没有保密需求，可以先使用 LLM 智能体进行数据清洗，例如豆包、深度求索、通义千问等。清洗目标不是改题，而是统一题号、选项、答案和解析格式。\n\n---\n\n## 仓库结构\n\n```text\nshiroha-quiz\u002F\n├── .github\u002F                         # Issue 模板与 GitHub Actions\n├── apps\u002F\n│   ├── web\u002F                         # Web 版\n│   │   ├── index.html               # Web 入口\n│   │   ├── app.js                   # Web 主逻辑\n│   │   ├── styles.css               # Web 样式\n│   │   ├── question-bank.js         # 内置题库数据\n│   │   ├── media\u002F                   # Web 插画素材\n│   │   ├── data\u002F                    # 内置题库\n│   │   └── libs\u002F                    # PDF.js 等本地库\n│   └── android\u002F                     # Android 工程\n│       ├── app\u002F\n│       │   ├── build.gradle.kts\n│       │   ├── src\u002Fmain\u002F            # 通用入口、Manifest、图标与 WebView 内置 Web 资源\n│       │   ├── src\u002Fweb\u002F             # WebView 壳版入口\n│       │   ├── src\u002Fnative\u002F          # 原生 Compose 版源码\n│       │   │   ├── ai\u002F              # AI 客户端与提示词\n│       │   │   ├── importer\u002F        # 题库导入引擎\n│       │   │   │   ├── assets\u002F      #   素材提取与绑定\n│       │   │   │   ├── model\u002F       #   导入数据模型\n│       │   │   │   ├── parser\u002F      #   文本 \u002F 表格 \u002F 双文件解析\n│       │   │   │   ├── score\u002F       #   解析策略评分\n│       │   │   │   └── validate\u002F    #   导入结果校验\n│       │   │   ├── state\u002F           # 全局状态管理\n│       │   │   ├── ui\u002F              # Compose UI\n│       │   │   │   ├── app\u002F         #   App Shell\n│       │   │   │   ├── components\u002F  #   可复用组件\n│       │   │   │   ├── screens\u002F     #   各页面\n│       │   │   │   └── theme\u002F       #   主题与设计 Token\n│       │   │   └── util\u002F            # 工具类\n│       │   ├── src\u002Ftest\u002F            # 通用单元测试\n│       │   └── src\u002FtestNative\u002F      # 原生版解析器测试\n│       ├── build.gradle.kts\n│       ├── settings.gradle.kts\n│       ├── gradle.properties\n│       └── gradlew \u002F gradlew.bat\n├── docs\u002F                            # 使用说明、导入格式、架构与开发文档\n│   ├── web\u002F\n│   ├── native\u002F\n│   └── universal\u002F\n├── test\u002F                            # 解析器回归测试\n│   └── native-parser-regression\u002F\n├── assets\u002F                          # 宣传图与素材源文件\n├── packages\u002F                        # 跨端模块接口说明\n├── CHANGELOG.md\n├── CONTRIBUTING.md\n├── LICENSE\n└── README.md\n```\n\n---\n\n## 本地运行\n\n### Web 端\n\n`apps\u002Fweb\u002F` 是纯静态页面，无需构建。\n\n```bash\n# 方式一：直接打开\napps\u002Fweb\u002Findex.html\n\n# 方式二：本地静态服务\nnpx serve apps\u002Fweb\n```\n\n在线版：\n\n```text\nhttps:\u002F\u002Freiqr.github.io\u002Fshiroha-quiz\n```\n\n### Android 端\n\n进入 Android 工程目录：\n\n```bash\ncd apps\u002Fandroid\n```\n\n构建 WebView 壳版本：\n\n```bash\n.\u002Fgradlew assembleWebRelease\n```\n\n构建原生 Compose 版本：\n\n```bash\n.\u002Fgradlew assembleNativeRelease\n```\n\nWindows PowerShell 可使用：\n\n```powershell\n.\\gradlew.bat assembleWebRelease\n.\\gradlew.bat assembleNativeRelease\n```\n\n构建输出通常位于：\n\n```text\napps\u002Fandroid\u002Fapp\u002Fbuild\u002Foutputs\u002F\n```\n\n---\n\n## 下载与使用\n\n下载入口：\n\n- [GitHub Releases](https:\u002F\u002Fgithub.com\u002Freiqr\u002Fshiroha-quiz\u002Freleases)\n- [在线体验](https:\u002F\u002Freiqr.github.io\u002Fshiroha-quiz)\n\n最新版本请以 [GitHub Releases](https:\u002F\u002Fgithub.com\u002Freiqr\u002Fshiroha-quiz\u002Freleases) 为准。当前仓库文档记录的主要版本线为：\n\n- Web 版：`v0.4.6-alpha`\n- 原生 Compose 版：`v0.6.7-native`\n\n`v0.6.x-native` 阶段的原生版重点包含：题库一二级分组管理、共用题干\u002F材料题兜底解析、LaTeX\u002FOMML 数学公式识别、导入预览数学公式格式化、cases 分段显示优化、首页紧凑布局阈值调整、题干中含”格式”时的分区误识别修复、显示异常设备上题目文本不再被省略截断，以及退出练习时保存顺序进度。`v0.5.x-native` 阶段已完成智能复习模式、题目收藏与快速编辑、字号缩放与紧凑选项、批量自动切题、顺序练习进度记忆、练习页布局优化、危险操作二次确认、阅读显示偏好和构建缓存等能力。\n\n每次发布包含 Android APK 及相关说明文档。\n\n> **当前为 beta 测试阶段，功能尚在完善中，不建议用于高风险正式考试场景。**\n\n---\n\n## 开发计划\n\n详见 [30.1-30.4](docs\u002Fnative\u002FShiroha_Quiz_后续功能开发计划30.1-30.4.md) \u002F [30.5-31](docs\u002Fnative\u002FShiroha_Quiz_后续功能开发计划30.5-31.md) \u002F [31.0-31.5](docs\u002Fnative\u002FShiroha_Quiz_后续功能开发计划31.0-31.5.md) \u002F [31.5-32](docs\u002Fnative\u002FShiroha_Quiz_后续功能开发计划31.5-32.md)。\n\n---\n\n## 参与贡献\n\n欢迎通过 Issue 提交：\n\n- Bug 反馈\n- 题库格式兼容问题\n- 导入失败样例\n- UI \u002F 交互优化建议\n- Android 适配问题\n- 文档补充建议\n\n详见：\n\n- [CONTRIBUTING.md](.\u002FCONTRIBUTING.md)\n- [CHANGELOG.md](.\u002FCHANGELOG.md)\n\n---\n\n## 许可证\n\n本项目采用 `GPL-3.0` 开源。\n","Shiroha Quiz 是一个支持自定义题库导入、练习刷题、模拟考试与错题复习的轻量级刷题应用，现已支持AI核对和解析。其核心功能包括多格式题库导入（如Word、Excel、TXT、JSON等）、多种练习模式（随机抽题或顺序练习）、考试模式以及错题本管理。技术上采用JavaScript开发，并提供了Web版和Android版（包括WebView壳版和原生Compose版），后者额外具备暗夜模式、智能复习等功能。该工具适用于各类需要通过刷题进行学习和备考的场景，尤其是当用户拥有不同格式的题库文件时，Shiroha Quiz能够极大提高整理和使用的效率。","2026-06-11 03:59:47","CREATED_QUERY"]