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 | |
| 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) | |