Skip to content

Releases: xxinjie21/Smart-Quiz-Tutor

2.3.0

Choose a tag to compare

@xxinjie21 xxinjie21 released this 22 Sep 16:36

🇨🇳 2.3.0 更新说明

注:2.2.0 未单独发布,以下包含 2.1.3 → 2.3.0 的全部变更。

新增功能

  • 内置 AI 助手(侧边栏 AI 页签):基于笔记检索回答,支持多文件引用、可配置引用预算、Markdown 渲染、复制/重新生成,可收起会话列表。(2.2.0)
  • AI 批改:答题模式主观题可由 AI 批改。(2.2.0)
  • 列表搜索与生成校验:题库/笔记/错题支持按文件名/来源/知识点/内容搜索;生成结果自动校验,格式不达标自动重试。(2.2.0)
  • 手动添加错题仅答案版导出。(2.3.0)
  • 侧边栏字号缩放:头部 A− / A+ / 复位;设置页重排为卡片式。(2.3.0)

体验与修复

  • 真 SM-2 间隔重复:每条记录独立难度因子(EF)与重复次数,四档评分(忘记/困难/一般/简单);间隔因子可填、带推荐范围与「慢/标/快」预设。(2.3.0)
  • 复习排期改用本地时区,不再出现差一天。(2.3.0)
  • 聊天多会话管理:新建/切换/重命名/删除、多选批量删除、列表可收起;每个会话独立保存、各自记忆检索范围,重启不丢。(2.3.0)
  • 引用文件更合理:预算在各引用间公平分配,长文保留开头并补充与提问相关的片段,按自然边界截断、节省 token。(2.3.0)
  • 界面统一:状态色改用语义 token、统一共享组件与类名、修复多处间距。(2.3.0)
  • 设置单一来源:原生设置页与侧边栏设置由同一 schema 渲染;中英切换即时刷新导航与聊天。(2.3.0)
  • 修复与清理:文件夹创建幂等(不再报 “Folder already exists”);友好网络错误提示;移除未用依赖;英文界面漏翻补齐;用弹窗替换不受支持的 prompt。(2.2.0 / 2.3.0)
  • 上架兼容:LICENSE 调整为 0BSD,校正 manifest 许可证/描述字段。(2.3.0)

带来的体验

  • 学习闭环更完整:出题 → 答题(含 AI 批改)→ 错题 → 真 SM-2 复习。
  • AI 助手可分主题多会话长期使用,重启不丢。
  • 引用长文更省 token、更对题;界面中英一致、配色统一更美观。

🇬🇧 2.3.0 Release Notes

Note: 2.2.0 was not released separately — this includes everything since 2.1.3.

What's new

  • Built-in AI assistant (AI tab in the sidebar): retrieval-grounded answers with multi-file references, a configurable reference budget, Markdown rendering, copy/regenerate, and a collapsible chat list. (2.2.0)
  • AI grading for subjective questions in answer mode. (2.2.0)
  • List search & generation validation: search questions/notes/wrong answers by filename/source/tag/content; AI output is validated and retried when the format is off. (2.2.0)
  • Add a wrong answer manually and answer-only export. (2.3.0)
  • Sidebar font-size zoom (A− / A+ / reset in the header) and a redesigned card-style settings page. (2.3.0)

