Spaces:
Running
Running
更新日志
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
- 备份数据
cp book_data_10242.json book_data_10242.json.backup
- 准备新数据
- 将data目录放到项目根目录
- 确保每个书籍目录包含必要文件
- 导入数据
python3 import_book_data.py data
- 启动应用
python3 app.py
- 访问新页面
- 旧版: http://localhost:7860/
- 新版: http://localhost:7860/ (书籍目录)
- 阅读: http://localhost:7860/reader?book_id=168
🗑️ 废弃功能
- 旧的单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支持
- 离线模式
💡 已知问题
- 大型数据库(>10GB)可能需要更长的导入时间
- 某些旧版浏览器可能不支持部分功能
- 首次加载页面可能较慢(正在优化)
🙏 致谢
感谢所有贡献者和测试人员。
完整更新说明请参考: README.md