Smart Question Tutor

by XXJ
5
4
3
2
1
Score: 31/100

Description

Smart Question Tutor — AI quiz generation, SM-2 spaced repetition, wrong answer tracking, learning heatmap, exam recognition. Ollama & OpenAI compatible / 智学助手 — AI出题, SM-2间隔复习, 错题本, 热力图, 整卷识别

Reviews

No reviews yet.

Stats

6
stars
187
downloads
2
forks
61
days
11
days
11
days
0
total PRs
0
open PRs
0
closed PRs
0
merged PRs
1
total issues
1
open issues
0
closed issues
72
commits

Latest Version

12 days ago

Changelog

🇨🇳 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.

README file from

Github

Smart Question Tutor — 智学助手

AI-powered, spaced-repetition study plugin for Obsidian

Obsidian Release TypeScript AI

English | 中文


What is it?

Smart Question Tutor turns your Obsidian Markdown notes into an active-study machine. It reads your local knowledge base, uses AI (local Ollama or any OpenAI-compatible API) to generate quiz questions, records wrong answers into a spaced-repetition review loop, builds a knowledge-tag graph, and lets you export to Markdown / Word / PDF.

Features

AI Question Generation

  • Generate quizzes from any Markdown note with 5 question types: single choice, multiple choice, true/false, fill-in-the-blank, short answer.
  • Supports Ollama (local, private) and OpenAI-compatible endpoints (DeepSeek, etc.) via custom base URL, model, API key and temperature.
  • AI auto-extracts knowledge tags and writes [[wikilinks]] so everything appears in your Obsidian graph view.
  • Customize per-type counts, run in batch over multiple files, and sort results by source / tag / date.

Full Exam Recognition

  • Extract every question from a complete exam paper or question bank via AI, preserving original question types and formatting.
  • Large files are chunked (15,000 chars per chunk, 2,000 overlap) to avoid truncation.
  • Existing answers are kept as-is; missing answers are auto-generated by the AI.
  • Handles Markdown, txt, RTF, docx, PDF and images.

Answering Mode

  • Start answering any generated result or saved question file in one click.
  • Instant grading with the correct answer and explanation.
  • Objective questions are auto-scored; subjective questions can be manually marked correct/wrong — missed ones go straight to the wrong-answer book.

Wrong Answer Book (SM-2 spaced repetition)

  • Answer correctly → interval advances; answer wrong → resets to day 1.
  • A single difficulty factor (SM-2 EF) per module controls interval growth, with Fewer reviews / Standard / More reviews one-click presets and a recommended range.
  • Wrong answers carry [[knowledge tags]] and sync into the knowledge folder for the graph.
  • Automatic review reminders when the plugin loads.

Study Notes

  • Generate condensed study notes from any Markdown file, any existing question/wrong-answer/note.
  • Notes participate in the same spaced-repetition review schedule.
  • Search, filter and export.

Review Dashboard

  • One unified list of every due review item (wrong answers + questions + notes), filterable and sortable by source / tag / date.
  • One-click Done per item advances it to the next review cycle.

Learning Heatmap

  • GitHub-style annual contribution graph on the Home tab.
  • Horizontal scrollbar, auto-positioned to today; follows the sidebar width, always staying pinned to the current day.
  • Color intensity tiers by activity count.

Knowledge Graph

  • A single knowledge-tag index folder; each tag gets an auto-generated MOC note with 相关题目 / 相关笔记 / 相关错题 sections.
  • Rebuild the index on demand: it scans every folder's tags, recreates all index notes, and cleans up stale ones in one pass.
  • Handwritten notes in the knowledge folder are never touched.

Export

  • Export to Markdown, Word (.docx) or PDF.
  • Answer-free exports are available for self-testing.

💬 AI Assistant Chat

  • A built-in chat panel embedded in the Smart Question Tutor sidebar (the AI tab).
  • Workspace & multi-chat management: organize chats into workspaces, each containing many independent conversations (switch / create / rename / delete via the header dropdowns and the ☰ drawer). Old single-history data migrates into a default workspace automatically.
  • Answers are grounded in your notes via retrieval; each conversation remembers its own scope between plugin knowledge base only and entire vault.
  • Reference notes: attach the current selection/note (or pick multiple notes) as context for the answer; references show as removable chips and are cleared automatically after sending.
  • The reference budget setting caps how much referenced text is fed to the model (default 60000; lower it for small local models). The budget is shared fairly across references: short files are included whole, long files keep their opening plus a few query-relevant snippets, and cuts land on natural boundaries.
  • Replies render as Markdown; each message can be copied or regenerated.

