feat: initial release — Ranger Reader v1.1.0

Single-file HTML RSVP reader for academic papers and long-form text.
Released free / GPL v2+ as a replacement for subscription-based RSVP
readers (SwiftRead, etc.) that cost ~$120/year for the same core
functionality.

v1.1.0 ships with three reading modes:
- Word: classic RSVP with ORP focal-character coloring
- Sentence: chunked reading, auto-advancing on word-count timing
- Paragraph: skim mode

Other features: WPM slider 200-1500, drag-drop .txt loading,
localStorage persistence (text + WPM + mode + position), keyboard
shortcuts, dark-mode WP-tone palette, sentence splitter that
handles common academic abbreviations (Mr./Dr./e.g./i.e./et al./
Vol./Fig./decimals).

Single self-contained HTML file. No install, no dependencies,
no network calls. Runs in any modern browser, fully offline.
This commit is contained in:
2026-05-27 02:29:17 +01:00
commit 5e0ef5adf1
4 changed files with 1092 additions and 0 deletions
+52
View File
@@ -0,0 +1,52 @@
# Changelog
All notable changes to **Ranger Reader** are documented here.
Format: [Keep a Changelog 1.1.0](https://keepachangelog.com/en/1.1.0/) — versioning: [SemVer](https://semver.org/).
---
## [Unreleased]
---
## [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.25` interval, clamped to 1.512 s per chunk
- **Paragraph** (`3`) — one paragraph at a time, larger reading area, `(words / WPM) × 1.40` interval
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 (2001500, 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 `.txt` file loading anywhere on the page
- `localStorage` persistence — 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.