weekly
weekly copied to clipboard
【开源工具自荐】Treex:一个支持高级过滤、多样输出格式的目录可视化命令行工具
https://github.com/shiquda/treex
这是一个基于Go编写的命令行工具。我开发Treex,是因为我在日常的学习中遇到了这些问题:
- 对于一个陌生技术栈的项目,可能有着复杂的项目结构,不知道从何入手
- 想要快速告诉大模型一个项目的结构,让它辅助你理解
- 编写项目文档时,需要插入目录结构的可视化
- ……
传统的tree工具针对小型目录还能工作,但是对于一些结构复杂的目录,就较为麻烦了。对于一些我们不关心的文件/目录,无法进行有效的排除(例如,node项目的node_modules),导致输出一长串树形图,根本无法起到可视化的效果。
我曾经是自己写一个py脚本来解决这个问题,后来我将这个idea用go实现,做出了一个通用化的cli应用,希望能帮助到更多和我有类似需求的人。
对比传统的tree命令,TA的优势是:
- 自定义的过滤器,包括:
- 目录最大深度限制
- 根据指定目录的
.gitignore规则排除文件 - 不显示隐藏文件
- 排除自定义文件夹/文件扩展名
- 多样的输出格式,包括:
- 树形输出(默认)
- 缩进格式
- Markdown格式
- Mermaid流程图
具体使用说明请见Github 项目。
graph TD
A[输入] --> B[目录遍历]
B --> C[过滤规则]
D --> E[格式转换]
E --> F[输出]
%% 过滤系统细节
C --> C1[文件后缀过滤]
C --> C2[目录名过滤]
C --> C3[.gitignore规则]
C --> C4[隐藏文件过滤]
%% 格式转换细节
F --> E1[树形格式]
F --> E2[缩进格式]
F --> E3[Markdown格式]
F --> E4[Mermaid图表]
C1 --> D[树结构构建]
C2 --> D
C3 --> D
C4 --> D
%% 附加特性
B1[最大深度限制] --> B
E5[文件类型图标] --> E
Treex还处于早期开发之中,希望更多人能够发现并体验这个工具,让Treex变得更好。谢谢!