🔒 Privacy

  • Local-first: with Ollama, nothing leaves your machine.
  • When you use an OpenAI-compatible endpoint (including the built-in chat), the selected context is sent to that endpoint:
    • Question generation sends the chosen source text / exam file.
    • Chat scope plugin knowledge base sends matched snippets; scope entire vault may send matched note contents from any folder.
    • Referenced notes are sent in full (up to the reference budget).
  • No telemetry and no hidden network calls. Only the endpoint you configure is contacted.

🌐 Bilingual UI (Chinese / English)

  • One-click interface language switch in Settings — the whole UI flips between 中文 and English instantly.
  • The switch is also available right inside the sidebar settings; command palette names update after a plugin restart.
  • AI prompts are bilingual too while keeping the "language follows the material" rule: Chinese material still produces Chinese questions, English material produces English questions.
  • English parsing & export support (Answer:, Explanation:, Answer Summary, ...) — English-material exams parse and export correctly.
  • Missing translations fall back to the original Chinese text, so the UI never goes blank.

Repository

GitHub: https://github.com/xxinjie21/Smart-Quiz-Tutor


Installation

From Obsidian Community Plugins

  1. Open SettingsCommunity pluginsBrowse
  2. Search for Smart Question Tutor
  3. Click Install, then Enable

Manual Installation (GitHub Release)

Download the main.js, manifest.json and styles.css from the latest Release, then copy them into:

your-vault/.obsidian/plugins/smart-quiz-tutor/
├── main.js
├── manifest.json
└── styles.css

Then enable the plugin in SettingsCommunity pluginsInstalled plugins.


Quick Start

  1. Configure AI — open SettingsSmart Question Tutor; choose Ollama or OpenAI and set the API URL, model, and API key (if needed).
  2. Generate questions — click the ribbon icon to open the sidebar; in the 题目 tab pick a Markdown source file, choose question types & counts, click Generate.
  3. Start answering — click 开始答题 after generation finishes.
  4. Review mistakes — wrong answers are auto-saved with spaced-repetition scheduling; open the 错题 tab to review now.
  5. Track progress — check the 复习 tab for due items, or read the heatmap on 首页.

Commands

Command Action
打开智学助手侧边栏 Open the main sidebar
基于当前文档生成试题 Open the file picker to generate questions
基于当前文档直接生成试题 Generate questions directly from the active Markdown note
识别当前文件试卷 Run full-exam recognition on the active file
查看错题本 Open the wrong-answer list
查看题目生成历史记录 Open generation history
重建知识点索引 Rebuild all knowledge-index MOC notes

Hotkeys

No default hotkey is bound. Bind one in SettingsHotkeys (for example Ctrl+Q to 基于当前文档直接生成试题).


Settings

Core

Setting Description Default
界面语言 Interface language (中文 / English) 中文
接口类型 Ollama or OpenAI-compatible Ollama
接口地址 API service URL http://127.0.0.1:11434
模型名称 AI model qwen2:7b
API Key Required only for hosted providers (empty)
Temperature Randomness (0–2) 0.1
根文件夹 Parent folder for all modules 智学助手
题目文件夹 Generated-question folder 题目
错题文件夹 Wrong-answer folder 错题
笔记文件夹 Study-note folder 笔记
知识点文件夹 Knowledge-index folder 知识点
排除文件夹 Folders excluded from scanning .trash, 模板, templates

Review Interval Factor

Intervals are controlled by a single difficulty factor (SM-2 EF) per module. SM-2 grows the interval as 1 day → 6 days → previous × factor; the factor is then nudged by each review's grade. Recommended 2.0–2.8 (standard 2.5); input is clamped to 1.3–3.0.

Module Default factor Presets (Fewer reviews / Standard / More reviews)
错题 2.3 2.7 / 2.5 / 2.3
题目 2.5 2.7 / 2.5 / 2.3
笔记 2.5 2.7 / 2.5 / 2.3

Interface

The sidebar has 7 tabs:

Tab Content
🏠 首页 Stats overview (4 cards) + learning heatmap + review reminders + quick actions
📝 题目 Generation settings, question files, file picker
📋 笔记 Create study notes from files, note management
❌ 错题 Wrong-answer list, detail, manual add, review, export, regeneration
📊 复习 Unified due-review dashboard with filter / sort / SM-2 grading
💬 AI Built-in retrieval-grounded assistant chat
⚙️ 设置 All configuration

