You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
**View-Engine Separation**: The view (`rsvp-view.ts`) owns the UI and event handling, while the engine (`rsvp-engine.ts`) owns reading logic and timing. They communicate via:
@@ -43,9 +66,51 @@ DashReader is an Obsidian plugin implementing RSVP (Rapid Serial Visual Presenta
43
66
4. Pass word INDEX to engine, not character position
44
67
45
68
**Heading System**: Headings are marked during parsing (`# Title` → `[H1]Title`), then:
46
-
- View detects markers and displays with proportional font size (H1=2x, H2=1.75x, etc.)
69
+
- View detects markers and displays with proportional font size (H1=1.5x, H2=1.3x, H3=1.2x, etc.)
47
70
- View adds visual separator lines before headings
- Enabled by default via `enableSlowStart` setting
111
+
- Multiplies delay over first 5 words: 2.0x → 1.8x → 1.6x → 1.4x → 1.2x → 1.0x
112
+
- Resets on each new reading session (play after stop/reset)
113
+
- Inspired by Stutter plugin's ease-in approach
49
114
50
115
**Accurate Time Estimation**: `getEstimatedDuration()` and `getRemainingTime()` iterate through ALL remaining words and sum their individual delays, accounting for:
51
116
- Heading micropauses
@@ -91,22 +156,61 @@ Settings are defined in `src/types.ts` as:
91
156
92
157
UI is built in `src/settings.ts` using Obsidian's Setting API. Inline settings in the view mirror the main settings tab.
93
158
159
+
**Enhanced Settings UI** (v1.4.0):
160
+
-**Editable Numeric Inputs**: All sliders now have editable text inputs displaying current values
161
+
- Bidirectional sync: slider ↔ input
162
+
- Validation and clamping to min/max bounds
163
+
- Unit labels (px, s, x) displayed but non-editable
164
+
- Implementation via `createSliderWithInput()` helper method
165
+
-**Extended WPM Range**: Max WPM increased from 1000 to 5000 for ultra-fast reading
166
+
-**Complete Micropause Controls**: All 8 micropause multipliers exposed in settings tab
167
+
- Sentence-ending punctuation (.,!?)
168
+
- Other punctuation (;:,)
169
+
- Numbers and dates
170
+
- Long words (>8 chars)
171
+
- Paragraph breaks
172
+
- Section markers (1., I., etc.)
173
+
- List bullets (-, *, +, •)
174
+
- Obsidian callouts
175
+
94
176
### Micropause System
95
177
96
-
Micropauses multiply the base delay (`60/WPM * 1000 ms`). Multiple conditions can stack multiplicatively:
178
+
Micropauses multiply the base delay (`60/WPM * 1000 ms`). Multiple conditions can stack multiplicatively. **All multipliers are configurable in settings** (v1.4.0):
0 commit comments