关于 code-to-diagram
code-to-diagram 是一款 Python 技能,可分析源代码中的导入与依赖关系并生成 Mermaid 图表,面向探索项目结构、审查依赖或编写文档的开发者,也可选择渲染为 SVG。
主要功能
- 01生成架构图、流程图和组织图
- 02基于语法解析五种语言
- 03输出 Mermaid,或选择 SVG
- 04输出 JSON 分析结果
- 05可配置扫描范围
适用场景
- 01梳理陌生代码库
- 02在代码审查中检查依赖
- 03准备架构文档
- 04重构前检查耦合关系
安装
复制下面的命令,在终端中运行。
$
npx skills add https:/ / github.com/ zebbern/ claude-code-guide --skill code-to-diagram安装后在 Claude Code 中输入/code-to-diagram确认已加载。
附带文件LICENSEscripts/analyze_codebase.py
详细介绍
代码转图表
通过 AST 解析从代码库中提取导入和依赖关系,并自动生成三种类型的图表:
- 架构图 — 模块/目录级依赖关系
- 流程图 — 文件级导入调用链
- 组织结构图 — 目录/文件层级结构
支持的语言:Python、JavaScript、TypeScript、Go、Java
输出格式:Mermaid 文本(.mmd)或 SVG 图像(需要在系统上安装 mmdc)
用法
基本用法:分析整个项目
python3 scripts/analyze_codebase.py /path/to/project
将三张 Mermaid 图表输出到标准输出,并将 .mmd 文件写入当前目录。
指定图表类型
# Architecture diagram only
python3 scripts/analyze_codebase.py /path/to/project --type architecture
# Flowchart only
python3 scripts/analyze_codebase.py /path/to/project --type flowchart
# Org chart only
python3 scripts/analyze_codebase.py /path/to/project --type org
指定输出目录和格式
# Output to a specific directory
python3 scripts/analyze_codebase.py /path/to/project --output /tmp/diagrams
# Output as SVG (requires mmdc)
python3 scripts/analyze_codebase.py /path/to/project --format svg
# Output both Mermaid and SVG
python3 scripts/analyze_codebase.py /path/to/project --format both
输出 JSON 分析结果
python3 scripts/analyze_codebase.py /path/to/project --json
参数
| 参数 | 描述 |
|---|---|
directory | 要分析的代码目录(必填) |
--type, -t | 图表类型:architecture、flowchart、org、all(默认:all) |
--output, -o | 输出目录(默认:当前目录) |
--format, -f | 输出格式:mermaid、svg、both(默认:mermaid) |
--max-files | 要扫描的最大文件数(默认:500) |
--max-depth | 组织结构图的最大深度(默认:4) |
--json | 以 JSON 格式输出分析结果 |
工作原理
- 扫描阶段:递归遍历目录,跳过
node_modules、.git、__pycache__等目录。 - 解析阶段:
- Python 文件:使用
ast模块解析import和from ... import语句 - JS/TS 文件:使用正则表达式匹配
import、require和export from - Go 文件:使用正则表达式匹配
import语句 - Java 文件:使用正则表达式匹配
import语句
- Python 文件:使用
- 解析内部依赖:将导入路径映射到项目中的实际文件
- 生成图表:将依赖关系转换为 Mermaid 图表语法
- 渲染(可选):调用
mmdc(Mermaid CLI)将.mmd文件渲染为 SVG
使用场景
- 快速了解陌生项目的模块结构
- 在代码审查期间可视化依赖关系
- 为技术文档创建架构图
- 检测循环依赖或过度耦合
- 在重构前分析项目结构
依赖项
- Python 3.7+(仅使用标准库,无需额外安装软件包)
- 输出 SVG 需要
@mermaid-js/mermaid-cli(可选)
注意事项
- 仅分析静态导入关系;不会跟踪动态导入
- 对于大型项目,可使用
--max-files限制扫描范围 - 节点过多的 Mermaid 图表可能难以渲染;可使用
--type分别生成图表
评论
支持 Markdown