Improvements & fixes

  • Real SM-2 spaced repetition: each item tracks its own ease factor (EF) and repetitions, with four grades (Forgot / Hard / Good / Easy); a configurable interval factor with recommended range and Slow/Standard/Fast presets. (2.3.0)
  • Review scheduling now uses your local timezone (no more off-by-one due dates). (2.3.0)
  • Chat session management: create/switch/rename/delete, multi-select batch delete, collapsible list; every conversation is stored independently and remembers its own scope — and survives restarts. (2.3.0)
  • Smarter references: the budget is shared fairly across files; long files keep their opening plus query-relevant snippets, cut at natural boundaries to save tokens. (2.3.0)
  • Unified UI: state colors via semantic tokens, shared components/classes, spacing fixes. (2.3.0)
  • Single source of truth for settings (native tab and in-sidebar settings share one schema); language switch now refreshes the nav and chat instantly. (2.3.0)
  • Fixes & cleanup: idempotent folder creation (no more “Folder already exists”), friendlier network errors, removed unused dependencies, filled in missing English strings, and replaced the unsupported prompt with a modal. (2.2.0 / 2.3.0)
  • Store readiness: LICENSE set to 0BSD and manifest license/description fields corrected. (2.3.0)

What you get

  • A full study loop: generate → answer (with AI grading) → wrong-answer book → real SM-2 review.
  • An AI assistant you can split into topics and multiple long-lived conversations that survive restarts.
  • References that are cheaper on tokens and more on-topic; a consistent bilingual UI with unified colors.

Full Changelog: 2.1.3...2.3.0

2.1.3

Choose a tag to compare

@xxinjie21 xxinjie21 released this 09 Sep 17:43

🇨🇳 2.1.3 更新说明

修复内容

  • 修复 Obsidian 社区自动审查的兼容性:剥离了 main.js 中由 docx 库打包进的裸 eval 引用(es-abstract intrinsics),满足 no-eval 审查要求。
  • 修正 LICENSE 版权归属与 package.json 许可证字段,符合上架规范。

带来的体验

  • 插件可通过 Obsidian 社区商店自动审查并上架。
  • 导出 Word / PDF 等功能完全不受影响,运行无任何变化。

此前的 2.1.x 已带来

  • 中英文双语界面:内置语言切换,覆盖导航、出题、识别、打标签、笔记生成、错题、复习、设置。
  • 双语 AI 提示词与题目解析、标签识别。

🇬🇧 2.1.3 Release Notes

What's fixed

  • Obsidian review compatibility: stripped a bare eval reference bundled into main.js from the docx library (es-abstract intrinsics), satisfying the no-eval review rule.
  • Corrected LICENSE copyright ownership and the package.json license field for store submission.

What you get

  • The plugin can pass Obsidian's community store automated review and be published.
  • No runtime impact — Word/PDF export and all other features behave exactly as before.

What 2.1.x already delivered

  • Bilingual UI with an in-app language switcher covering navigation, generation, exam extraction, tagging, note generation, wrong answers, review and settings.
  • Bilingual AI prompts and answer/tag parsing.

2.1.2

Choose a tag to compare

@xxinjie21 xxinjie21 released this 27 Aug 11:23

🇨🇳 2.1.2 更新说明

本次为兼容性修复,目的是通过 Obsidian 社区插件的自动审查。

