The WPM slider's maximum value now adapts to the active reading mode: - Word mode: 1500 WPM ceiling (human single-word recognition limit) - Sentence / Paragraph modes: 3000 WPM ceiling Rationale: in chunk modes, "WPM" controls auto-advance timing across larger display units. A 20-word sentence at 3000 WPM still gets ~400 ms of display time — well within visual-recognition comfort and suitable for skim-pass reading of already-familiar material. Switching back to Word mode auto-clamps the current value down to 1500 to prevent accidentally-illegible word-mode playback. The `+` keyboard shortcut now respects the mode-specific ceiling instead of being hardcoded to 1500.
3.7 KiB
Changelog
All notable changes to Ranger Reader are documented here. Format: Keep a Changelog 1.1.0 — versioning: SemVer.
[Unreleased]
[1.1.1] — 2026-05-27
Changed — Mode-aware WPM ceiling
The WPM slider's maximum value now adapts to the active reading mode:
- Word mode: 1500 WPM ceiling (human single-word recognition limit — beyond ~25 ms per word the brain stops registering individual words)
- Sentence and Paragraph modes: 3000 WPM ceiling. In chunk modes the "WPM" controls auto-advance timing across larger display units, so higher values still produce comprehensible reading speeds (a 20-word sentence at 3000 WPM still gets ~400 ms of display time, which is well within visual-recognition comfort)
Switching from a high-WPM chunk mode back to Word mode automatically clamps the current value down to 1500, preventing accidentally-illegible word-mode playback.
The + keyboard shortcut now respects the mode-specific ceiling.
Why this matters
For skim-pass reading on long thesis papers, the previous 1500 WPM cap in Sentence mode was too conservative. With a 20-word sentence at 1500 WPM the display held each sentence for ~1 s — comfortable but slower than necessary for already-known territory. 3000 WPM cuts that to ~400 ms, suitable for the Preview / Postview phases of structured reading (preview chapters, scan for known concepts, identify sections that warrant a slower second-pass read).
[1.1.0] — 2026-05-27
Added — Sentence and Paragraph reading modes
The single-word RSVP display from v1.0 is now one of three modes selectable via the toggle in the header (or keyboard 1 / 2 / 3):
- Word (
1) — original RSVP, one word at a time with ORP focal-character coloring - Sentence (
2) — one full sentence at a time, auto-advancing on(words / WPM) × 1.25interval, clamped to 1.5–12 s per chunk - Paragraph (
3) — one paragraph at a time, larger reading area,(words / WPM) × 1.40interval
The sentence splitter handles common academic-text false positives — titles (Mr., Dr., Prof.), Latin (e.g., i.e., et al.), abbreviations (Vol., Fig., Eq., Ref.), and decimal numbers — by guarding them before splitting on .!? followed by whitespace and capital letter.
Paragraph splitting is on blank-line separation (the conventional output of pdftotext).
Other v1.1 polish:
- Stage centre guide-lines hidden in Sentence / Paragraph modes (single-word framing isn't needed)
- Skip-distance adapts per mode: ± 10 in Word mode, ± 1 in chunk modes
- Meta text adapts to mode:
N / total words/sentences/paragraphs - Time-remaining always computed in raw words regardless of mode (so 500 WPM means 500 WPM everywhere)
- Mode is persisted alongside text + WPM + position in
localStorage - v1.1 version stamp visible in header
[1.0.0] — 2026-05-27
Initial release.
Added
- Single-word RSVP display with WPM slider (200–1500, default 500)
- ORP (Optimal Recognition Point) focal-character coloring in red
- Punctuation-aware pause: 2.5× for period/exclamation/question, 1.7× for comma/semicolon/colon, 1.3× for closing brackets
- Progress bar + meta (
N / total words · ~X min remaining at Y WPM) - Keyboard shortcuts (
Space,←/→,+/−,R) - Drag-and-drop
.txtfile loading anywhere on the page localStoragepersistence — text, WPM and position survive page reloads- Dark-mode WP-tone palette (accessible-contrast colour scheme)
- "Done" state turns the display green when the paper finishes
Single self-contained HTML file. No dependencies, no install, no network calls. Runs in any modern browser, fully offline.