Huang Xin
99f8a29326
fix(css): apply Line Spacing to list elements, closes #3494 ( #3498 )
2026-03-09 14:01:44 +01:00
Huang Xin
04737d6f35
fix(layout): update safe insets in reader page, closes #3469 ( #3497 )
2026-03-09 13:54:03 +01:00
Huang Xin
8850e6c00f
feat(pdf): support TTS and annotation on PDFs, closes #2149 & #3462 ( #3493 )
...
* chore: bump jsdom to the latest version
* feat(pdf): support TTS and annotation on PDFs, closes #2149 & closes #3462
2026-03-09 10:28:19 +01:00
Huang Xin
93b96d64eb
fix(sidebar): use position fixed and transform for mobile sidebar ( #3490 )
...
* chore: bump nodejs version to 24
* fix(sidebar): use position fixed and transform for mobile sidebar
Use position: fixed to prevent horizontal scrolling on the mobile
bottom sheet, and replace style.top with transform: translateY() for
smooth drag performance. Cache element refs to avoid
document.querySelector on every drag frame. Apply the same position:
fixed fix to the notebook panel. Closes #3492
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-03-08 18:04:37 +01:00
srsng
9f8894c1e0
feat(setting): add an option to hide Scrollbar in scroll mode, closes #3480
...
* feat(setting) impl settings option: hide Scrollbar of scroll mode
* refactor(setting): disable hide scrollbar in paginated mode, add i18n translations
- Add disabled prop to Hide Scrollbar toggle when not in scroll mode
- Remove unnecessary `as const` assertion on string literal
- Add "Hide Scrollbar" translations for all 28 locales
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
---------
Co-authored-by: Huang Xin <chrox.huang@gmail.com>
Co-authored-by: Claude Opus 4.6 <noreply@anthropic.com>
2026-03-07 05:21:58 +01:00
Huang Xin
dac4f2e8ec
chore: experimental vinext build ( #3486 )
2026-03-06 18:04:28 +01:00
Huang Xin
54bc1514df
feat(database): add platform-agnostic schema migration system ( #3485 )
2026-03-06 20:07:26 +08:00
Huang Xin
97cab2d70b
feat(database): support turso fts in tauri apps ( #3484 )
2026-03-05 21:00:15 +01:00
Huang Xin
13588b4a65
chore(testing): add Tauri integration tests and E2E test infrastructure ( #3483 )
...
Set up WebDriver-based testing for the Tauri app with two tiers:
- Vitest browser-mode tests (*.tauri.test.ts) running inside the Tauri WebView
for plugin IPC testing (libsql, smoke tests)
- WDIO E2E tests (*.e2e.ts) for UI-level interaction testing
Key changes:
- Add webdriver Cargo feature gating tauri-plugin-webdriver
- Add runtime capability for remote URLs (webdriver builds only)
- Add vitest.tauri.config.mts and wdio.conf.ts connecting to embedded
WebDriver server on port 4445
- Add shared tauri-invoke helper for IPC from Vitest iframe context
- Add testing documentation in docs/testing.md
2026-03-05 19:14:01 +01:00
Huang Xin
0f5bd5ca1c
fix(footnote): add overflow-wrap to footnote popup to prevent long words from overflowing ( #3479 )
...
The change adds overflow-wrap: break-word to the footnote popup body styles, which ensures long unbreakable strings (like URLs or long words) wrap properly instead of overflowing
the popup container.
2026-03-05 10:49:28 +01:00
Huang Xin
a74c1a56a9
fix(metadata): parse series info from epub only when book series info not available ( #3478 )
2026-03-05 09:53:28 +01:00
Huang Xin
1e9bd1d821
chore(database): unit testing and feature detect for fts and vector search ( #3476 )
2026-03-05 07:41:16 +01:00
Huang Xin
02cc0a9ebb
chore: bump turso to 0.5.0 ( #3475 )
2026-03-04 19:54:58 +01:00
Huang Xin
5273ef75dc
feat(database): add database service abstraction with libsql/turso backend ( #3472 )
2026-03-05 02:38:23 +08:00
Blyrium
bd957a4eb8
i18n: added <0> and <1> tags for SL ( #3460 )
2026-03-04 03:06:00 +01:00
scinac
38552a0c2e
feat(reader): adding current Time and Battery to Footer ( #3306 ) ( #3402 )
...
* added current time to desktop bar
* added time prototype to footer, needs code cleanup and settings toggle
* fixed settings toggle, added translations and code cleanup
* added battery support and moved Statusbar to own Component
* #3306 added 24 hour clock support
* refactored code styling and getting rid of any type in battery hook
* Add battery info for Tauri Apps
---------
Co-authored-by: Huang Xin <chrox.huang@gmail.com>
2026-03-03 17:10:13 +01:00
Huang Xin
0609e828b1
fix(css): unset hardcoded calibre color and background color, closes #3448 ( #3457 )
2026-03-03 11:06:03 +01:00
Huang Xin
35ade2c855
fix(tts): handle documents without lang attribute or XHTML namespace, closes #3291 ( #3456 )
2026-03-03 10:35:33 +01:00
Huang Xin
b68c14da1f
i18n: add translations for Slovenian(sl), closes #3453 ( #3455 )
2026-03-03 07:20:59 +01:00
Huang Xin
5c41394961
feat(footnote): make popup window size more responsive for longer footnotes, closes #3425 ( #3454 )
2026-03-03 07:09:34 +01:00
Huang Xin
5685944599
fix(css): unset padding and margin in body, closes #3441 ( #3452 )
2026-03-03 04:52:21 +01:00
Huang Xin
94e761f681
fix(txt): more robust chapter extractor for TXT ( #3446 )
2026-03-02 18:20:50 +01:00
Huang Xin
7f636a2072
fix(toc): correct TOC grouping to prevent unnecessary nested layers ( #3445 )
2026-03-02 16:44:02 +01:00
Huang Xin
480b8b98a3
fix(css): properly constrain the max width and height of images, closes #3432 ( #3444 )
2026-03-02 16:20:01 +01:00
Huang Xin
d1fb67316f
compat(css): support duokan-page-fullscreen in spine to display cover image in fullscreen, closes #3424 ( #3443 )
2026-03-02 15:16:04 +01:00
Huang Xin
f0e9ddd2ae
feat(font): support loading custom font if embedded fonts in EPUBs are missing ( #3439 )
2026-03-02 09:18:18 +01:00
IGCFck
b16a4445ae
fix(opds): handle non-ASCII login details ( #3436 )
2026-03-02 07:01:47 +08:00
StepanSad
515d47e64d
Update translation.json ( #3423 )
...
* Update translation.json
* Update translation for pages left in chapter
---------
Co-authored-by: Huang Xin <chrox.huang@gmail.com>
2026-03-01 17:10:07 +01:00
Huang Xin
3fd78c4ed8
fix(gallery): support displaying svg image in image gallery mode, closes #3427 ( #3435 )
2026-03-01 17:08:51 +01:00
bfcs
152a95941a
fix(translation): handle missing Cloudflare context on non-Cloudflare deployments (e.g., Vercel) ( #3433 )
...
* fix(translation): handle missing Cloudflare context on non-Cloudflare deployments (e.g., Vercel)
* Simplify error handling for Cloudflare context
---------
Co-authored-by: Huang Xin <chrox.huang@gmail.com>
2026-03-01 16:40:45 +01:00
Huang Xin
bf5805910d
feat(footnote): add back navigation for footnote popup with link history, closes #3420 ( #3434 )
2026-03-01 16:30:59 +01:00
Huang Xin
431d14f4a4
fix(layout): respect grid insets for the zoom controller, closes #3426 ( #3430 )
2026-03-01 09:58:54 +01:00
Huang Xin
0d2e5b7c76
fix(translation): reduce initial layout shift in the translation view, closes #3078 ( #3428 )
...
* fix(css): allow overriding the padding of the root html
* fix(translation): reduce initial layout shift in the translation view, closes #3078
2026-03-01 09:12:02 +01:00
bfcs
e949476d27
fix(translation): resolve DeepL translation failure with auto-detection ( #3412 )
...
* fix(translation): correctly handle DeepL source_lang 'AUTO' by omitting it
* refactor: backward compatibility
---------
Co-authored-by: Huang Xin <chrox.huang@gmail.com>
2026-03-01 06:03:52 +01:00
Huang Xin
0afff573a1
chore: bump dependencies to resolve Dependabot alerts ( #3421 )
2026-02-28 18:31:33 +01:00
Huang Xin
d4bb61f12b
fix(layout): responsive layout for OPDS catalogs and download button ( #3418 )
2026-02-28 17:07:20 +01:00
Huang Xin
09c45b4615
fix(linux): avoid transitions API on WebKitGTK on Linux ( #3417 )
2026-02-28 16:35:39 +01:00
Huang Xin
d8eef87bf0
chore(agents): add AGENTS.md for readest-app ( #3415 )
2026-02-28 15:30:31 +01:00
Huang Xin
66d2fdf999
release: version 0.9.101 ( #3410 )
2026-02-28 09:50:23 +01:00
Huang Xin
d8e0ceeff1
fix(annotator): add page number in highlight export to Readwise ( #3409 )
2026-02-28 09:45:09 +01:00
Huang Xin
f3ad97b989
fix(opds): add missing book description in OPDS feed ( #3408 )
2026-02-28 09:30:56 +01:00
Huang Xin
1bb49ab023
fix(tts): dispose of the TTS view when shutting down the TTS controller, closes #3400 ( #3406 )
2026-02-28 08:58:02 +01:00
bfcs
f9a0b39586
fix: respect fixed translation quota in UI stats and DeepL provider ( #3404 )
2026-02-28 08:10:31 +01:00
Huang Xin
c533da498d
feat(annotator): add page number for annotations, closes #3082 ( #3405 )
...
* feat(annotator): add page number in annotation
* feat: add page number for annotations, closes #3082
2026-02-28 08:08:56 +01:00
Huang Xin
b50bc0b854
fix: make touchpad scrolling respect the system’s natural scrolling settings, closes #3127 ( #3398 )
2026-02-27 07:24:49 +01:00
Huang Xin
96c465931c
fix(toc): fix phantom subchapter TOC item ( #3397 )
2026-02-27 07:23:12 +01:00
Huang Xin
2bd54ac236
fix(tts): also show highlight when navigating in paused mode and improve abbreviations processing ( #3396 )
...
Closes #3317 .
2026-02-27 06:46:27 +01:00
Huang Xin
6ad549d13c
fix(iOS): correct sidebar insets on iPad and resolve occasional stale safe area inset on iOS ( #3395 )
2026-02-27 05:43:45 +01:00
Blyrium
67249370c9
fix(font): fix generic font family keywords bypassing user font settings ( #3394 )
...
* Fix generic font families resolving incorrectly
Replace `serif`, `sans-serif`, and `monospace` keywords in epub stylesheets with their corresponding CSS variables (`var(--serif)`, `var(--sans-serif)`, `var(--monospace)`), ensuring the user's configured fonts are always used.
Fixes https://github.com/readest/readest/issues/3334
* Got rid of the lookbehind
But now we're using a placeholder.
2026-02-27 08:55:24 +08:00
Huang Xin
fe3ab011ca
fix(tts): set document lang attribute when missing or invalid for TTS, closes #3291 ( #3393 )
2026-02-26 17:17:51 +01:00