Repository navigation
1.293.0
1.293.0 — The Practice view matches the exam app's question screen
The Practice question screen is rebuilt from the owner's screenshots of the
official testing app, recorded as text in docs/practice-bluebook-reference.md.
The layout is clean-room: no exam-app code, artwork, font or wording is copied,
and colours still come from the user's Obsidian theme.
- Header and tools — the section title with Directions beneath it, a
centred timer and its Hide pill, and labelled tool buttons
(Highlights & Notes, Calculator, Reference, More) replace the
generic bar. The practice-test ribbon is no longer rendered. - Answers — full-width outlined rows with a lettered circle, and the
cross-out control outside the box. A crossed-out choice keeps a solid 1 px
border, greys and strikes its text, slashes the letter circle and swaps the
control for a small orange Undo pill. The controls and Undo no longer
inherit the plugin's 44 px tap target, so they render at their intended
22 px and 20 px. - Highlights — the drawer's highlight panel is replaced by one floating
pill anchored above the selected text or the clicked highlight, with the four
colours, a highlight/underline toggle, remove and an inline note field.
Marks also paint inside answer choices, true/false options and review rows;
clicking a mark reopens the pill, and a drag across choice text no longer
counts as choosing that answer. - Selection capture —
selectionchangeplus a range-text fallback and
section detection, and exam text opts back into text selection because
Obsidian's own chrome disables it. - Calculator — a graphing tab plots an expression of
xthrough the
existing restricted evaluator and draws an SVG path. There is still no
eval,new Function, dependency or network call.
src/practice-view.js, src/practice-tools.js, src/calculator.js and
styles.css carry the change. tests/practice-chrome.test.js adds 16 tests,
and tests/practice-tools.test.js is updated for the pill and the labelled
tool row. No dependency, provider, network path, note schema or storage format
was added.
Verification: node --test → 2,498 pass, 0 fail; npm run check clean
across 347 source files; main.js is 6,985,509 bytes from
350 modules. The plan records 98 checked / 3 partial / 0 unchecked.