Übersicht über Variablen & Dynamische Laufzeit
Übersicht über Variablen & Dynamische Laufzeit
docmd bietet eine leistungsstarke Variablen- und Personalisierungs-Engine, die statische Build-Zeit-Interpolation mit reaktiver clientseitiger Personalisierung nahtlos vereint.
Anstatt Firmennamen, API-Endpunkte, Versionsnummern oder Copyright-Jahre manuell in Dutzenden von Markdown-Dateien zu pflegen, können Sie dynamische Platzhalter über einfache Template-Ausdrücke einbinden.
Willkommen zur Dokumentation von **\{{ site.title }}** v\{{ docmd.version }}!
Aktuelles Copyright: © \{{ docmd.buildYear }}.
Die folgenden Werte wurden vom docmd-Compiler während dieses Dokumentations-Builds live aufgelöst:
- Site-Titel: {{ site.title }}
- Compiler-Version: v{{ docmd.version }}
- Build-Jahr: © {{ docmd.buildYear }}
- Aktueller Git-Branch: {{ docmd.gitBranch || “main” }}
- Aktueller Git-Commit: {{ docmd.gitCommit || “HEAD” }}
- Aktueller Seiten-Slug:
{{ page.slug }}
Template-Syntax
Die Variablen-Engine verwendet eine übersichtliche geschweifte Klammer-Syntax:
\{{ variableName }}
Fallback-Standardwerte
Falls eine Variable nicht definiert ist (etwa in lokalen Entwicklungsumgebungen), können Sie mit dem ||-Operator einen Standardwert angeben:
Verbinden Sie sich mit unserem Server unter `\{{ server.endpoint || "https://api.example.com" }}`.
Willkommen zurück, \{{ user.name || 'Gast' }}!
Erstellt für Version \{{ targetVersion || 2.0 }}.
Als Fallback unterstützt werden:
- Einfach formatierte Strings:
'beispiel' - Doppelt formatierte Strings:
"beispiel" - Zahlen:
42oder2.0 - Bezeichner:
default
Leerzeichen-Toleranz
Ausdrücke tolerieren beliebige Leerzeichen um Variablennamen und Operatoren:
\{{ myVar }}
\{{ env.PORT || "8080" }}
Variablen-Lebenszyklus: Build-Zeit vs. Laufzeit
docmd trennt den Variablen-Lebenszyklus sauber in zwei aufeinander aufbauende Phasen:
Statische Variablen werden während docmd build direkt in das HTML kompiliert. Sie verursachen keinerlei JavaScript-Ausführungszeit im Browser und keinen Layout-Shift (CLS).
Dynamische Benutzersitzungswerte (wie API-Schlüssel oder Benutzernamen) werden von docmd-runtime.js live im DOM synchronisiert. Bei Eingaben aktualisieren sich alle Codeblöcke sofort.
Statische Build-Zeit-Variablen
Variablen, die zur Build-Zeit feststehen, werden direkt in fertigen HTML-Code eingesetzt. Es entsteht keinerlei Overhead für den Besucher.
Reaktive dynamische Variablen
Variablen, die als dynamisch konfiguriert sind oder Benutzersitzungsdaten enthalten (wie user.name oder user.apiKey), werden in reaktive Markierungs-Elemente gekapselt:
<span data-docmd-var="user.name" class="docmd-var">Gast</span>
Im Browser aktualisiert docmd-runtime.js diese Werte bei Benutzerinteraktionen, SPA-Seitenwechseln und Session-Änderungen automatisch.
Architektur: Trennung von Engine und UI
Um maximale Geschwindigkeit und Stabilität zu garantieren, wahrt docmd eine strikte Grenze zwischen Präsentation und Laufzeit-Engine:
docmd-runtime.js: Die schlanke, headless Dynamic Engine, die in alle Templates (default,summeretc.) eingebunden wird. Sie verwaltet Registrierungen, Abonnements und Events, ohne in Styles oder UI einzugreifen.docmd-main.js: Das UI-Präsentationsskript für Theme-Wechsel, mobile Navigation und DOM-Interaktionen. Nach jedem SPA-Übergang ruft eswindow.docmd.sync()auf.
Da docmd-runtime.js universell in allen Layouts eingebunden wird, erhalten auch eigene Themes und Community-Templates die volle Personalisierungsunterstützung automatisch.
Nächste Schritte
Erkunden Sie die vollständigen Anleitungen zu allen Themen:
System-Variablen für Versionen, Build-Jahre, Datumsangaben und Git-Metadaten.
Leitfaden lesen
Variablen in docmd.config.json deklarieren und in Fußzeilen, Bannern und Markdown nutzen.
Leitfaden lesen
CI/CD-Integration und Zero-Prefix-Promotion via DOCMD_VAR_*.
Leitfaden lesen
Client-SDK (window.docmd), reaktive Benutzersitzungen und interaktive Codebeispiele.
Leitfaden lesen