release: v1.0.0 - 目录树生成脚本 Python 版本正式发布

- 更新为 Python 3.8+ 实现(tree_gen.py)
- 8 个功能全部通过(F013-F020)
- 更新 RELEASE.md、QUICKSTART.md 为 Python 版本
- 移除旧 Bash 版本文件(tree.sh)
- 添加架构设计文档(t023-architecture-design.md)
This commit is contained in:
2026-05-16 17:35:55 +08:00
parent 2f521deff8
commit fbad6a4647
8 changed files with 81 additions and 2158 deletions

View File

@@ -9,8 +9,9 @@
| **版本** | 1.0.0 |
| **发布日期** | 2026-05-16 |
| **Git 标签** | v1.0.0 |
| **提交 Hash** | c278c5a |
| **Gitea 仓库** | https://git.cclee.wiki/GoudanLabs/tree-generator |
| **运行平台** | Windows 10/11兼容 Linux/macOS |
| **技术栈** | Python 3.8+ 标准库,零第三方依赖 |
---
@@ -18,14 +19,14 @@
| 编号 | 功能 | 状态 |
|------|------|------|
| F013 | 生成目录树(├── / └── 格式,目录在前文件在后,字母排序 | ✅ 通过 |
| F014 | 生成文件列表(-f 参数 | ✅ 通过 |
| F015 | 忽略配置(内置 30+ 种模式 + .treeignore 自定义 | ✅ 通过 |
| F016 | 深度限制(-d 参数 | ✅ 通过 |
| F017 | Markdown 导出(默认 tree_output.md可自定义路径 | ✅ 通过 |
| F018 | 统计信息(目录数、文件数、总大小 B/KB/MB/GB | ✅ 通过 |
| F019 | 循环检测(基于 inode 的符号链接循环检测 | ✅ 通过 |
| F020 | 权限处理(无权限目录显示 [Permission denied],不中断 | ✅ 通过 |
| F013 | 路径输入(命令行参数,支持相对/绝对路径 | ✅ 通过 |
| F014 | 忽略配置(自动加载 .treeignore/.gitignore内置默认列表 | ✅ 通过 |
| F015 | 递归遍历(生成完整树形结构,自动检测符号链接循环 | ✅ 通过 |
| F016 | 目录树生成(├── / └── 字符绘制,目录带 / 后缀 | ✅ 通过 |
| F017 | 文件树生成(完整路径 + 文件大小 | ✅ 通过 |
| F018 | 终端输出UTF-8 编码,自动格式化显示 | ✅ 通过 |
| F019 | Markdown 保存(默认 tree_output.md含代码块+表格+统计 | ✅ 通过 |
| F020 | 统计信息(目录数、文件数、总大小自动格式化 | ✅ 通过 |
**测试结果8/8 通过**
@@ -35,7 +36,7 @@
| 问题 | 描述 | 影响 | 优先级 |
|------|------|------|--------|
| `-d 1` 深度限制异常 | `-d` 参数为 1 时,由于 `depth >= MAX_DEPTH` 的判断逻辑,根目录下的子目录内容会被跳过,但根目录本身仍显示。在 `-d 1` 时表现为只显示根目录名,不显示任何子项。 | 边缘场景,正常使用 -d 2+ 无影响 | 低 |
| `-f` 模式下树形显示仅展示根目录级别文件 | `-f`files-only模式下树形显示部分仅展示根目录的直接子文件深层嵌套文件在文件列表中可以正确列出但树形视图中未完整展示。此为显示层问题不影响文件列表和统计功能的正确性。 | 非阻塞性,文件列表和 Markdown 输出正常 | 低 |
---
@@ -44,25 +45,27 @@
### v1.0.0(首次发布)
- 初始版本
- 纯 Bash 实现,零外部依赖
- 支持 LinuxmacOS
- 内置 30+ 种常见忽略模式
- 支持 `.treeignore` 自定义忽略配置
- 基于 inode 的符号链接循环检测
- Markdown 导出 + 终端输出双模式
- 自动统计目录数、文件数和总大小
- Python 3.8+ 实现,零第三方依赖
- 专为 Windows 平台优化,同时兼容 Linux/macOS
- 内置常见忽略项(.git、node_modules、__pycache__ 等)
- 支持 `.treeignore` / `.gitignore` 自定义忽略配置
- 自动检测符号链接循环,避免无限递归
- Markdown 导出UTF-8 with BOMWindows 记事本兼容)+ 终端输出双模式
- 自动统计目录数、文件数和总大小B/KB/MB/GB 自动格式化)
- 深度限制(`-d` 参数)
- 目录树 / 文件树 / 混合模式可选
---
## 文件清单
### dist/
- `tree.sh` — 主脚本(可执行)
- `tree_gen.py` — 主脚本(Python 3.8+,可直接运行)
### source/
- `tree.sh` — 源码
- `README.md` — 完整文档
- `tree_architecture_design.md` — 架构设计文档
- `tree_gen.py`完整源码
- `README.md` — 完整使用文档
- `t023-architecture-design.md` — 架构设计文档
### docs/
- `README.md` — 完整使用说明
@@ -72,6 +75,6 @@
## 环境要求
- **操作系统:** LinuxmacOS
- **Shell** Bash 4.0+
- **依赖:** 无(仅使用标准工具stat, awk, basename, dirname, mkdir
- **操作系统:** Windows 10/11也兼容 Linux/macOS
- **Python** 3.8 或更高版本
- **依赖:** 仅使用 Python 标准库,零第三方依赖