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. **备份数据**
```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)