weekly icon indicating copy to clipboard operation
weekly copied to clipboard

【开源工具自荐】Treex:一个支持高级过滤、多样输出格式的目录可视化命令行工具

Open shiquda opened this issue 8 months ago • 0 comments

https://github.com/shiquda/treex

Image

这是一个基于Go编写的命令行工具。我开发Treex,是因为我在日常的学习中遇到了这些问题:

  • 对于一个陌生技术栈的项目,可能有着复杂的项目结构,不知道从何入手
  • 想要快速告诉大模型一个项目的结构,让它辅助你理解
  • 编写项目文档时,需要插入目录结构的可视化
  • ……

传统的tree工具针对小型目录还能工作,但是对于一些结构复杂的目录,就较为麻烦了。对于一些我们不关心的文件/目录,无法进行有效的排除(例如,node项目的node_modules),导致输出一长串树形图,根本无法起到可视化的效果。

Image

我曾经是自己写一个py脚本来解决这个问题,后来我将这个idea用go实现,做出了一个通用化的cli应用,希望能帮助到更多和我有类似需求的人。

对比传统的tree命令,TA的优势是:

  1. 自定义的过滤器,包括:
    1. 目录最大深度限制
    2. 根据指定目录的.gitignore规则排除文件
    3. 不显示隐藏文件
    4. 排除自定义文件夹/文件扩展名
  2. 多样的输出格式,包括:
    1. 树形输出(默认)
    2. 缩进格式
    3. Markdown格式
    4. 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变得更好。谢谢!

shiquda avatar Apr 13 '25 09:04 shiquda