Initial upload: TermDiagram v0.1.0
This commit is contained in:
161
README.md
161
README.md
@@ -1,3 +1,160 @@
|
||||
# term-diagram
|
||||
# TermDiagram
|
||||
|
||||
Generate architecture diagrams from codebases in terminal
|
||||
A CLI tool for generating architecture diagrams from codebases directly in your terminal.
|
||||
|
||||
## Features
|
||||
|
||||
- **Multi-format Output**: Generate diagrams in ASCII, Mermaid, SVG, or DOT formats
|
||||
- **Codebase Analysis**: Parse and analyze code structure including modules, classes, functions, and methods
|
||||
- **Interactive TUI**: Launch an interactive terminal user interface for exploring codebases
|
||||
- **Git Integration**: Track architecture changes over time with git history analysis
|
||||
- **Fuzzy Search**: Quickly find symbols across your codebase
|
||||
- **Language Support**: Support for multiple programming languages via tree-sitter
|
||||
|
||||
## Installation
|
||||
|
||||
```bash
|
||||
pip install termdiagram
|
||||
```
|
||||
|
||||
Or from source:
|
||||
|
||||
```bash
|
||||
git clone https://7000pct.gitea.bloupla.net/7000pctAUTO/term-diagram.git
|
||||
cd term-diagram
|
||||
pip install -e ".[dev]"
|
||||
```
|
||||
|
||||
## Usage
|
||||
|
||||
### Generate a Diagram
|
||||
|
||||
```bash
|
||||
# Generate ASCII diagram (default)
|
||||
termdiagram diagram .
|
||||
|
||||
# Generate Mermaid diagram
|
||||
termdiagram diagram . --format mermaid
|
||||
|
||||
# Generate SVG diagram
|
||||
termdiagram diagram . --format svg -o architecture.svg
|
||||
|
||||
# Generate DOT diagram
|
||||
termdiagram diagram . --format dot -o architecture.dot
|
||||
|
||||
# Filter by file extensions
|
||||
termdiagram diagram . --extensions py js ts
|
||||
|
||||
# Exclude patterns
|
||||
termdiagram diagram . --exclude "*/tests/*" "*/.venv/*"
|
||||
|
||||
# Simplify output
|
||||
termdiagram diagram . --no-imports --no-methods
|
||||
```
|
||||
|
||||
### Export Data
|
||||
|
||||
```bash
|
||||
# Export as JSON
|
||||
termdiagram json .
|
||||
|
||||
# Export as YAML
|
||||
termdiagram json . --format yaml
|
||||
```
|
||||
|
||||
### Show Statistics
|
||||
|
||||
```bash
|
||||
termdiagram stats .
|
||||
```
|
||||
|
||||
### Interactive Mode
|
||||
|
||||
```bash
|
||||
termdiagram interactive .
|
||||
```
|
||||
|
||||
### Search Symbols
|
||||
|
||||
```bash
|
||||
# Search for symbols
|
||||
termdiagram search . --search "ClassName"
|
||||
|
||||
# Show indexed symbols count
|
||||
termdiagram search .
|
||||
```
|
||||
|
||||
### Git Integration
|
||||
|
||||
```bash
|
||||
# Show git history
|
||||
termdiagram history . --limit 20
|
||||
|
||||
# Show architecture changes between commits
|
||||
termdiagram diff . OLD_COMMIT NEW_COMMIT
|
||||
```
|
||||
|
||||
### Check Dependencies
|
||||
|
||||
```bash
|
||||
termdiagram check
|
||||
```
|
||||
|
||||
## Configuration
|
||||
|
||||
Create a `termdiagram.yaml` or `termdiagram.json` config file:
|
||||
|
||||
```yaml
|
||||
# termdiagram.yaml
|
||||
output_format: mermaid
|
||||
extensions:
|
||||
- py
|
||||
- js
|
||||
- ts
|
||||
exclude:
|
||||
- "*/tests/*"
|
||||
- "*/.venv/*"
|
||||
- "*/node_modules/*"
|
||||
max_methods: 5
|
||||
show_imports: true
|
||||
```
|
||||
|
||||
## Architecture
|
||||
|
||||
```
|
||||
termdiagram/
|
||||
├── cli.py # CLI entry point and command group
|
||||
├── __init__.py # Package initialization
|
||||
├── generators/ # Diagram generation (ASCII, Mermaid, SVG)
|
||||
├── models/ # Data models (Module, Class, Function symbols)
|
||||
├── parser/ # Code parsing (symbol extraction, language detection)
|
||||
├── ui/ # Terminal UI (TUI, tree view, fuzzy search)
|
||||
├── git/ # Git integration (history tracking, diff analysis)
|
||||
└── utils/ # Utilities (config, file operations)
|
||||
```
|
||||
|
||||
## Requirements
|
||||
|
||||
- Python 3.10+
|
||||
- Click
|
||||
- Rich
|
||||
- tree-sitter-languages
|
||||
- GitPython
|
||||
- rapidfuzz
|
||||
|
||||
Optional dependencies:
|
||||
- Graphviz + pygraphviz (for SVG generation)
|
||||
|
||||
## Contributing
|
||||
|
||||
1. Fork the repository
|
||||
2. Create a feature branch
|
||||
3. Install development dependencies: `pip install -e ".[dev]"
|
||||
4. Run tests: `pytest tests/ -v`
|
||||
5. Run linting: `ruff check .`
|
||||
6. Run type checking: `mypy src/termdiagram/ --strict`
|
||||
7. Submit a pull request
|
||||
|
||||
## License
|
||||
|
||||
MIT License
|
||||
|
||||
Reference in New Issue
Block a user