Skip to content

ponsde/TXT-Novel-Reader

Repository files navigation

优雅阅读器 (Elegant Reader)

一个支持 桌面端 (Electron)Web 端 (Node.js) 双模式运行的优雅阅读应用,专为 TXT 小说阅读而设计。无论是在本地电脑还是云服务器上,都能提供一致的流畅阅读体验,并支持多端历史记录同步。

✨ 核心特性

  • 双模式运行:

    • 🖥️ 桌面端: 基于 Electron,提供原生应用体验,支持本地文件系统深度集成。
    • 🌐 Web 端: 基于 Node.js 服务,支持手机/平板远程访问,随时随地阅读。
  • 多端同步:

    • 🔄 历史记录同步: 电脑端和手机端共享阅读历史和进度(需配置同一数据源)。
    • 📚 书库共享: 支持设置统一的书库目录,多端访问同一份小说资源。
  • 极致阅读体验:

    • 📖 智能分章: 自动识别章节结构,生成目录。
    • 🎨 个性化设置: 支持字体、字号、行高、段落间距、背景主题(深色/护眼)自定义。
    • 📱 沉浸式阅读: 移动端自动隐藏菜单栏,提供纯净阅读空间。
    • 📜 多种翻页模式: 支持仿真翻页和垂直滚动模式。
  • 便捷功能:

    • 🎲 随机阅读: 不知道读什么?一键随机打开一本小说。
    • 🔍 智能搜索: 快速查找本地或书库中的小说。
    • 📂 文件拖拽: 支持直接拖拽 TXT 文件打开。
    • 💾 自动保存: 实时保存阅读进度,下次打开自动跳转。

🛠️ 技术架构

本项目采用混合架构设计,核心逻辑复用:

  • 前端: 原生 HTML5/CSS3/JavaScript,无繁重框架依赖。
    • index.html: 应用入口。
    • renderer.js: 核心渲染逻辑与交互处理。
    • styles.css: 响应式样式设计。
  • 后端/主进程:
    • main.js: Electron 主进程,处理本地文件操作和窗口管理。
    • server.js: Node.js HTTP 服务器,提供 Web 访问和 API 接口。
  • 数据存储: 基于 JSON 的轻量级文件存储 (reading_history.json, config.json)。

🚀 快速开始

环境要求

  • Node.js 16.0 或更高版本
  • npm 或 yarn

安装依赖

npm install

运行应用

桌面模式 (Electron):

npm start

Web 服务模式 (手机访问):

npm run server

服务启动后,访问 http://localhost:3000 (或本机局域网 IP) 即可阅读。

构建应用

# 构建 Windows 安装包
npm run build-win

📱 移动端使用指南

  1. 确保电脑和手机在同一局域网下。
  2. 在电脑运行 npm run server
  3. 手机浏览器访问电脑 IP 地址(例如 http://192.168.1.x:3000)。
  4. 添加书库: 点击"书库"按钮,选择电脑上的小说文件夹。
  5. 同步历史: 只要连接同一服务,阅读进度会自动同步。

📂 目录结构说明

├── books/              # 默认小说存放目录
├── index.html          # 前端入口
├── renderer.js         # 前端核心逻辑 (UI, 交互, 渲染)
├── styles.css          # 样式文件
├── main.js             # Electron 主进程
├── server.js           # Web 服务端
├── preload.js          # Electron 预加载脚本
└── package.json        # 项目配置

📝 常见问题

Q: 手机端如何全屏阅读?
A: 打开小说后,点击屏幕中央可唤出/隐藏菜单栏。在隐藏菜单栏状态下即为沉浸式全屏阅读。

Q: 为什么有些 TXT 显示乱码?
A: 程序内置了智能编码检测(支持 UTF-8, GBK, Big5 等),绝大多数文件能自动识别。如果仍有乱码,建议手动将文件转换为 UTF-8 编码。

Q: 历史记录存在哪里?
A: 历史记录保存在运行目录下的 reading_history.json 文件中。

📄 许可证

MIT License

About

No description, website, or topics provided.

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

 
 
 

Contributors