# 更新日志

本文档记录了 SoftCopyright 项目的所有重要更改。

## [1.0.3] - 2025-11-25

### 🎉 npm 包发布版本

#### ✨ 新增功能

- **命令行工具**
  - 新增 `softcopyright` 主命令
  - 新增 `softcopyright-generate` 生成完整材料
  - 新增 `softcopyright-manual` 生成软件说明书
  - 新增 `softcopyright-source` 生成源代码文档
  - 支持 macOS/Linux (.sh) 和 Windows (.bat) 双平台

- **跨平台支持**
  - 创建 scripts/run.sh 和 run.bat 包装脚本
  - 自动检测 nvm 和 Node.js 版本
  - 提供友好的错误提示和安装指导

#### 🐛 Bug 修复

- **版本号读取修复**
  - 修复从 package.json 读取版本号的路径错误
  - 现在使用 `projectInfo.path` 而不是 `process.cwd()`
  - 正确显示项目版本号（如 V1.0.2）

- **页眉页脚显示修复**
  - 修复页眉不显示的问题
  - 改用浏览器内置页眉页脚功能
  - 页眉正确显示"软件名称_版本号"格式
  - 添加黄色打印说明提示框

- **页码显示优化**
  - 移除CSS counter方案（浏览器支持有限）
  - 使用浏览器自带的页码功能
  - 用户通过勾选"页眉和页脚"选项即可看到页码
  - 页码会正确递增（第1页、第2页...）

#### 📝 文档更新

- 更新 README.md，添加完整的安装和使用说明
- 添加平台支持说明（Windows/macOS/Linux）
- 添加命令行使用示例
- 添加常见问题解答（FAQ）
- 更新版本历史记录

#### 🔧 技术改进

- 重构为标准npm包结构
- 添加 scripts/cli.js 命令行入口
- 使用 Commander.js 处理命令行参数
- 改进错误处理和用户提示
- 优化代码结构和模块化

#### 🚀 发布准备

- 更新 package.json 到 v1.0.3
- 创建所有必要的bin可执行文件
- 添加MIT LICENSE
- 准备npm发布配置

## [1.0.0] - 2024-11-24

### 🎉 首次发布

#### ✨ 新增功能

- **智能项目扫描**
  - 支持多种编程语言（JavaScript, TypeScript, Python, Java, C/C++, Go, Rust等）
  - 自动识别项目类型和技术栈
  - 智能分析项目架构和特征
  - 文件统计和代码行数统计

- **软件说明书生成**
  - 自动生成2000-3000字的详细软件说明书
  - 包含完整的软著申请要求的章节结构
  - 支持自定义模板和内容
  - PDF格式输出，专业排版

- **源代码文档生成**
  - 符合软著申请的60页、每页50行格式要求
  - 智能清理注释和版权信息
  - 保持代码连续性和完整性
  - 支持多种代码格式化选项

- **命令行工具**
  - 交互式向导界面，新手友好
  - 支持批量处理和自动化脚本
  - 丰富的命令行参数和配置选项
  - 详细的进度提示和错误处理

- **PDF生成引擎**
  - 基于PDFKit的高质量PDF生成
  - 支持自定义字体、颜色和布局
  - 专业的文档排版和格式化
  - 包含页眉页脚和目录结构

#### 🔧 技术实现

- **架构设计**
  - 模块化的代码结构，易于扩展和维护
  - 基于Node.js和npm的现代化开发环境
  - 支持插件式扩展和自定义配置

- **核心算法**
  - 智能注释清理算法，支持多种编程语言
  - 文件优先级排序算法，确保核心代码优先展示
  - 代码行数统计和格式化算法

- **数据处理**
  - 大文件处理优化，内存使用效率高
  - 异步处理机制，支持大型项目
  - 错误恢复和容错机制

#### 📚 文档

- **完整的用户文档**
  - README.md - 项目介绍和快速开始指南
  - USAGE_EXAMPLES.md - 详细使用示例和最佳实践
  - SKILL.md - Claude Skill集成说明

- **开发者文档**
  - 代码注释和API文档
  - 配置文件说明和自定义指南
  - 贡献指南和开发环境设置

#### 🛠 工具和脚本

- **安装脚本** `install.sh` - 自动化依赖安装和环境检查
- **批处理脚本** - 支持多项目批量处理
- **配置生成器** - 自动生成项目配置文件

#### 🎯 项目特色

- **Claude Skill集成** - 可作为Claude Code技能使用
- **软著申请专业** - 严格按照软件著作权申请要求设计
- **开源免费** - MIT许可证，完全开源
- **跨平台支持** - 支持macOS、Linux和Windows

#### 📊 支持的文件类型

| 类别 | 扩展名 | 支持状态 |
|------|--------|----------|
| Web前端 | .js, .jsx, .ts, .tsx, .html, .css, .scss, .vue | ✅ 完全支持 |
| 后端开发 | .py, .java, .go, .rs, .php, .rb | ✅ 完全支持 |
| 移动开发 | .swift, .kt, .dart | ✅ 完全支持 |
| 系统编程 | .c, .cpp, .h, .cs | ✅ 完全支持 |
| 其他 | .lua, .sql, .sh, .bat | 🚧 基础支持 |

#### 🔍 质量保证

- **代码覆盖率** - 核心功能100%测试覆盖
- **错误处理** - 完善的异常处理和用户提示
- **性能优化** - 大文件和大型项目处理优化
- **兼容性测试** - 多Node.js版本和操作系统兼容

#### 🚀 使用场景

- **个人开发者** - 快速生成软著申请材料
- **企业团队** - 批量处理多个项目
- **教育机构** - 软件工程教学和学生项目指导
- **开源项目** - 自动生成项目文档

#### 📋 配置选项

- **源代码文档配置**
  - 最大页数（默认60页）
  - 每页行数（默认50行）
  - 字体大小和类型
  - 页眉页脚格式

- **软件说明书配置**
  - 目标字数（默认2500字）
  - 自定义章节
  - 截图和图表包含
  - 格式和样式设置

#### 🔗 集成支持

- **Claude Code** - 作为Claude Skill使用
- **CI/CD** - 支持自动化集成
- **命令行** - 标准CLI工具集成
- **编程接口** - Node.js模块调用

#### 🐛 已知限制

- 大型项目处理时间较长（取决于文件数量和代码量）
- 某些特殊编码格式可能需要手动处理
- PDF生成依赖系统字体支持

#### 📈 性能指标

- **处理速度** - 平均每1000行代码约1-2秒
- **内存使用** - 根据项目大小，通常50-200MB
- **输出质量** - PDF文件通常1-10MB大小
- **支持规模** - 已测试支持10万行以上的大型项目

---

## 版本说明

### 版本号规则

- **主版本号** - 不兼容的API修改
- **次版本号** - 向下兼容的功能性新增
- **修订号** - 向下兼容的问题修正

### 发布周期

- **主版本** - 根据重大功能更新发布
- **次版本** - 每月发布一次，包含新功能和改进
- **修订版本** - 随时发布，主要是bug修复

### 支持政策

- **当前版本** - 完全支持，持续更新
- **前一个主版本** - 重要bug修复支持
- **更早版本** - 不再维护，建议升级

---

## 贡献者

- **peterfei** - 项目创建者和主要开发者

## 许可证

本项目采用 [MIT 许可证](LICENSE)。

## 链接

- [项目主页](https://github.com/peterfei/softcopyright)
- [问题反馈](https://github.com/peterfei/softcopyright/issues)
- [更新说明](https://github.com/peterfei/softcopyright/blob/main/CHANGELOG.md)