Das docmd 0.7.0 Release ist ein großer Schritt nach vorn — es führt native Multi-Sprachen-Unterstützung (i18n) mit einem integrierten Übersetzungssystem und echte Zero-Config-Standardwerte ein, bei denen alle Core-Plugins standardmäßig aktiv sind.

✨ Highlights

🌍 Internationalisierung (i18n)

docmd bietet nun erstklassige i18n-Unterstützung. Konfigurieren Sie mehrere Sprachen (Locales), und docmd baut für jede Sprache eine vollständige, lokalisierte Version Ihrer Website — mit sprachengebundenen URLs (/de/, /zh/), übersetzten UI-Strings und automatischer Spracherkennung.

Jede Sprache lebt in ihrem eigenen Unterverzeichnis — einschließlich der Standardsprache. Dies hält Ihr Quellverzeichnis sauber und macht die Struktur auf einen Blick verständlich:

docs/
  en/       ← Standard-Sprache (gerendert unter /)
  de/Deutsch (gerendert unter /de/)
  zh/Chinesisch (gerendert unter /zh/)

Die Sprach-IDs, Ordnernamen und die Standardsprache sind völlig frei wählbar — en, de, fr, ja oder jede andere ID, die Sie bevorzugen.

Dies beinhaltet pro Sprache separate Suchindizes, die automatisch über Ihre Versionen hinweg erstellt werden, sowie übersetzte UI-Komponenten für offizielle Plugins wie Suche und Threads!

🚀 Zero-Config Core-Plugins

In 0.7.0 verfolgt docmd eine echte Zero-Config-Philosophie. Alle offiziellen Core-Plugins (search, seo, sitemap, pwa, analytics, llms, mermaid) sind nun standardmäßig automatisch enthalten. Sie müssen sie nicht mehr manuell in Ihrem plugins-Array deklarieren, um sie zu nutzen.

Wenn Sie ein Core-Plugin deaktivieren möchten, können Sie es einfach auf false setzen.

📝 Vollständiger Changelog

🌍 i18n-Architektur

  • Saubere Sprachverzeichnisse: Jede Sprache (einschließlich der Standardeinstellung) lebt in ihrem eigenen Unterverzeichnis innerhalb von src.
  • Sprachgebundene URL-Generierung: Der Build-Prozess erstellt nun verschachtelte Verzeichnisse für jede konfigurierte Sprache.
  • Fallback pro Datei: Nicht-Standard-Sprachen übernehmen Seiten aus der Standardsprache, wenn eine Übersetzung fehlt, ergänzt durch einen automatischen Warnhinweis.
  • Navigation pro Sprache: Jedes Sprachverzeichnis kann eine eigene navigation.json haben.
  • Versionierung + i18n: Alte Versionen ohne Sprachverzeichnisse werden nur in der Standardsprache gerendert.
  • Übersetzte UI-Strings: Natives Übersetzungssystem für alle UI-Elemente und Templates unter Verwendung von JSON-Sprachdateien.
  • Plugin i18n-API: Plugins unterstützen nun einen neuen translations(localeId)-Hook.
  • Global Search Locales: Der lokale MiniSearch-Index wird nun pro Sprache erstellt.
  • String Mode (stringMode: true): Ein neuer i18n-Modus für noStyle-Seiten — generieren Sie lokalspezifisches HTML aus einer einzigen Quelldatei mittels data-i18n-Attributen.

🔌 Plugin-System & Engine

  • Auto-Aktivierung von Core-Plugins: Zero-Config-Standards bieten die komplette docmd-Suite ohne Konfigurationsaufwand.
  • Optimierung der Asset-Generierung: Statische Ressourcen werden nur noch einmal im Root-Verzeichnis gebaut.

🎨 UI & Container

  • Container icon: Parameter: Callouts, Cards, ausklappbare Abschnitte und Buttons akzeptieren jetzt einen icon: Parameter für Lucide-Icons.
  • titleAppend Frontmatter-Option: Ermöglicht das Unterdrücken des automatischen Seiten-Suffixes im <title>-Tag.
  • Pillen-Design für Versionen & Sprachen: Dropdowns in der Seitenleiste werden nun als kompakte Pillen-Buttons nebeneinander gerendert.
  • Konfigurations-Hot-Reload: Änderungen an der docmd.config.js lösen im Entwicklungsmodus nun automatisch einen Rebuild aus.

🐛 Fehlerbehebungen (Bug Fixes)

  • Konflikte zwischen Versionierung und i18n bei alten Verzeichnissen ohne Sprachunterordner gelöst.
  • Fehlerhafte URL-Duplikation beim Sprachwechsel in alten Versionen korrigiert.
  • Diverse Korrekturen an der automatischen Navigationssuche und der Titel-Generierung.

🧪 Qualitätssicherung

Das 0.7.0 Release hat eine umfassende Test-Suite mit über 25 Szenarien und 85 Einzelprüfungen erfolgreich bestanden.

⚠️ Breaking Changes

  • Kurznamen von Drittanbieter-Plugins werden nicht mehr automatisch aufgelöst (vollständiger Paketname erforderlich).
  • pnpm onboard wurde entfernt und in pnpm prep integriert.
  • Das PWA-Plugin ist nun ein optionales Plugin und nicht mehr standardmäßig enthalten (nutzen Sie docmd add pwa).

Migrationleitfaden

Aktualisieren Sie mittels npm install docmd@latest. Dann:

  1. Entfernen Sie Core-Plugins aus Ihrem plugins-Array, sofern diese mit Standardeinstellungen genutzt wurden.
  2. Aktualisieren Sie Drittanbieter-Plugins auf ihren vollständigen Paketnamen.