Skip to content

1.0.7

Choose a tag to compare

@github-actions github-actions released this 16 Oct 08:49
· 36 commits to master since this release
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.