Huang Xin
82922c5053
feat(eink): add an option to save last book cover on Android, closes #1414 ( #2361 )
2025-10-29 16:15:08 +01:00
Huang Xin
123293dc0e
fix: fixed crash when switching allow script ( #2351 )
2025-10-29 03:17:17 +01:00
Huang Xin
d01599a2b4
feat(security): sanitize XHTML safely to prevent XSS when scripts are disabled, closes #2316 ( #2342 )
2025-10-28 04:28:48 +01:00
Huang Xin
34fbea6a44
css: properly handle theme color in dark mode for code blocks, closes #2281 ( #2290 )
2025-10-22 06:56:53 +02:00
Huang Xin
35fbce3506
feat(settings): added an option to disable animation in E-Ink mode, closes #2253 ( #2257 )
2025-10-17 18:00:58 +02:00
Huang Xin
f8fef57cf3
fix(layout): overriding book layout no longer overrides explicit text alignment, closes #2249 ( #2254 )
2025-10-17 11:44:32 +02:00
Huang Xin
948b35f244
perf: support concurrent book uploading, closes #2208 ( #2229 )
2025-10-14 14:00:31 +02:00
Huang Xin
96cc182a8c
feat: support overriding html language code with language code in metadata, closes #2222 ( #2227 )
2025-10-14 13:09:23 +02:00
Huang Xin
60ddb17547
feat: add support for per-book background image settings in addition to global settings, also closes #2223 ( #2225 )
2025-10-14 08:54:26 +02:00
Huang Xin
08e558bd41
fix: actually allow script in the transform target, closes #2200 ( #2203 )
2025-10-11 12:59:55 +02:00
Huang Xin
ec397a2daf
fix: draw annotations of the current section on load, closes #2163 ( #2174 )
2025-10-05 17:47:34 +02:00
Huang Xin
bb34b1ba59
a11y: add screen reader support ( #2040 )
...
Tested with VoiceOver on iOS and macOS
2025-09-14 22:00:42 +02:00
Huang Xin
9fd152d727
refactor(a11y): add basic lint for accessibility ( #2021 )
2025-09-11 18:57:04 +02:00
Huang Xin
e03b0af58a
feat: swipe to paginate on fixed layout books, closes #1028 ( #1995 )
2025-09-07 16:14:34 +02:00
Huang Xin
71c2143cba
fix: avoid pagination until book view is inited, closes #1983 ( #1994 )
2025-09-07 14:47:35 +02:00
Huang Xin
782e9c8b20
fix: restore scale factor (zoom level) for PDFs, closes #1985 ( #1989 )
2025-09-07 06:12:57 +02:00
Huang Xin
77c4303938
feat(pdf): support setting zoom level, zoom mode and spread mode for PDF ( #1969 )
...
This should close #1717 , close #1276 , close #669 .
2025-09-05 18:20:15 +02:00
Huang Xin
32954e025c
fix(tts): media control in the lock screen and with airpods for iOS, closes #1407 ( #1949 )
2025-09-02 17:24:16 +02:00
Huang Xin
06db7f36f8
refactor: rename ConfirmSyncDialog to KOSyncResolver ( #1937 )
2025-08-31 05:46:43 +02:00
Huang Xin
856ed4d3b3
ux: add splash screen for iOS and Android and reduce flash when opening books ( #1926 )
2025-08-29 19:10:09 +02:00
Huang Xin
d390209dab
feat: support importing TTF/ODF fonts, closes #979 and closes #1708 ( #1864 )
2025-08-21 21:49:08 +02:00
Zeedif
595608bd62
feat: Implement KOReader Progress Synchronization ( #1770 )
...
* feat(sync): implement KOReader progress synchronization
This commit introduces a comprehensive feature to synchronize reading progress with a KOReader sync server. It includes a compatibility layer to handle discrepancies between Readest's CFI-based progress and KOReader's XPointer/page-based progress, primarily using the `percentage` field as a common ground.
Key additions include:
- A new settings panel under "KOReader Sync" for server configuration, authentication, and sync strategy management (e.g., prompt on conflict, always use latest).
- A conflict resolution dialog that appears when remote progress differs significantly from local progress, allowing the user to choose which version to keep.
- A client-side `useKOSync` hook to manage the entire synchronization lifecycle, including API calls, state management, and conflict resolution logic.
- A new API endpoint `/api/kosync` that acts as a secure proxy to the user-configured KOReader sync server, handling authentication and forwarding requests.
- Logic to differentiate between paginated (PDF/CBZ) and reflowable (EPUB) formats, using page numbers for paginated files where possible and falling back to percentage for reliability.
- Spanish translations for all UI elements related to the KOReader sync feature.
- Addition of `uuid` package to generate a unique `device_id` for sync purposes.
Refactor:
- The `debounce` utility has been improved to include `flush` and `cancel` methods, allowing for more precise control over debounced function execution, which is now used in the sync hook.
* fix(kosync): add support for converting between XPointer and CFI in progress synchronization
* fix(kosync): update navigation method to use select instead of goTo for paginated formats
* fix(kosync): refactor synchronization settings and improve conflict resolution handling
* fix(kosync): add event dispatcher for flushing KOReader synchronization
* fix(sync): handle xpointer in a different section, fix styling
* i18n: update translations
---------
Co-authored-by: Huang Xin <chrox.huang@gmail.com >
2025-08-11 17:53:28 +02:00
Huang Xin
3e5e4d2946
compat: detect book language from text for invalid language code in metadata ( #1743 )
2025-08-04 14:55:18 +02:00
Huang Xin
8fb1745dbb
config: add an option to disable double click, closes #1713 ( #1715 )
2025-07-30 11:35:07 +02:00
Huang Xin
20523b7eaf
PDF: Support custom background theming for PDF files, closes #1649 ( #1661 )
2025-07-22 11:34:38 +02:00
Huang Xin
f31c9b2a98
layout: fix hardcoded image layout in fixed layout documents ( #1660 )
2025-07-22 10:40:21 +02:00
Huang Xin
aafcab8232
layout: fix dimension of inline images, closes #1555 ( #1560 )
2025-07-09 09:52:51 +02:00
Huang Xin
8eefba2bee
feat: add an option to show/hide original text in translation, also closes #1492 ( #1511 )
2025-07-02 07:27:05 +02:00
Huang Xin
7fe4d38c51
fix: allow inline scripts on Tauri platforms ( #1451 )
2025-06-22 11:22:39 +02:00
Huang Xin
cd5f57a004
layout: ignore system top/bottom safe insets when there is no header or footer, closes #1442 ( #1447 )
2025-06-22 06:32:23 +02:00
Huang Xin
31aeb2289c
settings: more reasonable constraints for top and bottom margins ( #1428 )
2025-06-19 17:01:20 +02:00
Huang Xin
f0d3c9dd4e
fix: transform vw/vh to pixels correctly, closes #1420 ( #1421 )
...
* i18n: update translations
* fix: transform vw/vh to pixels correctly, closes #1420
2025-06-19 10:53:58 +02:00
Huang Xin
b3d1085ddf
fix: now it's possible to have multiple columns in portrait mode, closes #1369 ( #1413 )
2025-06-18 14:25:32 +02:00
Huang Xin
07f74d8858
settings: individually adjust top, bottom, left, and right margins on the reader page ( #1410 )
2025-06-18 10:55:24 +02:00
Huang Xin
9477789db1
layout: apply responsive safe area insets to the reader page, closes #1067 and closes #1212 ( #1408 )
...
This also fixes layout glitches when showing status bar on devices without display cutouts
2025-06-17 03:36:23 +02:00
James Sizeland
3cae183f51
feat: add syntax highlighting ( #1386 )
...
* add highlightjs
* add github light and dark theme
* inject style classes
* fix typo
* remove conflicting style overrides
* add highlightjs function and language list
* add language select setting
* add language select input
* add watcher to rerender page on changes to language select
* lockfile update
* rename highlightCode variables
* reorder code languages alphabetically
* copy translation style for highlight selector
* move code highlighting below theme color section
* move highlighting toggle logic into settings component
* add conditional statement to docLoadHandler manageSyntaxHighlighting
* reorder imports
* switch to media query for dark mode
* combine useEffect callbacks for code highlighting
* add feature line about code highlighting
* fix table tabbing
2025-06-13 14:40:18 +02:00
Huang Xin
97d7eb659c
bump: sync with upstream foliate-js ( #1381 )
2025-06-11 05:11:06 +02:00
Huang Xin
43532a0ee8
feat: add an option to show remaining in minutes of the current chapter, closes #406 ( #1326 )
2025-06-03 15:37:55 +02:00
Huang Xin
146a71fdef
font: load CJK fonts only in CJK env or the book has CJK languages, closes #1298 ( #1323 )
2025-06-03 08:55:40 +02:00
Huang Xin
699a01c78f
feat: support full book translation to bilingual books, closes #398 ( #1240 )
2025-05-26 12:23:33 +02:00
Huang Xin
2dd7cf54e6
refactor: use text selector hook in annotator, closes #1020 ( #1131 )
2025-05-12 18:00:45 +02:00
Huang Xin
4aebbf679f
fix: various on styles of UI and footnote visibility ( #1099 )
...
* fix: footnote now should be hidden in srcdoc iframes
* fix: eliminate white flash on startup when using dark mode
* feat: rescale UI size with pixel density
2025-05-08 18:21:31 +02:00
Huang Xin
4c1af671bb
fix: use separate compact margin and gap when header and footer are dismissed, closes #734 ( #1047 )
2025-05-06 12:38:04 +02:00
Huang Xin
c326ad402d
fix: calculate vw/vh size from iframe viewport, closes #1027 ( #1045 )
2025-05-06 09:32:01 +02:00
Huang Xin
5e04f6ae03
feat: support locking screen orientation, closes #860 ( #1034 )
2025-05-05 10:55:50 +02:00
Huang Xin
6b290f09f5
refactor: unify hooks for pagination and continuous scroll ( #1021 )
2025-05-04 10:58:44 +02:00
Huang Xin
c9e08f2c01
fix: more robust continuous scroll, closes #993 ( #1017 )
2025-05-03 12:07:32 +02:00
Huang Xin
4275508ccd
feat: add volume keys for page turning, closes #471 ( #982 )
2025-04-28 12:36:24 +02:00
Huang Xin
6ba15319a8
fix: reverse punctuation transform when highlighting ( #862 )
2025-04-11 06:30:08 +02:00
Huang Xin
3d2847e427
fix: RTL layout for the bottom configuration panel, closes #849 ( #850 )
2025-04-09 10:47:15 +02:00