Repository navigation
Releases: AnkingLin/EasyQuiz
Releases · AnkingLin/EasyQuiz
Release list
1.1.4
1.1.3
文档修正(插件代码未变)
- 两份 README 与
skills/easyquiz-authoring/SKILL.md不再描述已经移除的![[题库#题面]]题卡嵌入:图片、笔记小节一律按 Obsidian 原生方式渲染,题目引用只用「题目id」内联代码。 - 源码结构、纯逻辑模块清单与测试条数(422)已与代码对齐。
main.js 与 1.1.2 完全相同(sha256 d9cb95b1c6e4ffd692808669c74d6d0e8a1e95cdf538fbfef50fed5b1f00bee8),本版只为让插件页面和仓库显示修正后的说明。
1.1.2
1.1.1
1.1.0
嵌入式编写(主题)
这个版本把「在笔记里写题、在笔记里做题、让 AI 帮忙写题」串成一条链路。
AI Skill
- 新增
skills/easyquiz-authoring/SKILL.md:五种题型的骨架、选项锚点、降级规则、知识点链接约定;示例由测试真实解析并判分。 - AI 可以按规范批量补题、修题,也可以在讲义里插入单道可作答的题卡(
![[题库#题面]])。
题型编写
- 标题匹配新增「自动匹配最近的标题」:任何自身章节里有
quiz数据块的最近标题都会成为题目。 - 数据块新增
question字段可覆盖显示题面;新增distractors为选择题追加干扰项(个数 + 候选池,每次作答重抽)。 - 题面按题型从目标段向上取:紧邻一段属于题面,再往上只有表格强制空行才继续;贴在选项上的说明进入「补充内容」,配对题只识别最近一张表,问答题 callout 与其上段落一起显示。
- 表格、选项、解析、配对格子都按 Obsidian Markdown 渲染,答题页与预览一致。
刷题与题库
- 题卡右上角新增编辑按钮,按原生内链跳回源笔记中的题目位置,已打开则复用标签页。
- 切回已答题目会显示当时的作答,右上角统计同步更新。
- 文件夹勾选框支持部分选中;题库列表返回时自动感知文件变化。
- 题目和题库都能清除作答记录;命令面板可直接为当前题库开始一轮。
完整说明见 README。
1.0.10
1.0.9
1.0.8
chore(release): 1.0.8 Patch release: two practice-window layout fixes. - The footer no longer leaves a strip of background under it. The scroll container's own bottom padding was pushing the sticky bar up; the breathing space now lives in the bar, so it sits flush with the bottom edge. The practice page's navigation bar had the same defect and is fixed with it. - The settings panel's three rows now carry symmetric padding. Obsidian's `.setting-item` adds an 8px bottom margin and nothing on top, which showed up as a lopsided gap, and its 16px padding stacked onto the panel's own. The README screenshot generator loaded `styles.css` before `theme.css`, the reverse of Obsidian, so its approximate `.setting-item` rule was masking the second defect in every committed screenshot; the order is corrected and the three practice-window screenshots regenerated. No question-format, degrade-rule or record-key changes, and minAppVersion stays at 1.4.0. The suite grows from 381 to 383 cases.
1.0.7
EasyQuiz 1.0.7 Two rendering fixes and one new feature. Fixes - Choice options containing `~` lost it on the card. Options were written with the match-normalised text, which strips `* _ ` ~` so that `H~2~O` and `H2O` compare equal, and using that for display meant the stripped characters vanished: `H~2~O` rendered as `H2O` and `约 ~5%` as `约 5%`. Options now render as Markdown, so Markdown and literal symbols both survive. The same normalised string also reached the review list and the "answer is a (text)" hint, so a new display-only helper covers those: it strips only paired markers and keeps a lone `~` or `_`, because those are subject-matter symbols rather than markup. - The practice window's **Shuffle** did not shuffle the choice options. It only ever reached the question order, so the toggle looked broken and a shuffled card had nothing to grade positionally - which is the reported "shuffled options are not graded against the right answer". Options now shuffle with the anchors travelling alongside them, so grading is unchanged and still anchor-based. The order is derived from the round's seed, so it holds still while reviewing an answer or stepping between questions and only re-rolls for a new round; a card whose options jump around reads as "the answer changed". Changes - `![[bank#question]]` renders an answerable question card inside any other note. The subpath is the stem heading without the trailing `^[[[]]]` knowledge link; answering writes back to the bank note as usual, and the card's knowledge-point link still points at the knowledge note. A review note or handout can therefore be assembled from questions that already exist, without copying their text and without the copies drifting. Anything that is not provably a question is left untouched, so ordinary `![[note#section]]` embeds keep Obsidian's behaviour. Notes - Obsidian's own heading embed cannot do this. A plain embed renders the section's Markdown, which for a question is the option list plus the raw `quiz` fence rather than a card; and Obsidian normalises punctuation when comparing headings, so the trailing knowledge link derails the match and it falls back to rendering the entire bank file. - No question-format, degrade-rule or record-key changes. Existing banks and records keep working, and minAppVersion stays at 1.4.0. Tests - The suite grows from 344 to 381 cases. The option tests assert what actually reaches the renderer, the shuffle tests assert that a shuffled card still submits the right anchor and still marks the right row, and the embed tests cover src parsing, heading matching in both raw and link-flattened form, the claim boundary under nesting, and the recursion guard that keeps a self-referencing question from rendering forever.
1.0.6
EasyQuiz 1.0.6 The practice window's toolbar no longer carries a phantom left margin, and the narrow-screen layout lines up. Fixes - The toolbar is no longer pinned right with `margin-left: auto`. In the practice page's header - a wrapping flex row holding the title, the hint and the toolbar - a flex container hands every bit of free space to auto margins, so once the toolbar wrapped onto its own line that space travelled with it as a ~149px left margin. It now aligns to the row's start via `align-self`, which only affects the cross axis and so is immune to wrapping. - File rows in the narrow-screen list indented inconsistently. The row's text column kept a content-sized flex basis, so flex judged "does this fit?" by content width: rows with a long path pushed the whole text block onto a second line, indenting those rows by 40px while short-path rows sat at 12px in the same list. Every row now renders the same way. - The toolbar and the footer actions wrap onto their own line using `width: 100%` rather than a percentage `flex-basis`. Both are also children of column flex containers, where a percentage basis resolves against height instead of width. - The jump-question input was 40px next to 44px navigation buttons in a row that centres its items, leaving it visibly short at top and bottom. Notes - Stylesheet only: no question-format, record-key, settings or API changes. Existing banks and records keep working, and minAppVersion stays at 1.4.0. - Three README screenshots are regenerated, because the practice-window scenes are captured at 520px, inside the narrow-screen breakpoint. Tests - The suite grows from 340 to 344 cases. jsdom has no layout engine and cannot see any of these defects, so the new assertions pin the declarations that cause them: no auto margin on the toolbar, no percentage flex-basis in the narrow-screen block, a zeroed file-row basis, and a jump input matching the nav buttons. Restoring any of the four old rules makes its assertion fail.