Strukturelemente

Diese Seite bündelt die wiederverwendbaren Inhaltsbausteine der öffentlichen Workspace-Dokumentation. Sie dient als visuelle Referenz für Typografie, Farben, Tabellen, Code und Hinweisboxen.

Inline-Elemente

Inline-Code markiert kurze technische Werte wie config.json, /docs/de/ oder DOCS_SERVER_VERSION direkt im Textfluss.

Tastaturkürzel werden als KBD gerendert: Ctrl K öffnet die Suche, Esc schließt ein Overlay.

Badges verwenden die Monster-Badge-Klassen: Standard Optional Aktiv Prüfen Fehler

API-Endpunkte werden kompakt mit Methode und Pfad dargestellt: GET/api/v1/ping GET/api/v1/meta/discovery

Listen

  • Öffentliche Produkttexte verwenden Workspace.
  • Beispiele verwenden neutrale, realistisch klingende Platzhalter.
  • Links zeigen auf öffentliche Ziele oder kuratierte Assets.

Tabellen

ElementEinsatzDarstellung
Inline-CodeDateinamen, Pfade, Befehlesite.css
KBDTastaturaktionenEnter
BadgeStatus oder kurze EinordnungBereit
API-EndpunktMethode und PfadGET/api/v1/ping

Info-Box

Tipp-Box

Warnungs-Box

Gefahren-Box

Code-Blöcke

Mehrzeilige Code-Blöcke zeigen Befehle, Konfigurationen oder API-Beispiele.

bash
curl --fail --silent --show-error https://workspace.example/api/v1/ping
json
{
  "name": "Workspace Docs",
  "basePath": "/docs/",
  "public": true
}

Code-Tabs

Mehrere gleichwertige Implementierungen werden als monster-tabs gerendert. Das erste Beispiel ist initial aktiv.

curl
curl --fail --silent --show-error \
  -H "Accept: application/json" \
  https://workspace.example/api/v1/meta/discovery
bash
curl --fail --silent --show-error \
  https://workspace.example/api/v1/meta/discovery \
  | jq '.data | {apiMajor, serverVersion, builtAt, capabilities}'
go
resp, err := http.Get("https://workspace.example/api/v1/meta/discovery")
if err != nil {
  return err
}
defer resp.Body.Close()
if resp.StatusCode != http.StatusOK {
  return fmt.Errorf("discovery returned %s", resp.Status)
}
php
$response = file_get_contents('https://workspace.example/api/v1/meta/discovery');
if ($response === false) {
    throw new RuntimeException('Discovery konnte nicht gelesen werden.');
}
echo $response;

Diagramme

Diagramme werden als DOT-Codeblock geschrieben und im Build lokal als SVG gerendert. Sie eignen sich für kompakte Architektur- und Betriebsbilder.

docs_reference markdown Markdown build Public-Docs-Build markdown->build dot html HTML build->html svg SVG-Diagramm build->svg

Screenshots

Screenshots verwenden den gleichen Filemanager-Rahmen wie Video- und Screenshot-Aufgaben. Jedes Screenshot-Asset braucht ein echtes helles Bild und ein echtes dunkles Bild mit dem Suffix -dark, zum Beispiel workspace-login.png und workspace-login-dark.png. Der Schalter an der Bildbeschriftung tauscht nur die Abbildung und den Rahmen; die Docs-Seite selbst bleibt bei der System-Farbwahl. Ein Klick auf den Screenshot öffnet die Abbildung in einer großen Ansicht. Die Bilder müssen frei von personenbezogenen Daten, internen Hosts und lokalen Zufallsdaten sein.

Workspace-Anmeldebildschirm
Workspace-Anmeldebildschirm

API-Dokumentationsblock

Ein API-Dokumentationsblock beschreibt einzelne, öffentlich kuratierte Endpunkte. Die Inhalte können aus der OpenAPI-Spezifikation übernommen werden, bleiben aber bewusst redaktionell kontrolliert.

Serverfähigkeiten lesen

GET/api/v1/meta/discovery

Liefert den API-Major, diagnostische Build-Metadaten und die global sichtbaren Runtime-Fähigkeiten. Der öffentliche Endpunkt benötigt keine Authentisierung und verändert keine Daten.

BereichNameTypPflichtBeschreibung
Responsedata.apiMajorstringJaBediente HTTP-API-Major-Lane, zum Beispiel v1.
Responsedata.serverVersionstringJaDiagnostische Build- oder Release-Kennung.
Responsedata.builtAtstringJaBest-Effort-Build-Metadatum; Entwicklungsbuilds können unknown liefern.
Responsedata.capabilitiesstring[]JaAutoritative globale Fähigkeitssignale für optionale Runtime-Funktionen.
StatusRückgabeBedeutung
200Envelope<PublicDiscoveryResponse>Die öffentliche Runtime-Discovery wurde gelesen.
curl
curl --fail --silent --show-error \
  -H "Accept: application/json" \
  https://workspace.example/api/v1/meta/discovery
go
resp, err := http.Get("https://workspace.example/api/v1/meta/discovery")
if err != nil {
  return err
}
defer resp.Body.Close()
if resp.StatusCode != http.StatusOK {
  return fmt.Errorf("discovery returned %s", resp.Status)
}
var payload struct {
  Data struct {
    APIMajor      string   `json:"apiMajor"`
    ServerVersion string   `json:"serverVersion"`
    BuiltAt       string   `json:"builtAt"`
    Capabilities  []string `json:"capabilities"`
  } `json:"data"`
}
if err := json.NewDecoder(resp.Body).Decode(&payload); err != nil {
  return err
}
fmt.Println(payload.Data.APIMajor)
php
$response = file_get_contents('https://workspace.example/api/v1/meta/discovery');
if ($response === false) {
    throw new RuntimeException('Discovery konnte nicht gelesen werden.');
}
$payload = json_decode($response, true, flags: JSON_THROW_ON_ERROR);
echo $payload['data']['apiMajor'], PHP_EOL;

Überschrift Dritter Ebene

Unterabschnitt

Der Unterabschnitt ist bewusst vorhanden, damit die Seite auch die Inhaltsnavigation mit mehreren Überschriften prüft.