Tech Stack

Technology Purpose
Obsidian API Plugin platform
TypeScript Development
esbuild Bundler
docx Word document generation
SM-2 Spaced-repetition algorithm

Changelog

v2.3.0

  • Real SM-2 spaced repetition: per-item ease factor (EF) and repetition tracking; review with four grades (Forgot / Hard / Good / Easy). Each module has a single interval factor setting (default wrong 2.3 / question 2.5 / note 2.5, recommended 2.0–2.8) with Fewer reviews / Standard / More reviews one-click presets; intervals grow as 1 day → 6 days → previous × factor.
  • Manual wrong-answer entry: add a wrong answer by hand (content / source / knowledge tags / note) from the 错题 tab.
  • Answer-only export: export a questions file (or a wrong answer) containing only the answers and explanations.
  • Chat workspaces: the AI chat now supports workspaces and multiple independent conversations per workspace; each conversation remembers its own retrieval scope (old single history migrates automatically).
  • Local-date fix: review scheduling now uses your local timezone instead of UTC (no more off-by-one due dates).
  • Settings single source of truth: the native settings tab and the in-sidebar settings are both rendered from one schema, so they can no longer drift apart.
  • Cleanup: removed two unused dependencies; the hardcoded global Ctrl+Q listener is replaced by a normal command (bind your own hotkey).
  • 307 tests pass; tsc 0 errors; ESLint 0 errors / 0 warnings.

v2.2.0

  • Built-in AI chat in the Smart Question Tutor sidebar (AI tab): retrieval over your notes, multi-file references (from the active note/selection or a file picker), a configurable reference budget, Markdown-rendered replies, copy / regenerate, and "stick-to-bottom" scrolling.
  • Robust retrieval: CJK-aware tokenization (2/3-gram), filename/path weighting, and two-stage candidate ranking (only matched files are read).
  • Chat polish: inline error/warning bubbles, token-size warning, Ctrl/⌘+Enter to send, auto-focus on open.
  • Reliability: idempotent folder creation (no "Folder already exists" on startup), friendly network-error messages, history pruning (kept ≤ 100 entries, results truncated), TTL caches for question/note/wrong lists.
  • Maintainability: sidebarView.ts split from ~3700 lines into 13 focused modules under src/views/sidebar/; data/list/export logic moved to VaultDataService; all brittle [style*=] CSS selectors replaced with semantic classes.
  • Rebuilt main.js; CI now runs build + unit tests; a guard test asserts no eval / no script injection.
  • 194 tests pass; tsc 0 errors; ESLint 0 errors.

v2.1.0

  • One-click Chinese/English language switch — ~500 UI strings across all tabs now go through a zh/en dictionary; switch instantly from Settings (or the in-sidebar settings).
  • Bilingual AI prompts — question generation, exam extraction, note generation and tag suggestion support both languages, keeping the "language follows the material" rule.
  • English parsing & export support — the question parser and exporter now recognize Answer: / Explanation: / Answer Summary etc., so English-material questions parse and export correctly.
  • Dictionary fallback — missing translations show the original text, so the UI never goes blank.
  • Made the dynamic-script strip regex minifier-agnostic, keeping createElement("script") at 0 for the Obsidian review lint.
  • 153 tests pass (new: dictionary integrity, placeholder replacement, bilingual prompts, English parsing); tsc 0 errors, ESLint 0 errors.

v2.0.1

  • Removed the remaining dynamic <script> injection (from the setimmediate dependency) that Obsidian's review lint flagged as an error — createElement("script") went from 3 to 0, unblocking community review.

v2.0.0

  • Knowledge-index rebuild is now resilient — a single failed tag write no longer aborts the whole rebuild; stale index files are cleaned up in one pass.
  • Review progress persists across sessions — interval / correct-count are stored as numbers, so your spaced-repetition streak is no longer reset on reload.
  • Responsive heatmap — uses a scrollbar, auto-positions to today, and stays pinned to today as you resize the sidebar.
  • Added comprehensive test suites (knowledge index, document service, note service, fixes).

Support

If this plugin helps your studies, consider giving it a star on GitHub!

GitHub: https://github.com/xxinjie21/Smart-Quiz-Tutor

