This commit is contained in:
210
README.md
210
README.md
@@ -1,3 +1,209 @@
|
||||
# docgen-cli
|
||||
# DocGen-CLI
|
||||
|
||||
A CLI tool that automatically scans codebases, detects API endpoints and function signatures, and generates beautiful interactive self-hosted API documentation with zero configuration.
|
||||
A CLI tool that automatically scans codebases, detects API endpoints and function signatures, and generates beautiful interactive self-hosted API documentation with zero configuration. Works offline with no cloud dependencies.
|
||||
|
||||
## Features
|
||||
|
||||
- **Multi-language endpoint detection** - Auto-detects endpoints in Python, JavaScript, Go, and Rust codebases
|
||||
- **Stripe-like interactive HTML docs** - Beautiful documentation with expandable endpoint details
|
||||
- **Markdown output format** - Clean documentation suitable for GitHub Wiki
|
||||
- **Live reload development server** - Watch source files and regenerate docs automatically
|
||||
- **Zero configuration** - Auto-detects framework and scanning options
|
||||
- **Beautiful terminal output** - Colored progress, endpoint counts, and summary information
|
||||
|
||||
## Installation
|
||||
|
||||
Install via pip:
|
||||
|
||||
```bash
|
||||
pip install docgen-cli
|
||||
```
|
||||
|
||||
Or install from source:
|
||||
|
||||
```bash
|
||||
git clone https://7000pct.gitea.bloupla.net/7000pctAUTO/docgen-cli.git
|
||||
cd docgen-cli
|
||||
pip install -e .
|
||||
```
|
||||
|
||||
## Quick Start
|
||||
|
||||
Scan your project and generate documentation:
|
||||
|
||||
```bash
|
||||
docgen generate
|
||||
```
|
||||
|
||||
Start a live-reload development server:
|
||||
|
||||
```bash
|
||||
docgen serve
|
||||
```
|
||||
|
||||
Detect endpoints without generating docs:
|
||||
|
||||
```bash
|
||||
docgen detect
|
||||
```
|
||||
|
||||
## Usage
|
||||
|
||||
### Generate Documentation
|
||||
|
||||
```bash
|
||||
docgen generate [INPUT_DIR] [OPTIONS]
|
||||
```
|
||||
|
||||
Options:
|
||||
- `-o, --output DIRECTORY` - Output directory (default: `docs`)
|
||||
- `-F, --format FORMAT` - Output format: `html`, `markdown`, `openapi` (default: `html`)
|
||||
- `-t, --theme THEME` - Theme for HTML output (default: `default`)
|
||||
- `-f, --framework FRAMEWORK` - Specific framework to use
|
||||
- `--title TITLE` - Documentation title
|
||||
- `-d, --description TEXT` - Documentation description
|
||||
- `-v, --version VERSION` - API version
|
||||
- `--verbose` - Enable verbose output
|
||||
|
||||
### Serve Documentation
|
||||
|
||||
```bash
|
||||
docgen serve [DOCS_DIR] [OPTIONS]
|
||||
```
|
||||
|
||||
Options:
|
||||
- `-h, --host HOST` - Host to bind to (default: `127.0.0.1`)
|
||||
- `-p, --port PORT` - Port to bind to (default: `8000`)
|
||||
- `--no-reload` - Disable auto-reload on changes
|
||||
|
||||
### Detect Endpoints
|
||||
|
||||
```bash
|
||||
docgen detect [INPUT_DIR] [OPTIONS]
|
||||
```
|
||||
|
||||
Options:
|
||||
- `-f, --framework FRAMEWORK` - Specific framework to use
|
||||
- `--no-recursive` - Disable recursive scanning
|
||||
|
||||
### Initialize Configuration
|
||||
|
||||
```bash
|
||||
docgen init --output .
|
||||
```
|
||||
|
||||
## Configuration
|
||||
|
||||
Create a `docgen.toml` file to customize behavior:
|
||||
|
||||
```toml
|
||||
[tool.docgen]
|
||||
input-dir = "."
|
||||
output-dir = "docs"
|
||||
format = "html"
|
||||
theme = "default"
|
||||
title = "My API"
|
||||
version = "1.0.0"
|
||||
```
|
||||
|
||||
### Environment Variables
|
||||
|
||||
| Variable | Default | Description |
|
||||
|----------|---------|-------------|
|
||||
| `DOCGEN_OUTPUT` | `docs` | Output directory |
|
||||
| `DOCGEN_FORMAT` | `html` | Output format |
|
||||
| `DOCGEN_THEME` | `default` | Theme name |
|
||||
| `DOCGEN_VERBOSE` | `false` | Enable verbose output |
|
||||
|
||||
## Supported Frameworks
|
||||
|
||||
### Python
|
||||
- FastAPI
|
||||
- Flask
|
||||
- Django
|
||||
|
||||
### JavaScript/TypeScript
|
||||
- Express
|
||||
- Fastify
|
||||
|
||||
### Go
|
||||
- Gin
|
||||
- chi
|
||||
|
||||
### Rust
|
||||
- Actix-web
|
||||
|
||||
## Output Formats
|
||||
|
||||
### HTML
|
||||
Interactive documentation with:
|
||||
- Expandable endpoint details
|
||||
- Method badges with color coding
|
||||
- Interactive cURL generator
|
||||
- Sidebar navigation with search
|
||||
- Responsive design
|
||||
|
||||
### Markdown
|
||||
Clean Markdown documentation with:
|
||||
- Endpoint tables
|
||||
- Parameter documentation
|
||||
- Response examples
|
||||
- GitHub-compatible formatting
|
||||
|
||||
### OpenAPI
|
||||
Standard OpenAPI 3.0 specification:
|
||||
- JSON output
|
||||
- Compatible with Swagger UI
|
||||
- Full schema support
|
||||
- Security definitions
|
||||
|
||||
## Examples
|
||||
|
||||
### Basic FastAPI Documentation
|
||||
|
||||
```python
|
||||
from fastapi import FastAPI
|
||||
|
||||
app = FastAPI()
|
||||
|
||||
@app.get("/users", tags=["users"])
|
||||
async def list_users():
|
||||
"""List all users"""
|
||||
return {"users": []}
|
||||
|
||||
@app.post("/users", tags=["users"])
|
||||
async def create_user(name: str):
|
||||
"""Create a new user"""
|
||||
return {"id": 1, "name": name}
|
||||
```
|
||||
|
||||
Generate docs:
|
||||
|
||||
```bash
|
||||
docgen generate --title "User API" --format html
|
||||
```
|
||||
|
||||
### Express.js Documentation
|
||||
|
||||
```javascript
|
||||
const express = require('express');
|
||||
const router = express.Router();
|
||||
|
||||
router.get('/items', (req, res) => {
|
||||
res.json({ items: [] });
|
||||
});
|
||||
|
||||
router.post('/items', (req, res) => {
|
||||
res.status(201).json({ id: 1 });
|
||||
});
|
||||
```
|
||||
|
||||
Generate docs:
|
||||
|
||||
```bash
|
||||
docgen generate --framework javascript --format markdown
|
||||
```
|
||||
|
||||
## License
|
||||
|
||||
MIT License - see LICENSE file for details.
|
||||
|
||||
Reference in New Issue
Block a user