New Semantics Docs
Entwickler-Dokumentation fuer das New Semantics CMS (PHP + Nuxt 4). Gebaut mit VitePress und Scalar fuer die interaktive OpenAPI-Referenz.
Voraussetzungen
- Node.js 20+ (Produktion: 25.9.0)
- npm
- PHP CLI (nur fuer
build:openapi, Scan der swagger-php Annotationen)
Hinweis zu Scalar-Version:
@scalar/api-referenceist bewusst auf^1.25.0gepinnt (Legacy-Range). Scalar hat in 2025 einen 2.x-Major veroeffentlicht — Upgrade ist fuer zukuenftige Releases geplant, nach lokalem Test.
Setup
cd docs
npm installEntwicklung
Dev-Server auf http://localhost:5173 starten:
npm run devHot-Reload fuer alle Markdown- und Theme-Dateien.
Production-Build
npm run buildAusgabe: docs/.vitepress/dist/ — statische Site, nginx-kompatibel.
Preview des Production-Builds:
npm run previewOpenAPI-Spec neu generieren
Scannt _core/system/api/ + _public/extensions/core/backend/ nach swagger-php Annotationen und schreibt docs/public/openapi.json:
npm run build:openapiDas Script ruft _core/libs/swagger-php/bin/openapi mit PHP CLI auf. Voraussetzung: PHP ≥ 8.2 im PATH.
OG-Image rasterisieren
Quelle: public/og-image.svg. Rasterisierung nach public/og-image.png (1200x630) via:
npm run build:ogDas Script nutzt rsvg-convert (empfohlen), magick, convert oder inkscape — der erste verfuegbare Tool wird benutzt. Ohne Tool laeuft der Build weiter, nur ohne OG-Image.
Struktur
docs/
├── .vitepress/
│ ├── config.ts Site-Meta, Nav, Sidebar, Suche
│ └── theme/
│ ├── index.ts Theme-Override (erweitert default)
│ └── custom.css Brand-Farben (Electric Indigo #4F46E5)
├── api-reference/ Scalar-Embed
├── getting-started/ Installation, Config, Directory Structure
├── plugins/ Plugin-Entwicklungs-Doku
├── widgets/ Widget-Entwicklungs-Doku
├── themes/ Theme- und Projekt-Doku
├── public/
│ ├── openapi.json Generierte OpenAPI-Spec (Scalar-Quelle)
│ ├── favicon.svg Favicon (Brand-Gradient)
│ └── og-image.svg OG-Image-Quelle (PNG via build:og)
├── scripts/
│ ├── build-openapi.sh Wrapper fuer swagger-php
│ └── build-og-image.sh SVG -> PNG Rasterizer fuer OG-Image
├── deploy/
│ ├── nginx-plesk.conf Plesk-Zusatz-Direktiven (produktiv)
│ ├── nginx-standalone.conf Alternative für nginx ohne Plesk
│ └── README.md Deploy-Anleitung
├── 404.md 404-Fallback-Seite
└── index.md Startseite (Hero + Feature-Kacheln)Deployment
Der statische Build unter .vitepress/dist/ wird per nginx auf docs.new-semantics.com ausgeliefert (aktuell via Plesk). Komplette Anleitung (Plesk-Setup, rsync-Deploy, GitHub Actions, Rollback, Analytics-Nachrüstung) in deploy/README.md, nginx-Configs in deploy/nginx-plesk.conf (produktiv) und deploy/nginx-standalone.conf (Alternative ohne Plesk).