For issues and feature requests, please open an issue.


License

ISC License


这是什么?

智学助手 把你的 Obsidian Markdown 笔记变成一台主动学习机:读取本地知识库,用 AI(本地 Ollama 或任意 OpenAI 兼容接口)生成试题,把错题纳入间隔重复的复习循环,构建知识点图谱,并可导出 Markdown / Word / PDF。

功能

🧠 AI 试题生成

  • 基于 Markdown 笔记原文,AI 自动出题,支持 5 种题型:单选 / 多选 / 判断 / 填空 / 简答。
  • 支持 Ollama(本地、离线、隐私)与 OpenAI 兼容接口(如 DeepSeek 等),可自定义接口地址、模型、API Key、Temperature。
  • AI 自动提取知识点标签并写入 [[双向链接]],融入 Obsidian 图谱视图
  • 每种题型可独立设置数量,支持多文件批量生成,结果可按源文件 / 知识点 / 时间排序。

📄 整卷识别

  • 从完整试卷 / 题集中 AI 提取全部题目,保留原题型与格式
  • 大文件自动分块处理(每块 15000 字符、重叠 2000 字符),避免内容截断。
  • 原卷已有答案原样保留,缺答案由 AI 自动补全。
  • 支持 Markdown、txt、RTF、docx、PDF 与图片。

✍️ 答题模式

  • 一键开始对刚生成的结果或已保存的题目文件答题。
  • 即时批改,展示正确答案与解析。
  • 客观题自动计分,主观题可手动标记正误;答错自动进入错题本。

📘 错题本(SM-2 间隔重复)

  • 答对 → 间隔递增;答错 → 重置为第 1 天。
  • 每个模块用一个**难度因子(SM-2 的 EF)**控制间隔增长,附带 少复习 / 标准 / 多复习 一键预设与推荐范围。
  • 错题携带 [[知识点标签]],自动同步到知识点文件夹,图谱可见。
  • 插件启动时自动提醒到期复习。

📓 学习笔记

  • 从任意 Markdown 文件,或已有题目 / 错题 / 笔记一键生成浓缩知识点笔记。
  • 笔记同样纳入间隔重复复习体系。
  • 支持搜索、筛选、导出。

📊 复习看板

  • 统一展示所有到期复习项(错题 + 题目 + 笔记),可按源文件 / 知识点 / 时间筛选排序。
  • 每项一键「已完成」,自动推进到下一复习周期。

📈 学习热力图

  • 首页 GitHub 风格年度活跃图。
  • 横向滑动条,自动定位到当天;随侧边栏宽度自适应,始终钉在当天
  • 颜色按活动频次分级。

🔗 知识点图谱

  • 统一的知识点索引文件夹;每个知识点自动生成 MOC 索引笔记,含 相关题目 / 相关笔记 / 相关错题 三个分区。
  • 支持一键重建知识点索引:扫描各文件夹标签、重建全部索引、并一次性清理过期索引。
  • 知识点文件夹中的手写笔记永远不会被误删。

📤 专业导出

  • 支持导出 MarkdownWord (.docx)PDF
  • 可导出无答案版用于自测。

💬 AI 助手对话

  • 内嵌在智学助手侧边栏的 AI 页签里。
  • 工作区 + 多会话管理:用工作区分区,每个工作区内可建多个独立会话;通过头部下拉与 ☰ 抽屉新建 / 切换 / 重命名 / 删除。旧版单一聊天历史会自动迁移为一个「默认」工作区里的会话。
  • 回答基于你的笔记检索结果;检索范围可在 仅插件知识库整个 vault 间切换,且每个会话独立记忆各自的检索范围。
  • 引用笔记:把当前选区/笔记(或从文件选择器挑多篇)挂为回答上下文;以可移除的 chip 展示,发送后自动清空。
  • 设置项「引用总预算(字)」限制带入模型的引用文本量(默认 60000,本地小模型建议调小)。预算在各引用间公平分配:短文件整篇带上,长文件保留开头并补充与提问相关的片段,截断落在自然边界。
  • 回复按 Markdown 渲染;每条消息可复制、可重新生成。

🔒 隐私说明

  • 本地优先:使用 Ollama 时全部在你本机完成。
  • 使用 OpenAI 兼容接口(含内置对话)时,会把所选上下文发送到该接口:
    • 生成试题:发送你选择的源文本 / 试卷文件。
    • 对话范围「仅插件知识库」:发送命中的片段;「整个 vault」:可能发送任意文件夹中命中的笔记内容。
    • 被引用的笔记会完整发送(受引用预算限制)。
  • 无遥测、无隐藏网络请求;只会访问你配置的接口地址。

