94 lines
4.4 KiB
Markdown
94 lines
4.4 KiB
Markdown
# TODO
|
||
|
||
## Bookmarks and per-book progress
|
||
|
||
Paragraph-level resume restores the last reading position. Add named bookmarks
|
||
and a compact recent-books/progress list so readers can return to several
|
||
places in a book without overwriting their normal resume point.
|
||
|
||
## Reading profiles
|
||
|
||
Add selectable reading profiles for punctuation and paragraph pause lengths,
|
||
long-word delay, unfamiliar-word timing, and WPM presets. Keep a plain/default
|
||
profile that preserves the current cadence.
|
||
|
||
Replace fixed 2×/3× sidecar word-delay values with categorical timing tags.
|
||
Map each category to a configurable delay in reader settings, so changing a
|
||
delay does not require regenerating sidecars. Version the format change and
|
||
keep existing v1/v2 sidecars readable.
|
||
|
||
## Dialogue and character colors
|
||
|
||
Add optional color rendering for dialogue and character names. The converter
|
||
should detect conventional quotation marks and styled thought/dialogue spans,
|
||
then attribute only high-confidence spans to a canonical entity. Store the
|
||
entity identity, never a color, in a compact v3 RSVP sidecar; load a separate,
|
||
editable per-book entity map that assigns each entity a hue from 30 through 330
|
||
in 30-degree HSL steps at 100% saturation and 75% lightness. Include aliases
|
||
so descriptions such as "mysterious man" can later resolve to a named entity,
|
||
and report unresolved or ambiguous attribution for review rather than guessing.
|
||
|
||
Keep the sidecar sparse: unassigned words must have no sidecar record at all,
|
||
not a record with an entity ID of zero or another null sentinel. Extend a
|
||
record only when it already exists for style/timing metadata or when an entity
|
||
assignment requires one. Add a persisted reader setting to toggle coloring
|
||
without requiring reconversion.
|
||
|
||
## Converter preflight and safe section splitting
|
||
|
||
Add a `--check` mode that reports section word counts, section and sidecar
|
||
sizes, filename issues, and unsupported characters without writing output.
|
||
Offer optional splitting at paragraph boundaries for sections that exceed the
|
||
device's 150,000-word or 1 MiB file limits.
|
||
|
||
## Memory-limit hardware validation
|
||
|
||
Stress-test the 150,000-word and 1 MiB section/sidecar limits on real hardware,
|
||
record PSRAM headroom, and lower the supported limit if token indexing or
|
||
sidecar metadata leaves insufficient memory for reliable reading. Include
|
||
adversarial short-word and dense-sidecar inputs, not just ordinary prose.
|
||
|
||
## Reading continuity preference
|
||
|
||
Keep the current default of pausing on every chapter title, but add an optional
|
||
auto-continue mode for readers who want uninterrupted reading across sections.
|
||
|
||
## RSVP orientation point
|
||
|
||
Offer an optional focal-letter/orientation-point treatment that subtly marks a
|
||
consistent letter within each displayed word. Keep the current centered plain
|
||
word rendering as the default and make the feature work with italic and bold
|
||
fonts.
|
||
|
||
## Library diagnostics and import validation
|
||
|
||
Add a device diagnostics screen for SD-card, TOC, missing-section, sidecar,
|
||
and memory-limit errors. Extend converter preflight to report the same issues,
|
||
including oversized tokens, before a book is copied to the card.
|
||
|
||
## Add anti-aliased reader fonts
|
||
|
||
The current reader uses TFT_eSPI's bitmap FreeSans, FreeSerif, and FreeMono
|
||
fonts. They are compact and fast, but their edges remain jagged at large sizes.
|
||
|
||
Use TFT_eSPI smooth-font (`.vlw`) assets for the reading view and font-setting
|
||
previews.
|
||
|
||
1. Generate or obtain licensed `.vlw` files for sans-serif, serif, and
|
||
monospace faces at the seven supported reader sizes: 1, 1.5, 2, 2.5, 3,
|
||
3.5, and 4.
|
||
2. Place the files in a dedicated SD-card directory, for example
|
||
`/fonts/<style>-<size>.vlw`; document these required files alongside the
|
||
existing `/books/<book>/<chapter>.txt` layout.
|
||
3. Change `Board` to load the selected smooth font from SD when a font setting
|
||
is applied, and fall back to the current bitmap font if the file is absent
|
||
or cannot be loaded.
|
||
4. Continue to clear only the union of the old and new word bounds. Smooth
|
||
glyphs should be drawn with an explicit black background so anti-aliased
|
||
edge pixels blend correctly without redrawing the status bar or dead space.
|
||
5. Measure load time, RAM use, and word-to-word rendering latency on the
|
||
T-Display-S3-Pro. Keep the cached active font in memory and avoid SD reads
|
||
during normal word advances.
|
||
6. Verify that chapter-title and `The End` cards use the same selected smooth
|
||
font and remain aligned with normal words.
|