Readest
正式版
18
查看
1
讨论
57
收藏
photo_library 应用截图
new_releases 更新日志
Release Highlight
Text-to-Speech: Books that come with recorded narration now play their own audio in step with the text, and you can set the sleep timer to stop at the end of a chapter
Library: Added full text search across your books with fuzzy and nearby-word matching, importing web novels from a link, bulk downloading from the shelf, and page counts in book details
Annotations: Your notes and highlights now live in one hub, where you can export and import them as a file, copy a link back to any highlight, and write math formulas in your notes
Reading: You can now pull down to add a bookmark, tap the page label to jump to any page, tap the footer to bring up the progress bar, and turn pages with an Apple Pencil double tap or squeeze
Reading: Fixed layout books can now scroll horizontally, image descriptions show in the image viewer, search results group by chapter, and the mouse cursor gets out of the way while you read
Sync: Added iCloud sync on iPhone, iPad and Mac, plus a BookOrbit integration that keeps your annotations, bookmarks, stats and reading status in step
Translation: Translated text now keeps its bold, italic and other inline formatting, and the Azure and Yandex translators work again
Styling: Added Ambient Mode on Android, a refreshed theme and background picker with separate looks for your library and reader, and cleaner popups throughout
PDF: Sharper text on desktop and a readable footer in scrolled mode
More: Markdown books now pick up their title and author automatically and show every heading in the contents, plus fixes for some crashes
What's Changed
fix(reader): resolve high-priority Sentry crashes by @chrox in #5231
fix(android): drop the Sentry NDK integration that destabilizes the WebView (#5227) by @chrox in #5234
fix(android): withdraw Android Auto opt-in to pass Play review by @chrox in #5235
Contain updater and native auth rejections by @chrox in #5237
Fix high-priority reader runtime errors by @chrox in #5236
refactor: remove the auto upload books option in the main menu in favor of the settings in Readest manage sync settings by @chrox in #5243
feat: style checked toggle by @dastarruer in #5242
fix: set GDK_BACKEND to x11 to fix rendering issues by @dastarruer in #5248
feat: add setting to enable skeuomorphic book covers by @dastarruer in #5245
chore: migrate away from numtide devshell by @dastarruer in #5131
chore(deps): bump the github-actions group with 5 updates by @dependabot[bot] in #5276
docs: fix typo in README by @dastarruer in #5298
fix(windows): enforce LF line endings and normalize test path separators by @LukashevychAndrii in #5302
feat(theme): unify theme selector and bg texture selector styling by @dastarruer in #5305
fix(reader): invalidate stale nav cache for encoded TOC hrefs (#5308) by @chrox in #5311
fix(rss): sync feed subscriptions across devices (#5307) by @chrox in #5314
feat(settings): rename "Column Gap" to "Additional Margin" by @chrox in #5315
fix(library): disable skeuomorphic book covers by default by @chrox in #5316
feat(reader): add collapsible chapter sections to search results by @WantenMN in #5282
Load OPDS catalogs when opening the Integrations panel by @chloeroform in #5283
perf(reader): improve Slide/Curl gesture responsiveness by @chihumyum in #5291
fix(opds): keep same-host links on https when the feed is https (#5300) by @chrox in #5324
fix(calibre): verify the cloud blob exists before a row-only push by @chrox in #5325
feat(calibre): Check Readest status action, with faster cloud lookups by @chrox in #5332
fix(macos): restore close-to-hide behavior on Tahoe by @liyafly in #5333
fix(reader): keep system brightness on after swipe by @alexander-pecheny in #5292
feat: calculate TTS gap based on rate by @dastarruer in #5326
Show import options when clicking the bookshelf add button by @bcrave in #5247
chore(deps): bump dependencies for open Dependabot advisories by @chrox in #5335
fix(auth): move ProviderLogin out of the auth page module by @chrox in #5336
fix(library): stop re-importing duplicate files from watched folders by @chrox in #5337
fix(reader): align paragraph mode chrome with the TTS player (#5275) by @chrox in #5338
feat(markdown): parse YAML frontmatter into book metadata by @chrox in #5344
fix(reader): keep book fonts when proofread rules change (#5277) by @chrox in #5345
fix(epub): fall back to cover-named zip entries by @chrox in #5339
fix(metadata): make "Change cover image" work on iOS by @chrox in #5346
fix(reader): keep the PDF footer readable in scrolled mode (#5342) by @chrox in #5347
fix(pdf): keep desktop PDF text sharp (#5251) by @chrox in #5348
chore: update agent memories by @chrox in #5358
fix(translate): restore Yandex Translate provider by @Columpio in #5256
feat(markdown): support full heading depth in the TOC (#5357) by @chrox in #5363
fix(reader): report image zoom against the image resolution, closes #5362 by @chrox in #5365
fix(sync): pull the books delta in bounded pages for large libraries by @chrox in #5364
fix: preserve U+200F/U+200E BiDi marks in Persian/Arabic ebooks (#5216) by @shahram7 in #5361
feat(tts): add End of Chapter option to sleep timer by @nurumubu in #5355
fix: disable hardcoded debug flag in AI logger by @fix2015 in #5370
fix(translate): restore Yandex auto-detection and translated TTS by @Columpio in #5374
fix(sync): stop a local-only delete from wiping the Drive copy (#5265) by @chrox in #5376
fix(android): keep All Files Access on the Play build (#5372) (#2862) by @chrox in #5378
feat(clip): capture login-walled articles with an in-app sign-in by @chrox in #5377
fix(ios): unbreak the share extension build after the clip capture change by @chrox in #5379
fix(window): cover the taskbar when entering fullscreen while maximized on Windows by @chrox in #5380
fix(discord): keep the rich presence cover URL stable (#5352) by @chrox in #5382
feat(library): import web novels from a URL (#5294) by @chrox in #5381
fix(css): keep image invert effective in dark mode with color override by @chrox in #5383
chore: update agent memories by @chrox in #5384
chore(deps): bump the github-actions group with 3 updates by @dependabot[bot] in #5396
feat(reader): add font size setting and honor custom fonts in paragraph mode by @chrox in #5403
feat(reader): auto-hide the mouse cursor while reading (#5178) by @chrox in #5404
fix(ios): declare NSPhotoLibraryAddUsageDescription so saving images works (#5397) by @chrox in #5405
fix(layout): keep dropdown menus within viewport by @ChuwuYo in #5392
fix(library): do not dedupe distinct PDFs with identical metadata by @chrox in #5412
fix(reader): exclude trailing whitespace from double-click selection by @ChuwuYo in #5413
feat(theme): add Ambient Mode on Android by @Jesusm1229 in #5394
fix(ios): declare txt and md in fileAssociations so Files offers Readest again by @chrox in #5415
fix(tts): read TTS section documents through the display transform pipeline (#5406) by @chrox in #5416
fix(tts): cut Edge trailing silence on iOS playout so sentence pauses are honored (#5414) by @chrox in #5417
chore: update agent memories by @chrox in #5418
feat(library): add scoped full text search with fuzzy and nearby modes by @WhiteHades in #5389
fix(proofread): match Unicode punctuation next to letters by @ChuwuYo in #5421
feat(dictionaries): add Babylon BGL dictionary format by @chrox in #5428
fix(reader): normalize body text size in reflowable books by @ChuwuYo in #5422
fix(reader): suppress the Android system selection menu natively (#5427) by @chrox in #5430
fix(reader): eink popup pointer triangle rendered solid black above selections by @chrox in #5431
fix(reader): let long press reach the first line on mobile (#5429) by @chrox in #5432
fix(ci): pin the AppImage tauri-cli fork to a known-good rev by @chrox in #5433
fix(search): keep search options on one line at any text scale by @chrox in #5434
feat(reader): include book cover in annotation exports and Readwise sync (#5424) by @chrox in #5435
fix(reader): give the toolbar controls a 44px touch target (#5401) by @chrox in #5437
fix(library): keep subfolder groups for auto-imported books (#5423) by @chrox in #5436
fix(library): release parsed book documents after import, closes #5387 by @chrox in #5439
fix(sync): merge book metadata on its own clock so page turns cannot clobber edits by @chrox in #5442
feat(annotations): export and import annotations as JSON, closes #5400 by @chrox in #5440
fix(web): make CORS preflight responses cacheable for authenticated requests by @chrox in #5444
feat(settings): add library/reader scope switcher to background image picker by @chrox in #5443
feat(library): add bulk Download to the select-mode action bar (#5244) by @chrox in #5445
feat(tts): fine-tune the mini player time info and transport (#5310) by @chrox in #5446
fix(reader): lift the header into the notch on negative top margins by @chrox in #5447
feat(popup): restyle popups by @dastarruer in #5351
feat(reader): centralize notes and highlights in the annotations hub, closes #5398, #3870 by @chrox in #5448
feat(stats): count TTS listening as reading time by @chrox in #5450
chore: update agent memories by @chrox in #5449
fix(popup): center the marker glyph and compact the highlight style buttons by @chrox in #5451
fix(android): stabilize the nightly e2e lane and the top-inset touch overlays by @chrox in #5453
fix: install playwright browsers in nix flake by @dastarruer in #5454
chore: update agent memories by @chrox in #5458
feat(about): copy the version label to the clipboard on click by @chrox in #5461
fix(epub): parse OPF items and meta written with explicit closing tags by @chrox in #5463
feat(annotator): add an opt-in Copy Link tool to the selection toolbar by @chrox in #5464
feat(reader): tap the footer to show and dismiss the progress bar by @chrox in #5466
fix(settings): drop the "Show" prefix from the footer widget labels by @chrox in #5469
fix(library): render the book context menu in-app on Linux desktop by @chrox in #5467
fix(sync): gate dictionary preferences on the Dictionaries toggle by @chrox in #5470
fix(opds): use the cover advertised by the feed entry by @chrox in #5471
feat(reader): show the image description in the image viewer by @chrox in #5472
feat(library): give the "Then by" sort its own order, closes #5119 by @chrox in #5474
fix(linux): explain the missing file picker in SteamOS Gaming Mode by @chrox in #5475
fix(opds): apply the metadata advertised by the feed entry by @chrox in #5477
fix(reader): stop the header hover strip from covering the page text by @chrox in #5478
fix(reader): keep the aspect ratio of duokan fullscreen covers by @chrox in #5473
fix(sync): handle OneDrive OAuth callbacks by @ChuwuYo in #5479
feat(tts): play a book's own recorded narration (EPUB 3 Media Overlays) by @cubicruler in #5480
fix(android): correct the package name in the native-tts unit test by @chrox in #5484
feat(reader): horizontal scrolling mode for fixed layout books by @chrox in #5485
feat(bookorbit): add BookOrbit integration with annotations, bookmarks, stats, and status sync by @chrox in #5487
fix(library): select books in the recently read shelf and pull it with the grid by @chrox in #5486
fix(library): make search history chips translucent like the search input by @chrox in #5488
chore: update agent memories by @chrox in #5489
fix(reader): correct reading ruler transitions and line bounds by @ChuwuYo in #5490
feat(reader): support adding bookmarks with a pull-down gesture by @chrox in #5493
fix(opds): invalidate cached covers when the entry's updated value changes by @chrox in #5495
fix(db): close only the target connection when closing a native database by @chrox in #5497
fix(build): strip dangling sourceMappingURL comments from Tauri builds by @chrox in #5498
fix(reader): style annotation toolbar customizer and flatten popup chrome by @dastarruer in #5496
fix(opds): substitute percent-encoded {searchTerms} in OpenSearch templates (#5500) by @chrox in #5504
fix(reader): render fixed layout documents edge to edge in scrolled mode by @chrox in #5503
fix(auth): make the password sign-in form work with Android password managers by @chrox in #5505
fix(koplugin): keep book metadata hash consistent with Readest by @chrox in #5508
fix(koplugin): guard nil response on login/OTP failure by @jemyzhang in #5507
feat(reader): support Apple Pencil double tap and squeeze as page turners by @chrox in #5511
feat(send): clip locally opened html and xhtml pages with the browser extension by @chrox in #5512
chore(deps): bump transitive dependencies for security advisories by @chrox in #5518
fix(library): stop watched-folder scans from blocking the main thread by @chrox in #5517
fix(reader): keep the reading ruler anchored to its text across repagination by @chrox in #5519
test(reader): deflake DictionarySheet expand/collapse toggle test by @chrox in #5521
feat(library): show the page count in book details (#5516) by @chrox in #5523
feat(reader): jump to an entered page number from the progress label by @chrox in #5524
chore: update agent memories by @chrox in #5525
fix(annotator): return to the selection toolbar after closing a lookup popup (#5213) by @ChuwuYo in #5526
fix(kosync): stop re-prompting resolved sync conflicts on window re-activation (#5527) by @chrox in #5528
fix(annotator): fall back to the selection toolbar when the dictionary quick action gets a multi-word selection by @chrox in #5529
fix(android): deliver file picker results via a replayable plugin event by @chrox in #5531
chore(deps): bump the github-actions group with 5 updates by @dependabot[bot] in #5530
feat(sync): support iCloud as a cloud sync provider on iOS and macOS by @chrox in #5532
fix(reader): discard booknotes without a CFI to prevent an app crash by @chrox in #5533
fix(tts): settle Edge TTS synthesis when the Tauri WebSocket dies before turn.end by @chrox in #5534
fix(ios): restore Open With file associations by @chrox in #5535
feat(macos): enable iCloud sync in direct-distribution builds by @chrox in #5537
fix(window): avoid unavailable title-bar APIs on mobile by @chrox in #5536
fix(annotator): re-anchor the note bubble when a highlight is resized (#5538) by @chrox in #5541
chore: update agent memories by @chrox in #5543
feat(user): add a Danger Zone with Delete All Books by @chrox in #5542
fix(iap): consume Google Play one-time purchases so storage add-ons can be repurchased by @chrox in #5545
feat(tts): speak Japanese ruby readings instead of the base kanji by @chrox in #5546
feat(a11y): name the open book in the window title by @chrox in #5547
fix(rsvp): respect safe area insets in landscape by @chrox in #5548
fix(layout): keep code block indentation when overriding book layout by @chrox in #5549
fix(docker): apply db migrations on first boot and let the font CDN be overridden (#5550) by @chrox in #5551
fix(reader): scrolled-mode toggle fallout, proofread and footer chrome by @chrox in #5552
fix(translate): restore Azure Translator, keep paragraph layout, preserve inline formatting by @chrox in #5555
fix(reader): keep the cursor visible while text is selected by @chrox in #5557
feat(translate): preserve inline formatting with Google too by @chrox in #5556
fix(annotator): draw the highlight color check in the content color by @chrox in #5564
fix(tts): keep the WebView alive while paused so Bluetooth Play resumes (#5561) by @chrox in #5567
chore(store): rebuild store listings and manage them from fastlane by @chrox in #5573
chore(store): replace Play listing images instead of appending by @chrox in #5574
feat(reader): render math in annotation notes by @PolybiusPro in #5571
feat(reader): summarize annotation counts in the sidebar toolbar by @chrox in #5576
Add support for Custom HTTP Headers in Kosync/BookOrbit integrations by @heckler1 in #5570
docs: update screenshots, closes #5368 by @chrox in #5577
fix(tts): play Media Overlay narration via native AVPlayer on iOS by @Juansero29 in #5562
fix: highlight swatch colors, window set-title ACL, and debug-build Sentry DSN by @chrox in #5578
chore: update agent memories by @chrox in #5579
fix: fix occasional stuck when dismissing bookshelf menu by @chrox in #5580
release: version 0.12.1 by @chrox in #5581
New Contributors
@LukashevychAndrii made their first contribution in #5302
@liyafly made their first contribution in #5333
@alexander-pecheny made their first contribution in #5292
@bcrave made their first contribution in #5247
@shahram7 made their first contribution in #5361
@nurumubu made their first contribution in #5355
@fix2015 made their first contribution in #5370
@cubicruler made their first contribution in #5480
@jemyzhang made their first contribution in #5507
@PolybiusPro made their first contribution in #5571
@heckler1 made their first contribution in #5570
@Juansero29 made their first contribution in #5562
description 应用介绍
Readest:你的全能跨平台私人书房
无论你是沉浸于小说的文学爱好者,还是需要深度钻研外文文献、技术手册的专业人士,Readest 都能为你提供前所未有的阅读体验。作为一款真正意义上的全平台现代化电子书阅读器,Readest 让你在手机、电脑和网页之间自由穿梭,随时随地接续你的阅读心流。
核心功能亮点:
一处阅读,处处同步
告别繁琐的文件传输。你的电子书、阅读进度、高亮笔记和书签,都会在 iOS、安卓、Windows、macOS 和网页端实时无缝同步。
通吃所有主流格式
无需转换,直接打开。全面支持 EPUB、MOBI、AZW3、FB2、CBZ 漫画格式以及纯文本 TXT,并提供实验性的 PDF 阅读支持。
打造专属于你的阅读排版
支持传统的模拟翻页与流畅的滚动阅读模式。你可以随心所欲地调整字体、行距、亮暗模式与主题色彩。对于技术开发者,阅读器原生支持代码块语法高亮,带来极佳的视觉体验。
外文与深度学习的最强辅助
内置词典与维基百科,遇到生词划词即刻解答。集成 DeepL 和 Yandex 强大翻译引擎,从单句到整书翻译,扫清外文阅读障碍。独家支持双屏平行阅读模式,轻松实现两本书籍或中英双语文档的对照阅读。
智能多语言听书
支持文本转语音朗读功能,即使在同一本书中遇到不同语言的段落,也能自动流畅切换,享受高质量的听书体验。
管理海量私人书库
它不仅是阅读器,更是你的图书管家。自带完善的书库分类整理功能,支持整书全文搜索,并能轻松接入 OPDS 协议与局域网 Calibre 书库,随时获取海量资源。
纯粹专注与无障碍辅助
全面支持各大系统的屏幕阅读器操作。特有阅读标尺、逐段高亮和速读模式,帮助你集中注意力,成倍提升阅读效率。
关于 Readest:
这是一款由热爱阅读的开发者们打造的开源免费项目。无广告打扰,完全尊重并保护你的本地数据隐私。在这里,没有繁杂的社交推荐,只有属于你和文字的静谧时光。立即下载 Readest,重新找回沉浸阅读的乐趣。
项目地址:https://github.com/readest/readest