🌐 中英文双语界面

  • 设置页一键切换界面语言,整个界面在 中文 / English 间即时切换。
  • 侧边栏设置内也可直接切换;命令面板中的命令名在重启插件后更新。
  • AI 提示词同样双语化,同时保留「语言与材料一致」规则:中文材料仍出中文题,英文材料出英文题。
  • 英文解析与导出兼容Answer:Explanation:Answer Summary 等)——英文材料的试卷可正常解析与导出。
  • 漏翻的文案自动回退显示中文原文,界面永不空白。

仓库地址

GitHub: https://github.com/xxinjie21/Smart-Quiz-Tutor


安装

从 Obsidian 社区插件安装

  1. 打开 设置社区插件浏览
  2. 搜索 Smart Question Tutor
  3. 点击 安装,然后 启用

手动安装(GitHub Release 下载)

从最新 Release 下载 main.jsmanifest.jsonstyles.css,放入:

your-vault/.obsidian/plugins/smart-quiz-tutor/
├── main.js
├── manifest.json
└── styles.css

然后在 设置社区插件已安装插件 中启用。


快速开始

  1. 配置 AI — 打开 设置Smart Question Tutor,选择 Ollama 或 OpenAI,设置接口地址、模型、API Key(如需要)。
  2. 生成题目 — 点击左侧栏图标打开侧边栏,在「题目」Tab 选择 Markdown 源文件,选择题型与数量,点击「生成」。
  3. 开始答题 — 生成完成后点击「开始答题」。
  4. 复习错题 — 错题自动按间隔重复计划保存;打开「错题」Tab 可立即复习。
  5. 跟踪进度 — 在「复习」Tab 查看待复习项,或在首页查看热力图。

命令

命令 说明
打开智学助手侧边栏 打开主界面侧边栏
基于当前文档生成试题 打开文件选择器出题
基于当前文档直接生成试题 基于当前活动 Markdown 笔记直接生成试题
识别当前文件试卷 对当前文件执行整卷识别
查看错题本 打开错题列表
查看题目生成历史记录 打开生成历史
重建知识点索引 重建所有知识点索引笔记

快捷键

不预设任何快捷键。请在 设置快捷键 中自行绑定(例如把 Ctrl+Q 绑定到 基于当前文档直接生成试题)。


配置

核心设置

