Laravel Docs Generator (MkDocs Material)
Struktur
docs/
├── technik/ (Architektur, Models, Routes, Services, Commands, API)
├── server/ (Anforderungen, Installation, Deployment, Cronjobs, Environment)
└── kunde/ (Übersicht, Admin-Bereich, FAQ)
Workflow
- Scan: Routes, Models, Migrations, Commands, Jobs, Config, .env scannen
- Validieren: Alle Migrations gelistet? Commands vollständig? @doc-Tags erfasst?
- Generieren: MkDocs-Seiten pro Bereich schreiben
- Build:
mkdocs build → site/ Ordner (in .gitignore!)
@doc Annotations
Im Code platzieren – wird beim Scan automatisch erfasst:
/** @doc:cron Täglich 3:00 Uhr: Sitemap generieren */
/**
* @doc:setup
* composer install && php artisan migrate
* npm run build
*/
/** @doc:env MAIL_MAILER – smtp für Produktion, log für Entwicklung */
/** @doc:api POST /api/webhook – Mollie Payment Webhook */
/** @doc:admin Unter "Einstellungen" können Firmendaten geändert werden */
Tags: @doc:setup, @doc:cron, @doc:env, @doc:api, @doc:admin, @doc:queue, @doc:config, @doc:migration, @doc:security, @doc:performance, @doc:troubleshoot
Scan-Befehle
php artisan route:list --json
ls app/Models/
ls app/Console/Commands/
grep -r "@doc:" app/ config/ routes/ --include="*.php"
php artisan schedule:list
cat .env.example
Content pro Seite
| Seite |
Quelle |
Inhalt |
| architektur.md |
Code-Analyse |
Ordnerstruktur, Patterns, Tech-Stack |
| models.md |
app/Models/ |
Relationen, Scopes, Casts, Factories |
| routes.md |
route:list |
Gruppiert nach Prefix, Middleware |
| services.md |
app/Services/ |
Public Methods, Abhängigkeiten |
| commands.md |
Commands/ + schedule:list |
Signatur, Beschreibung, Schedule |
| installation.md |
@doc:setup + .env.example |
Schritt-für-Schritt |
| environment.md |
.env.example + @doc:env |
Alle Variablen mit Erklärung |
| cronjobs.md |
schedule:list + @doc:cron |
Frequenz, Zweck |
MkDocs Setup
# mkdocs.yml (Minimal)
site_name: "{Projekt} Dokumentation"
theme:
name: material
language: de
features: [navigation.sections, navigation.expand, search.highlight]
nav:
- Start: index.md
- Technik: [technik/architektur.md, technik/models.md, technik/routes.md]
- Server: [server/installation.md, server/environment.md, server/cronjobs.md]
- Kunde: [kunde/uebersicht.md, kunde/admin-bereich.md]
Deployment
mkdocs build # Generiert site/
mkdocs gh-deploy # GitHub Pages
# oder: scp -r site/* user@server:/var/www/docs/
1---2name: laravel-docs3description: Generiert Projektdokumentation aus Laravel-Codebases mit MkDocs Material. Nutze bei: "Dokumentation erstellen", "Doku generieren", "Server-Doku", "Installationsanleitung", "Projekt dokumentieren", "Übergabe-Doku", "MkDocs aufsetzen", "welche Cronjobs/Commands gibt es".4---56# Laravel Docs Generator (MkDocs Material)78## Struktur910```11docs/12├── technik/ (Architektur, Models, Routes, Services, Commands, API)13├── server/ (Anforderungen, Installation, Deployment, Cronjobs, Environment)14└── kunde/ (Übersicht, Admin-Bereich, FAQ)15```1617## Workflow18191. **Scan:** Routes, Models, Migrations, Commands, Jobs, Config, .env scannen202. **Validieren:** Alle Migrations gelistet? Commands vollständig? @doc-Tags erfasst?213. **Generieren:** MkDocs-Seiten pro Bereich schreiben224. **Build:** `mkdocs build` → `site/` Ordner (in .gitignore!)2324## @doc Annotations2526Im Code platzieren – wird beim Scan automatisch erfasst:2728```php29/** @doc:cron Täglich 3:00 Uhr: Sitemap generieren */3031/**32 * @doc:setup33 * composer install && php artisan migrate34 * npm run build35 */3637/** @doc:env MAIL_MAILER – smtp für Produktion, log für Entwicklung */38/** @doc:api POST /api/webhook – Mollie Payment Webhook */39/** @doc:admin Unter "Einstellungen" können Firmendaten geändert werden */40```4142**Tags:** `@doc:setup`, `@doc:cron`, `@doc:env`, `@doc:api`, `@doc:admin`, `@doc:queue`, `@doc:config`, `@doc:migration`, `@doc:security`, `@doc:performance`, `@doc:troubleshoot`4344## Scan-Befehle4546```bash47php artisan route:list --json48ls app/Models/49ls app/Console/Commands/50grep -r "@doc:" app/ config/ routes/ --include="*.php"51php artisan schedule:list52cat .env.example53```5455## Content pro Seite5657| Seite | Quelle | Inhalt |58|---|---|---|59| architektur.md | Code-Analyse | Ordnerstruktur, Patterns, Tech-Stack |60| models.md | `app/Models/` | Relationen, Scopes, Casts, Factories |61| routes.md | `route:list` | Gruppiert nach Prefix, Middleware |62| services.md | `app/Services/` | Public Methods, Abhängigkeiten |63| commands.md | `Commands/` + `schedule:list` | Signatur, Beschreibung, Schedule |64| installation.md | @doc:setup + .env.example | Schritt-für-Schritt |65| environment.md | .env.example + @doc:env | Alle Variablen mit Erklärung |66| cronjobs.md | schedule:list + @doc:cron | Frequenz, Zweck |6768## MkDocs Setup6970```yaml71# mkdocs.yml (Minimal)72site_name: "{Projekt} Dokumentation"73theme:74 name: material75 language: de76 features: [navigation.sections, navigation.expand, search.highlight]77nav:78 - Start: index.md79 - Technik: [technik/architektur.md, technik/models.md, technik/routes.md]80 - Server: [server/installation.md, server/environment.md, server/cronjobs.md]81 - Kunde: [kunde/uebersicht.md, kunde/admin-bereich.md]82```8384## Deployment8586```bash87mkdocs build # Generiert site/88mkdocs gh-deploy # GitHub Pages89# oder: scp -r site/* user@server:/var/www/docs/90```