File: README.md
Legado with MD3
📖 介绍
Legado with MD3 是基于开源项目 阅读 (Legado) 开发的 Material
Design 3 风格重构版本。
本项目在对 UI 进行重绘的基础上,加入了多项分支独有功能,并正在逐步从传统 View 迁移至 Jetpack Compose
框架,目标是提供更加现代、流畅且一致的阅读体验。
[!CAUTION]
注意事项:
由于使用 Monet 引擎重构了主题系统,官方版本的主题在此版本中不再可用。Android 12 以下设备:
暂时无法使用自定义主题与动态取色功能。此限制将在 Jetpack Compose
迁移完成后得到解决(由于开发者精力有限,迁移过程将持续较长时间)。
✨ 分支特性
相比于官方版本,本项目具有以下独有特性:
- 全新主题: 全新 Material Design 3 设计界面,支持 预测性返回手势 与 共享元素动画。
- 阅读界面: 更加个性化的阅读界面与菜单配置。
- 阅读记录: 提供详尽的阅读记录,支持 时间轴 与 章节维度 统计。
- 体验增强: 更健全的 漫画阅读 、 有声书 与 发现 等界面体验。
- 书架布局: 更多的书架布局选择,针对 平板端 进行了专门的界面优化。
- 实用功能: 新增书籍备注、智能伴生分组(自动归类已读/未读),支持手柄上下翻页。
🛠️ 核心功能
- 多格式支持: 支持本地 TXT、EPUB 阅读,智能扫描本地文件。
- 高度自定义: 切换字体、背景、行距、段距、加粗、简繁转换等。
- 净化替换: 强力去除广告,替换正文内容。
- 翻页模式: 覆盖、仿真、滑动、滚动等多种模式随心切换。
- 完全开源: 无广告,持续迭代优化。
💬 交流
- Telegram 群组: Legado with MD3
- 版本发布:
最新版本会自动发布至群组,也可在 GitHub Releases
下载。
❤️ 致谢
感谢以下优秀开源项目提供的灵感与技术支持:
- gedoor/legado (这个项目最吊的老爹)
- Luoyacheng/legado (提供了更多的扩展功能)
- komikku-app/komikku (提供了界面灵感与一些 Compose
的优秀控件) - FoedusProgramme/Gramophone (提供了界面灵感与 View
系统的封面取色方法) - jordond/MaterialKolor (基于 Jetpack Compose
优秀的取色实现) - Calvin-LL/Reorderable (基于 Jetpack Compose
优秀的拖动排序实现) - 以及更多开源项目...
⚠️ 用户协议与免责声明
【特别提示】
在下载、安装或使用本软件前,请您务必仔细阅读并充分理解本协议及免责声明的全部内容。您一旦下载、安装或使用本软件,即视为已阅读、理解并同意接受本声明的全部内容。
一、软件性质说明
- 本软件是一款用户可配置的本地化网页内容浏览工具,提供网页访问、内容解析、文本提取、阅读排版与数据管理等技术功能。
- 本软件默认状态下不预置、不内置、不提供任何第三方网站内容、数据资源或解析规则。
- 本软件开发者不提供任何内容运营、内容存储、内容发布或内容传播服务。
- 用户可基于自身需求,自行配置或导入第三方规则,以实现对公开网页内容的个性化浏览与处理。
二、用户行为与规则说明
- 用户可自行创建、编辑、导入或使用第三方分享的解析规则(以下简称"规则")。
- 相关规则仅用于定义网页内容的获取、提取与显示方式,其来源、合法性、准确性与适用性均由用户自行判断并承担责任。
- 用户使用规则访问第三方网站时,相关网络请求由用户设备直接向目标网站发起并接收数据。本软件仅提供本地解析与展示能力,不对第三方网站内容进行修改、编辑或再分发。
- 用户应遵守所在地法律法规、网络安全要求以及相关网站的服务协议与版权规范,不得利用本软件从事侵犯知识产权、非法传播、未授权数据获取、破坏网络服务或其他违法违规行为。
三、第三方内容与社区说明
- 任何由第三方建立或维护的规则分享平台、论坛、交流群组、网站或其他社区,均属于独立运营的第三方平台,与本软件开发者无隶属关系。
- 开发者不参与第三方规则、内容或社区的制作、发布、运营、维护与传播行为,亦不对相关内容承担主动审查义务。
- 用户因使用第三方规则或访问第三方网站而产生的风险,包括但不限于版权纠纷、数据安全风险、网络访问风险或其他法律风险,应由相关行为主体依法承担相应责任。
四、隐私与数据说明
- 本软件主要功能运行于用户本地设备,不设立用于提供网页内容服务的自有内容服务器。
- 本软件不会主动收集、上传或存储用户的阅读内容、规则列表、浏览记录或其他个人隐私数据。
- 为提升软件稳定性与兼容性,本软件可能集成第三方统计或崩溃分析服务(如 Firebase Crashlytics
等),用于收集匿名化的崩溃日志、性能信息及基础设备信息。 - 部分网络、存储或同步权限,仅用于实现用户主动启用的本地备份、WebDAV 同步或跨设备数据同步等功能。
五、知识产权保护
- 开发者尊重并保护知识产权权利人的合法权益,并反对任何侵犯著作权、商标权或其他合法权益的行为。
- 用户应确保其使用本软件获取、处理或访问相关内容的行为符合适用法律法规及权利要求。
- 若权利人认为某些第三方规则存在涉嫌侵权情形,可依法向相关内容实际托管方主张权利。
- 权利人亦可向开发者提交包含身份证明、权属证明、具体规则信息及相关说明的有效通知。开发者将在合理技术能力范围内,对涉嫌违规规则采取必要处理措施。
File: app/src/main/assets/web/help/md/readMenuHelp.md
阅读界面帮助文档
阅读界面主菜单
- 顶部操作
- 章节名称:点击可编辑书源
- 章节url:点击可打开浏览器浏览
- 菜单:不同类型的书籍显示的菜单不同。详情请查看菜单文字,长按菜单图标可显示文字
- 中间左侧-亮度调节
- 亮度调节的顶端有跟随系统亮度的开关,打开后亮度跟随系统,关闭后才可以调节亮度条
- 底部操作
- 4个圆形按钮依次为 全文搜索✧自动翻页✧替换净化✧切换夜间模式
- 上一章✧下一章中间的进度条为页数进度,要快速跳转章节点击目录按钮进入目录快速跳转
- 目录->目录和书签界面
- 朗读->单击开始朗读,长按进入朗读设置界面
- 界面->所有排版设置都在里面
- 设置->其它一些设置,找不到的设置去这里看看,可滚动
全文搜索
搜索本地缓存或者本地文件,不能搜索在线内容
书籍字数、净化规则数量、简繁转化、文章分段都会影响到搜索速度,请酌情启用
朗读设置界面
- 后台->进入后台朗读,可以做一些其它事
- 设置->朗读引擎设置,可以切换本地TTS和在线朗读,在线朗读可自定义
排版设置界面
- 白天模式和夜间模式背景不同布局相同
- 共用布局->启用共用布局时所有背景使用同一布局,关闭共用布局则每个背景单独布局
- 长按背景可进入文字颜色和背景设置界面
其它设置界面
- 屏幕方向
- 屏幕超时
- 隐藏状态栏
- 扩展到刘海
- 隐藏导航栏
- 文字两端对齐
- 文字底部对齐
- 音量键翻页
- 点击翻页
- 朗读时音量键翻页
- 自动换源->书源被删除时自动切换到其它书源
- 长按选择文本
- 显示亮度调节控件
- 点击区域设置
- 自定义翻页按键
File: app/src/main/java/io/legado/app/data/README.md
存储数据用
- dao 数据操作
- entities 数据模型
- \Book 书籍信息
- \BookChapter 目录信息
- \BookGroup 书籍分组
- \Bookmark 书签
- \BookSource 书源
- \Cookie http cookie
- \ReplaceRule 替换规则
- \RssArticle rss条目
- \RssReadRecord rss阅读记录
- \RssSource rss源
- \RssStar rss收藏
- \SearchBook 搜索结果
- \SearchKeyword 搜索关键字
- \TxtTocRule txt文件目录规则
File: app/src/main/java/io/legado/app/help/crypto/README.md
https://github.com/gedoor/legado/pull/2880
非对称加密一般只能知道其中一个密钥,而RhinoJs调用java方法不能传入null和KeyType, 因此提供以下重载函数
fun setPublicKey(key: ByteArray): T
fun setPublicKey(key: String): T
fun setPrivateKey(key: ByteArray): T
fun setPrivateKey(key: String): T
fun decrypt(data: Any, usePublicKey: Boolean? = true): ByteArray?
fun decryptStr(data: Any, usePublicKey: Boolean? = true): String?
fun encrypt(data: Any, usePublicKey: Boolean? = true): ByteArray?
fun encryptHex(data: Any, usePublicKey: Boolean? = true): String?
fun encryptBase64(data: Any, usePublicKey: Boolean? = true): String?File: app/src/main/java/io/legado/app/lib/README.md
放置一些copy过来的库
- dialogs 弹出框
- icu4j 编码识别库
- permission 权限申请库
- theme 主题
- webDav 网络存储
File: app/src/main/java/io/legado/app/model/localBook/README.md
书籍文件导入解析
- BaseLocalBookParse.kt 本地书籍解析接口
- LocalBook.kt 导入解析总入口
- TextFile.kt 解析txt
- EpubFile.kt 解析epub
- PdfFile.kt 解析pdf 纯图片形式
- UmdFile.kt 解析umd
File: app/src/main/java/io/legado/app/model/README.md
放置一些模块类
- analyzeRule 书源规则解析
- localBook 本地书籍解析
- rss 订阅规则解析
- webBook 获取网络书籍
File: app/src/main/java/io/legado/app/service/README.md
android服务
- AudioPlayService 音频播放服务
- CheckSourceService 书源检测服务
- DownloadService 缓存服务
- HttpReadAloudService 在线朗读服务
- TTSReadAloudService tts朗读服务
- WebService web服务