设置项 说明 默认值
界面语言 界面语言(中文 / English 中文
接口类型 Ollama 或 OpenAI 兼容 Ollama
接口地址 API 服务地址 http://127.0.0.1:11434
模型名称 AI 模型 qwen2:7b
API Key 仅在托管服务需要时填写 (空)
Temperature 随机性 (0–2) 0.1
根文件夹 所有模块文件夹的父目录 智学助手
题目文件夹 生成题目保存路径 题目
错题文件夹 错题保存路径 错题
笔记文件夹 学习笔记保存路径 笔记
知识点文件夹 知识点索引保存路径 知识点
排除文件夹 不参与扫描的文件夹 .trash, 模板, templates

复习间隔因子

间隔由每个模块的**难度因子(SM-2 的 EF)**控制:SM-2 按 1 天 → 6 天 → 上一间隔 × 因子递增长,因子再随每次评分微调。推荐 2.0–2.8(标准 2.5);输入限制在 1.3–3.0

模块 默认因子 预设(少复习 / 标准 / 多复习)
错题 2.3 2.7 / 2.5 / 2.3
题目 2.5 2.7 / 2.5 / 2.3
笔记 2.5 2.7 / 2.5 / 2.3

界面

侧边栏共有 7 个 Tab

Tab 功能
🏠 首页 统计概览(4 卡片)+ 学习热力图 + 复习提醒 + 快捷操作
📝 题目 出题设置、题目文件管理、文件选择器
📋 笔记 从文件创建学习笔记、笔记管理
❌ 错题 错题列表、详情、手动添加、复习、导出、重生成
📊 复习 统一到期复习看板,支持筛选 / 排序 / SM-2 评分
💬 AI 内置基于笔记检索的对话助手
⚙️ 设置 所有配置项

技术栈

技术 用途
Obsidian API 插件平台
TypeScript 开发语言
esbuild 构建工具
docx Word 文档生成
SM-2 间隔重复算法

更新日志

v2.3.0

  • 真 SM-2 间隔重复:每条记录独立维护难度因子(EF)与重复次数;复习采用四档评分(忘记 / 困难 / 一般 / 简单)。每个模块只填一个间隔因子(默认 错题 2.3 / 题目 2.5 / 笔记 2.5,推荐 2.0–2.8),并提供 少复习 / 标准 / 多复习 一键预设;间隔按 1 天 → 6 天 → 上一间隔 × 因子 递增。
  • 手动添加错题:在 错题 页手动录入(内容 / 来源 / 知识点标签 / 备注)。
  • 仅答案导出:可导出只含答案与解析的试题文件(错题详情同样支持)。
  • 聊天工作区:AI 对话支持工作区,每个工作区内可有多个独立会话;每个会话单独记忆检索范围(旧版单一历史自动迁移)。
  • 本地日期修复:复习排期改用本地时区,不再出现 UTC 导致的差一天。
  • 设置单一来源:原生设置页与侧边栏设置页由同一 schema 渲染,不再各自分叉。
  • 清理:移除两个未使用依赖;移除硬编码的全局 Ctrl+Q 监听,改为普通命令(快捷键自行绑定)。
  • 307 项测试通过;tsc 0 错误;ESLint 0 错误 / 0 警告。

v2.2.0

  • 内置 AI 对话:藏在智学助手侧边栏的 AI 页签——基于笔记检索回答,支持多文件引用(当前笔记/选区或从文件选择器挑选)、可配置引用预算、Markdown 渲染、复制/重新生成、贴底滚动。
  • 检索更稳:中文 2/3-gram 分词、文件名/路径加权、两段式候选排序(只读取命中的文件)。
  • 对话体验:就地错误/警告气泡、超长提示、Ctrl/⌘+Enter 发送、打开即聚焦。
  • 可靠性:文件夹创建幂等(不再启动报 “Folder already exists”)、网络错误友好提示、历史记录裁剪(≤100 条,结果截断)、题目/笔记/错题列表短时缓存。
  • 可维护性sidebarView.ts 由约 3700 行拆分为 src/views/sidebar/ 下 13 个模块;数据/列表/导出逻辑下沉到 VaultDataService;脆弱的 [style*=] CSS 选择器全部替换为语义 class。
  • 重建 main.js;CI 增加构建 + 单元测试;新增护栏测试确保无 eval / 无脚本注入。
  • 194 项测试通过;tsc 0 错误、ESLint 0 errors。

v2.1.0

  • 一键中英文切换 — 全部 Tab 约 500 条 UI 文案接入中英文字典,在设置页(或侧边栏设置内)一键切换、即时生效。
  • AI 提示词双语化 — 出题、识别试卷、生成笔记、添加标签的提示词支持中英文,保留「语言与材料一致」规则。
  • 英文解析与导出兼容 — 题目解析器与导出器识别 Answer: / Explanation: / Answer Summary 等英文标签,英文材料出的题可正常解析与导出。
  • 字典回退机制 — 漏翻文案自动显示原文,界面永不空白。
  • 动态脚本剥离正则改为与 minifier 变量名无关,createElement("script") 始终保持 0 处,满足 Obsidian 审核 lint。
  • 153 项测试全部通过(新增:字典完整性、占位符替换、提示词双语、英文解析);tsc 0 错误、ESLint 0 errors。

v2.0.1

  • 清除 setimmediate 依赖残留的动态 <script> 注入(Obsidian 审核 lint 报错的靶点),createElement("script") 由 3 处降为 0 处,解除社区审核阻塞。

v2.0.0

  • 知识点索引重建更可靠 — 单个标签写入失败不再中断整个重建;过期索引一次性全部清理。
  • 复习进度跨会话持久化 — 间隔 / 答对次数以数字存储,间隔重复连续记录不再因重载被重置。
  • 热力图响应式 — 使用滑动条、自动定位当天,并在调整侧边栏时始终钉在当天。
  • 新增系统化测试套件(知识点索引、文档服务、笔记服务、修复验证)。

支持

如果这个插件对你的学习有帮助,欢迎在 GitHub 上给一个 ⭐!

GitHub: https://github.com/xxinjie21/Smart-Quiz-Tutor

如有问题或建议,请 提交 Issue


许可

ISC License