✨ Highlights

Eine Reihe von Verbesserungen zur Portabilität der Navigation, zu Vorschauumgebungen und zur Offline-Nutzung. Keine bahnbrechenden Änderungen, keine neuen Konfigurationsschlüssel. Bestehende Projekte werden unverändert erstellt und bereitgestellt.

🌐 Kontextuelle seitenrelative URL-Auflösung

Um eine vollständige Portabilität der erstellten Websites zu gewährleisten, priorisieren Versions-, Sprach- und Projekt-Switcher nun seitenrelative Links (./, ../) anstelle von absolut basispfadabhängigen Links.
Dies ermöglicht eine konsistente Navigation über verschiedene Bereitstellungskontexte hinweg – wie lokale Vorschauordner, Unterpfad-Bereitstellungen (z. B. GitHub Pages) und Stammverzeichnis-Bereitstellungen – ohne dass Konfigurationsänderungen erforderlich sind.

🐛 Fix: Switcher-Weiterleitungskonflikt auf dem lokalen Dev-Server

In Workspace-Konfigurationen, bei denen die Produktionsbereitstellung eine benutzerdefinierte Basis verwendet (z. B. /beta-test/i18n/), stellt der Dev-Server die Inhalte unter /i18n/ bereit. Zuvor verwendete das clientseitige JS den Build-Zeit-Basispfad (window.DOCMD_BASE), um Sprach- und Versionsänderungen zu routen, was zu fehlerhaften Weiterleitungen wie localhost:3000/beta-test/i18n/de/ führte.

Die Behebung: Die Switcher in docmd-main.js analysieren nun dynamisch das aktuelle window.location.pathname des Browsers zur Laufzeit. Wenn das Workspace-Basispfad-Präfix (z. B. /beta-test/) in der aktuellen URL fehlt, wird es automatisch aus der Routing-Berechnung entfernt, was einen nahtlosen Wechsel im lokalen Entwicklungsmodus gewährleistet.

🔗 SPA-Navigationssynchronisierung für Menüleiste & Banner

Zuvor wurden bei SPA-Übergängen die obere Menüleiste (.docmd-menubar), das Ankündigungsbanner (.docmd-banner) und das Cookie-Einwilligungsbanner (.docmd-cookie-banner) nicht im DOM ausgetauscht. Auf Seiten, die sich in unterschiedlichen Verzeichnistiefen befinden, führte dies dazu, dass relative URLs innerhalb dieser Layoutkomponenten fehlerhaft aufgelöst wurden (z. B. die Auflösung von ../containers/ aus einem doppelt verschachtelten Verzeichnis).

Die Behebung: Diese äußeren Layoutkomponenten wurden nun zur Liste selectorsToSwap der SPA hinzugefügt. Sie werden bei jedem clientseitigen Laden der Seite dynamisch aktualisiert, um sicherzustellen, dass relative Navigationslinks und Richtlinien-Hrefs der relativen Tiefe der aktiven Seite entsprechen.

🔌 CLI --offline-Modus

Es wurde ein neues CLI-Flag --offline für die reine Offline-Dokumentationsanzeige eingeführt:

  • Indizierung überspringen: Stoppt die Keyword- und semantische Suchindizierung und verhindert das Herunterladen semantischer Binärdateien, um den Erstellungsprozess im Offline-Modus erheblich zu beschleunigen.
  • Suffixierung im Browser: Erzwingt .html-Suffixe auf allen seitenrelativen Links, um eine saubere Navigation unter dem file://-Protokoll zu ermöglichen.
  • Lokalisierter Offline-Suchhinweis: Fügt eine lokalisierte Meldung in das Suchmodal ein, die den Benutzer darauf hinweist, dass die Suche in Offline-Builds nicht verfügbar ist.

🧹 Bereinigung & Wartung von Abhängigkeiten

  • Veraltete Unterabhängigkeiten (wie boolean und node-domexception) wurden aus den internen Paketbäumen entfernt.
  • Die Ausmaße optionaler Plugins wurden überprüft, wobei bestätigt wurde, dass @docmd/plugin-math für den Kern optional ist und nur dann automatisch installiert bzw. benötigt wird, wenn @docmd/live aktiv ist.

📦 Upgrade

upgrade
npx @docmd/core@0.8.17 build