Gigi
bb9e98ff16
docs: update CHANGELOG.md for v0.10.0
2025-10-20 23:04:45 +02:00
Gigi
073bb3867f
chore: bump version to 0.10.0
v0.10.0
2025-10-20 23:04:08 +02:00
Gigi
1ac7fb26b2
Merge pull request #22 from dergigi/tts
...
feat: Add comprehensive Text-to-Speech (TTS) functionality
2025-10-20 23:03:22 +02:00
Gigi
a551234a29
feat(tts): use Speaker language mode (system|content) with fallback to legacy flags
2025-10-20 22:59:26 +02:00
Gigi
227f062456
feat(settings): consolidate TTS language into Speaker language dropdown (default: content)
2025-10-20 22:58:36 +02:00
Gigi
6c42ee88ea
fix(lint): avoid empty catch in TTSControls detection
2025-10-20 22:56:16 +02:00
Gigi
fc138f3ceb
feat(tts): select voice by detected/system language per utterance
2025-10-20 22:55:15 +02:00
Gigi
831f701c04
feat(tts): detect content language with tinyld and honor system lang toggle
2025-10-20 22:54:06 +02:00
Gigi
94b9d89225
feat(deps): add tinyld for client-side language detection
2025-10-20 22:53:14 +02:00
Gigi
2793a6dd44
feat(settings): add toggles for TTS language (system, content detection)
2025-10-20 22:35:25 +02:00
Gigi
9086692e29
feat(settings): set defaults for TTS language flags (system=false, content=true)
2025-10-20 22:35:04 +02:00
Gigi
f8c4bbb99c
feat(settings): add TTS language flags (system, content detection) to UserSettings
2025-10-20 22:34:35 +02:00
Gigi
b14842c6fe
fix(lint): wrap createUtterance in useCallback and correct deps for hooks
2025-10-20 22:29:45 +02:00
Gigi
7cdf0673bd
fix(tts): guard events to current utterance and force restart via updateRate()
2025-10-20 22:25:54 +02:00
Gigi
bbed20d679
chore(tts-debug): add temporary console debug logs for speed changes and state
2025-10-20 22:22:38 +02:00
Gigi
7594d30fd2
feat(tts): restart from word boundary on speed change for immediate effect
2025-10-20 22:14:56 +02:00
Gigi
67506d9040
fix(tts): apply rate changes immediately including when paused
2025-10-20 22:13:10 +02:00
Gigi
e2d0bc2acf
fix(tts): sync default rate changes from settings without refresh
2025-10-20 22:11:21 +02:00
Gigi
2283f4ec08
fix: remove eslint-disable and use proper type casting for SpeechSynthesisUtterance
2025-10-20 22:10:55 +02:00
Gigi
463ac8f44c
fix(tts): apply rate changes whether utterance is speaking or paused
2025-10-20 22:10:18 +02:00
Gigi
e2de6f2d91
fix: resolve linter and type check errors in TTS code
2025-10-20 22:09:28 +02:00
Gigi
fdb52fe3b2
style(tts-settings): use setting-buttons layout like Default Bookmark View
2025-10-20 22:07:31 +02:00
Gigi
ae14064822
style(tts-settings): use same speed cycling button as TTSControls
2025-10-20 22:06:25 +02:00
Gigi
5526bfc425
chore(settings): reorder TTS settings above Layout & Behavior
2025-10-20 22:06:02 +02:00
Gigi
b3f4b03229
style(tts): remove button labels, show icons only
2025-10-20 22:05:21 +02:00
Gigi
b92f5716dc
feat(tts): use default speed from settings in TTSControls
2025-10-20 22:05:04 +02:00
Gigi
177f8c1e70
feat(settings): integrate TTSSettings into settings page
2025-10-20 22:05:01 +02:00
Gigi
0407769206
feat(settings): create TTSSettings component
2025-10-20 22:04:58 +02:00
Gigi
eb75e7722d
feat(tts): add ttsDefaultSpeed to UserSettings
2025-10-20 22:04:55 +02:00
Gigi
81aa414d2e
fix(tts): apply speed changes immediately during playback
2025-10-20 22:03:05 +02:00
Gigi
c82fb65745
style(tts): remove Stop button, keep Play/Pause and Speed
2025-10-20 22:02:00 +02:00
Gigi
cc1b9f042f
feat(tts): extend speed range to 3x with 2.1x default
2025-10-20 22:01:13 +02:00
Gigi
c2bf4b4a9a
feat(tts): replace speed dropdown with cycling button
2025-10-20 22:00:46 +02:00
Gigi
13a47e4fdc
style(tts): use design system colors and typography
2025-10-20 22:00:27 +02:00
Gigi
24b652847c
style(tts): right-align TTS controls
2025-10-20 21:59:47 +02:00
Gigi
c623dc8d84
style(tts): reduce button and text sizes for compact layout
2025-10-20 21:59:31 +02:00
Gigi
31987010b8
docs(tts): add TTS feature to FEATURES.md
2025-10-20 21:42:02 +02:00
Gigi
b3206d5e79
feat(reader): integrate TTS controls in ContentPanel
2025-10-20 21:41:31 +02:00
Gigi
34f44c59b5
feat(tts): add TTSControls component with play/pause/stop and rate
2025-10-20 21:41:19 +02:00
Gigi
a51fbd25d7
feat(tts): add Web Speech API hook
2025-10-20 21:41:07 +02:00
Gigi
95f6949ab7
docs(changelog): add 0.9.1 release notes and update compare links
2025-10-20 21:31:42 +02:00
Gigi
1e613bd2a2
chore: bump version to 0.9.1
v0.9.1
2025-10-20 21:26:25 +02:00
Gigi
95b882b0d1
fix(css): constrain video player to prevent horizontal overflow
...
- Set .reader-video to width: 100%, max-width: 100%, aspect-ratio: 16/9
- Remove negative margins and viewport-based sizing
- Add overflow: hidden to contain player within reader bounds
- Fixes video bleeding to the right on smaller screens
2025-10-20 21:26:05 +02:00
Gigi
be00f1434d
feat(settings): default renderVideoLinksAsEmbeds to true
...
- Initialize settings with renderVideoLinksAsEmbeds: true
- Merge default when loading and watching settings events
- Ensures video links are embedded by default
2025-10-20 21:20:39 +02:00
Gigi
568890e131
fix: prevent ReactMarkdown img renderer from injecting unknown props
...
- Remove props spread to avoid node="[object Object]" artifacts
- Ensures downstream VideoEmbedProcessor can cleanly replace video <img> tags
2025-10-20 21:19:27 +02:00
Gigi
f000ac3be1
feat: embed <video> blocks and <img> video src in VideoEmbedProcessor
...
- Replace entire <video>...</video> and <img> tags with placeholders
- Extract URLs in same order to align with placeholders
- Also replace bare file URLs and platform-classified video URLs
- Ensures no broken tags remain; uses ReactPlayer for rendering
2025-10-20 21:15:46 +02:00
Gigi
2fed1cc6e7
fix: robustly replace img tags with video URLs
...
- Changed approach to find ALL img tags first, then check if they contain video URLs
- Properly escapes regex special characters in img tags before replacement
- Fixes issue where img tags with video src attributes were not being replaced
- Handles edge cases like React-added attributes (node=[object Object])
- Now correctly converts markdown video images to embedded players
2025-10-20 21:11:58 +02:00
Gigi
4bdcfcaeb4
feat: properly handle video URLs in markdown img tags
2025-10-20 21:10:16 +02:00
Gigi
a5494ba15c
fix: improve URL regex patterns to prevent text artifacts
...
- Updated VideoEmbedProcessor regex patterns to use lookahead assertions
- This prevents capturing HTML attribute syntax like quotes and angle brackets
- Fixes text artifact appearing in UI when processing video URLs in HTML content
2025-10-20 20:45:22 +02:00
Gigi
64aad42be3
fix: prevent double video player rendering
...
- Modified ContentPanel to disable VideoEmbedProcessor when isExternalVideo is true
- This prevents both ContentPanel and VideoEmbedProcessor from rendering ReactPlayer for the same video URL
- Fixes issue where video players were showing twice
2025-10-20 20:44:38 +02:00