修复内容

  • 消除动态代码执行审查项(eval:修复 main.js 中由 docx 库(es-abstract 委派)打包进的裸 eval 引用,该引用触发 Obsidian 审查的 no-eval 错误。现已在构建时安全剥离,功能完全不受影响。

带来的体验

  • 满足 Obsidian 社区插件商店的自动审查要求,插件可正常上架/更新。
  • 修复对运行无任何影响,导出 Word、PDF 等功能保持原样。

此前的 2.1.x 已带来

  • 中英文双语界面:内置语言切换,整套界面(导航、出题、识别、打标签、笔记生成、错题、复习、设置)支持中英对照。
  • 双语 AI 提示词与题目解析、标签识别。

🇬🇧 2.1.2 Release Notes

This is a compatibility fix to pass Obsidian's community plugin automatic review.

What's fixed

  • Resolved a no-eval review violation: removed a bare eval reference bundled into main.js from the docx library (es-abstract intrinsics). It is now safely stripped at build time with no functional impact.

What you get

  • The plugin now passes Obsidian's plugin-store automatic review and can be published/updated.
  • No runtime change — export to Word/PDF and all other features behave exactly as before.

What 2.1.x already delivered

  • Bilingual UI with an in-app language switcher covering navigation, generation, exam extraction, tagging, note generation, wrong answers, review and settings.
  • Bilingual AI prompts and answer/tag parsing.

2.1.1

Choose a tag to compare

@xxinjie21 xxinjie21 released this 27 Aug 05:29

Smart Question Tutor 2.1.1


🇬🇧 English

What's New

  • One-click Chinese/English language switch in Settings (and in-sidebar settings). UI updates instantly; command palette names update after restarting the plugin.
  • Bilingual AI prompt templates for question generation, exam extraction, note generation and tag suggestion. The "language follows the material" rule is preserved: Chinese material still produces Chinese questions.
  • English parsing support in the question parser and exam exporter (Answer: / Explanation: / Answer Summary etc.), so English-material questions parse and export correctly.
  • Dictionary fallback: any missing translation shows the original Chinese text — the UI never goes blank.

What's Changed vs 2.0.1

  • 2.0.1 was a hotfix for the Obsidian review blocker (dynamic document.createElement("script") from the setimmediate dependency).
  • 2.1.0 builds on that with a full i18n feature set:
    • ~500 UI strings across all tabs (home / questions / notes / wrong answers / review / settings / file picker / exam extraction / tagger / note generation / knowledge manager / generate / answer / history) now go through a zh/en dictionary (t() / tf()).
    • AI prompt templates are now bilingual while keeping the material-language rule.
    • Parser and exporter understand both Chinese and English labels.
  • No breaking changes: with language set to 中文, the UI is byte-for-byte identical to 2.0.1 (zero regression).

Issues Fixed

  • Fixed the setimmediate script-strip regex that depended on minifier-chosen variable names: on a rebuild, createElement("script") could reappear (2 occurrences); the regex is now minifier-agnostic and the count stays 0, keeping the plugin compliant with Obsidian's review lint.
  • Missing dictionary keys no longer produce blank UI (they fall back to the original text).

Verification

  • vitest 153 passed (new tests: dictionary integrity, placeholder replacement, bilingual prompts, English parsing).
  • tsc --noEmit: 0 errors; ESLint: 0 errors.

🇨🇳 中文

新增功能

  • 一键中英文切换:设置页(及侧边栏设置)新增「界面语言」下拉,界面即时生效;命令面板中的命令名在重启插件后更新。
  • AI 提示词双语化:出题、识别试卷、生成笔记、添加标签的提示词支持中英文,并保留「语言与材料一致」规则——中文材料仍出中文题。
  • 英文解析兼容:题目解析器与导出器支持英文标签(Answer: / Explanation: / Answer Summary 等),英文材料出的题可正常解析与导出。
  • 字典回退机制:漏翻的文案自动显示中文原文,界面永不空白。

与 2.0.1 相比的变化

  • 2.0.1 是为解决 Obsidian 审核拦截问题(setimmediate 依赖导致的动态 createElement("script"))而发布的热修复版。
  • 2.1.0 在其之上补齐了完整的国际化能力:
    • 全部 Tab(首页 / 题目 / 笔记 / 错题 / 复习 / 设置 / 文件选择器 / 识别试卷 / 添加标签 / 生成笔记 / 知识点管理 / 生成 / 答题 / 历史)约 500 条 UI 文案接入中英文字典(t() / tf())。
    • AI 提示词模板双语化,同时保持「语言与材料一致」规则。
    • 解析器与导出器同时识别中英文标签。
  • 无破坏性变更:语言设为「中文」时,界面与 2.0.1 逐字一致(零回归)。

解决的问题

  • 修复 setimmediate 动态脚本剥离正则对 minifier 变量名的依赖:重新构建时 createElement("script") 曾回升到 2 处,现改为与变量名无关的匹配,始终保持 0 处,继续满足 Obsidian 审核 lint 要求。
  • 修复字典缺失导致界面空白的隐患(缺失 key 回退显示原文)。

验证

  • vitest 153 项全部通过(新增:字典完整性、占位符替换、提示词双语、英文解析测试)。
  • tsc --noEmit0 错误;ESLint:0 errors

⚠️ 本版本发布说明

本版本(2.1.1)在 2.1.0 基础上,专门针对 Obsidian 社区插件审核要求做了调整,确保能通过 Obsidian 的自动审查(lint)和人工审核。主要改动:

  • 确保 createElement("script") 动态脚本注入在构建产物中保持 0 处,满足 Obsidian 的安全审查要求。
  • 所有 i18n 翻译键完整,确保 UI 文案在中英文切换时无空白或缺失。

Full Changelog: 2.1.0...2.1.1

2.0.1

Choose a tag to compare

@xxinjie21 xxinjie21 released this 03 Aug 10:12

2.0.1

CN 中文

✨本版本聚焦三项核心体验优化:让知识点索引更可靠、让间隔复习不再丢进度、让热力图随手可用。

功能优化

  • 知识点索引重建更可靠
    • 单个知识点索引写入失败不再中断整个重建
    • 过期索引一次性全部清理,手写笔记永不误删
  • 复习进度跨会话持久化
    • 复习间隔/答对次数以数字正确存取,重启 Obsidian 后不再被重置成默认值
    • 连续复习记录稳定保留,复习节奏更连贯
  • 热力图响应式改版
    • 改用横向滑动条浏览,自动定位到当天
    • 调整侧边栏宽度时始终钉在当天,随时查看今日学习活跃度
  • 新增系统化测试套件
    • 覆盖知识点索引、文档服务、笔记服务与关键修复,构建更稳定体系

😊带来的体验

  • 重建索引一次到位:不再出现部分索引缺失、点多次才删干净的情况
  • 遗忘曲线更准:真正的 SM-2 间隔重复,不再因会话重载而断档
  • 热力图顺手:滑动有条、今日一眼可见,侧边栏怎么拖都对上

GB 英语

✨本次发布聚焦于三项核心体验改进:更可靠的知识指数重建、永不重置的评测进度,以及始终可用的热力图。

改进

  • 更可靠的知识索引重建
    • 一次失败的索引写不再会中止整个重建过程
    • 陈旧的索引文件会一次性清理手写笔记绝不被动用
  • 复习进度会在各场次中持续存在
    • 复核间隔/正确计数以数字形式存储,能在Obsidian重启后存活,而不会重置为默认
    • 连续的间隔重复条纹保持完整
  • 响应式热力图
    • 横向滚动条浏览,自动定位至今
    • 当你调整侧边栏大小时,页面仍固定在今天
  • 新的系统测试套件
    • 知识索引、文档服务、笔记服务和关键修复

😊你能得到什么

  • 一次性索引重建:不再有缺失的索引,也不再重复点击清除陈旧索引
  • 更准确的遗忘曲线:真正的SM-2间距,换弹时不再断裂
  • 方便的热力图:平滑滚动,今天一眼就能看到,无论你怎么拖动侧边栏都能对齐

完整文档:https://github.com/xxinjie21/Smart-Quiz-Tutor(README)

1.2.1

Choose a tag to compare

@xxinjie21 xxinjie21 released this 24 Jul 05:40

1.2.1 - Release update for Obsidian community plugin

This release bumps the version to trigger an update for users who installed via Obsidian Community Plugins.

The v1.2.0 content remains the same. See v1.2.0 release for full changelog.


v1.2.1 - 为 Obsidian 社区插件触发更新

此版本仅升级版本号,以触发通过 Obsidian 社区插件安装的用户更新。

v1.2.0 的功能内容不变,完整更新日志请查看 v1.2.0 Release

1.2.0

Choose a tag to compare

@xxinjie21 xxinjie21 released this 24 Jul 05:13

1.2.0 - 功能完善 & Bug修复 / Bug Fixes & Polish

中文

Bug修复

  • 修复导航栏状态同步问题:从错题/笔记等页面点击开始答题后,导航高亮会正确切换到"首页"
  • 修复内部设置页区间预设按钮和自定义输入框未保存设置的问题
  • 修复笔记"来源"排序分组错误使用文件名而非frontmatter字段的问题
  • 修复markReviewDone路径类型判断错误导致复习完成无法正确更新文件的问题
  • 修复reviewUpdate数组索引越界(off-by-one)问题

功能优化

  • 热力图:修复颜色阈值分级,移除外边框,更接近GitHub风格
  • 答题格式:AI生成题目序号使用加粗格式,二级分点用(1)(2)(3)
  • 复习标签页:仅显示今日到期项,移除"即将复习"分区
  • 复习完成:点击"完成"按钮后正确推进下次复习时间
  • 首页统计:综合统计错题、题目、笔记三个来源的到期复习项
  • 区间预设:更新提示信息,更清晰地说明各模块/速度对应的复习间隔

代码维护

  • 清理死代码(wrongRePracticeDue、answerStartTime)
  • 跨模块数据流完整审计,确认所有模块间交互正确

English

Bug Fixes

  • Fix navigation state desync: clicking start answer from wrong/notes/questions pages now correctly switches nav highlight to Home
  • Fix internal settings page interval preset buttons and custom input not saving
  • Fix notes source sort using file basename instead of frontmatter source field
  • Fix markReviewDone path type detection causing review completion to fail on file updates
  • Fix reviewUpdate off-by-one array index error

Improvements

  • Heatmap: fixed color thresholds, removed outline border for cleaner GitHub-style look
  • Answer formatting: AI-generated question numbers use bold format, sub-items use (1)(2)(3)
  • Review tab: only shows due-today items, removed Upcoming Reviews section
  • Review completion: Done button correctly advances next review interval
  • Home stats: aggregates due review counts from wrong answers, questions, and notes
  • Interval presets: updated hints to clarify which module/speed each preset corresponds to

Maintenance

  • Removed dead code (wrongRePracticeDue, answerStartTime)
  • Full cross-module data flow audit confirming all module interactions work correctly

1.1.0

Choose a tag to compare

@xxinjie21 xxinjie21 released this 23 Jul 06:42

1.1.0

New Features

  • Root folder setting: all module folders under configurable parent directory
  • Per-module knowledge folders for Obsidian graph view
  • Obsidian SettingTab in Settings > Third-party plugins
  • Notes tab: create notes from vault files with file picker
  • Wrong answer list: review status and wrong count display
  • Bidirectional knowledge point links in question files

Improvements

  • Type selection hidden when only one question type configured
  • Settings scroll position preserved
  • AI exam recognition: chunking for large files
  • Improved AI tag recognition prompt
  • Customizable tools section on home page

Bug Fixes

  • Fixed review tab filter/sort buttons visibility
  • Fixed settings not appearing in Obsidian settings
  • Added root folder auto-creation on load

1.0.3

Choose a tag to compare

@xxinjie21 xxinjie21 released this 22 Jul 07:34

Changes

  • Remove all dynamic createElement("script") patterns from bundled JSZip/immediate/setimmediate code
  • Expand esbuild drop-browser-code plugin
  • Update GitHub repo name to Smart-Quiz-Tutor
  • Fix manifest.json description punctuation
  • Update Obsidian badge version to 1.12.0+

1.0.2

Choose a tag to compare

@xxinjie21 xxinjie21 released this 22 Jul 06:53

修复

  • 修复所有 ESLint 错误(0 errors,4 warnings)
  • 修复 TypeScript 类型错误
  • 内联样式迁移到 CSS 类,满足社区商店审核要求
  • 补全缺失的 deleteWrongNote 方法
  • minAppVersion 升级到 1.12.0
  • 所有 24 个测试通过