mcpField
C
code-to-diagram

code-to-diagram

github.com/zebbern开发4.7k43 次安装1 天前更新
代码仓库

关于 code-to-diagram

code-to-diagram 是一款 Python 技能,可分析源代码中的导入与依赖关系并生成 Mermaid 图表,面向探索项目结构、审查依赖或编写文档的开发者,也可选择渲染为 SVG。

主要功能

  1. 01生成架构图、流程图和组织图
  2. 02基于语法解析五种语言
  3. 03输出 Mermaid,或选择 SVG
  4. 04输出 JSON 分析结果
  5. 05可配置扫描范围

适用场景

  1. 01梳理陌生代码库
  2. 02在代码审查中检查依赖
  3. 03准备架构文档
  4. 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 解析从代码库中提取导入和依赖关系,并自动生成三种类型的图表:

  1. 架构图 — 模块/目录级依赖关系
  2. 流程图 — 文件级导入调用链
  3. 组织结构图 — 目录/文件层级结构

支持的语言: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 格式输出分析结果

工作原理

  1. 扫描阶段:递归遍历目录,跳过 node_modules、.git、__pycache__ 等目录。
  2. 解析阶段:
    • Python 文件:使用 ast 模块解析 import 和 from ... import 语句
    • JS/TS 文件:使用正则表达式匹配 import、require 和 export from
    • Go 文件:使用正则表达式匹配 import 语句
    • Java 文件:使用正则表达式匹配 import 语句
  3. 解析内部依赖:将导入路径映射到项目中的实际文件
  4. 生成图表:将依赖关系转换为 Mermaid 图表语法
  5. 渲染(可选):调用 mmdc(Mermaid CLI)将 .mmd 文件渲染为 SVG

使用场景

  • 快速了解陌生项目的模块结构
  • 在代码审查期间可视化依赖关系
  • 为技术文档创建架构图
  • 检测循环依赖或过度耦合
  • 在重构前分析项目结构

依赖项

  • Python 3.7+(仅使用标准库,无需额外安装软件包)
  • 输出 SVG 需要 @mermaid-js/mermaid-cli(可选)

注意事项

  • 仅分析静态导入关系;不会跟踪动态导入
  • 对于大型项目,可使用 --max-files 限制扫描范围
  • 节点过多的 Mermaid 图表可能难以渲染;可使用 --type 分别生成图表

评论

支持 Markdown