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