Die docmd 0.7.6 Version führt eine einheitliche URL-Normalisierungs-Engine ein, die 301-Weiterleitungen eliminiert, Trailing-Slash-URLs für SEO erzwingt und eine konsistente Link-Handhabung über alle Oberflächen hinweg bietet.

✨ Highlights

Einheitliche URL-Normalisierung

Die gesamte URL-Verarbeitung erfolgt nun über eine einzige resolveHref()-Funktion in @docmd/parser. Die Erzwingung von Trailing-Slashes, das Entfernen von index.md und die Vermeidung von Doppelslashes werden konsistent auf Markdown-Links, Button-Container, Navigation und Menüleiste angewendet.

  • 301-Weiterleitungen eliminieren: URLs wie /configuration/overview werden direkt zum Build-Zeitpunkt zu /configuration/overview/ aufgelöst.
  • Keine Pfad-Artefakte: Keine /index-Überbleibsel oder .md-Erweiterungen mehr in gerenderten Links.
  • Hreflang-Genauigkeit: Alternate-Tags entfernen nun korrekt die Locale-Präfixe aus den Seitenpfaden.

Weitere Details finden Sie im Leitfaden Verlinkung & Referenzierung mit der vollständigen URL-Übersetzungstabelle.

Universelle Präfixe external: und raw:

Wir haben zwei neue magische Präfixe eingeführt, um Ihnen die volle Kontrolle über das Link-Verhalten in allen docmd-Komponenten zu geben.

  • external: — Neuer Tab erzwingen: Fügen Sie dies zu jedem Link hinzu (Markdown, Buttons, Menüleiste), um das Öffnen in einem neuen Tab zu erzwingen.
  • raw: — Normalisierung umgehen: Verwenden Sie dies, wenn Sie auf eine originale .md-Datei verlinken müssen, ohne dass die Engine deren Erweiterung entfernt.
[In neuem Tab öffnen](external:./configuration/overview.md)
::: button "API-Dokumentation" external:./api/node-api.md
[Template herunterladen](raw:templates/starter.md)

Verhaltensänderung: HTTP/HTTPS-Links werden nicht mehr automatisch in einem neuen Tab geöffnet. Verwenden Sie explizit external:, wenn Sie dieses Verhalten wünschen.

Zentralisierte URL-API für Plugins

Eine neue URL-Utility-Ebene in @docmd/parser wird über @docmd/api re-exportiert. Plugins müssen den outputPath nicht mehr manuell parsen — die Engine berechnet saubere URLs für jede Seite vorab:

import { outputPathToSlug, sanitizeUrl } from '@docmd/api';

export async function onPostBuild({ pages }) {
  for (const page of pages) {
    page.urls.slug;      // "guide/"
    page.urls.canonical; // "https://example.com/guide/"
    page.urls.pathname;  // "/guide/"
  }
}

Weitere Informationen finden Sie in der Plugin-Entwicklung Referenz.

🔧 Developer Experience

Stummschaltung von Plugin-Warnungen

Zuvor druckte ein fehlendes oder falsch konfiguriertes Plugin bei jeder Dateiänderung während docmd dev eine Warnung aus. Diese Warnungen werden nun nur einmal pro Dev-Session ausgegeben und bei nachfolgenden Rebuilds unterdrückt, um Ihr Terminal sauber zu halten.

↻ Change in docs/en/guide.md... ⚠️  Could not load plugin: @docmd/plugin-math
Done.

Fix für SPA-Hash-Navigation

Im SPA-Modus führt das Klicken auf einen #heading-Anker auf der aktuellen Seite nun zu einem sanften Scrollen zum Ziel-Element. Das Vor- und Zurückblättern im Browser durch die Hash-Historie (via popstate) funktioniert ebenfalls korrekt.

[Zur Konfiguration springen](#configuration)  <!-- funktioniert jetzt im SPA-Modus -->

🚀 SEO-Verbesserungen

  • Trailing Slashes: Alle internen URLs werden mit Trailing Slashes gerendert, um 301-Weiterleitungsketten zu eliminieren.
  • Saubere Pfade: Kanonische und Hreflang-<link>-Tags verwenden die korrekten normalisierten Pfade.
  • Keine Artefakte: Keine .md-Erweiterungen oder /index-Fragmente im Produktions-HTML.

Migrationsleitfaden

Aktualisieren Sie auf die neueste Version mit npm update @docmd/core oder pnpm update @docmd/core. Keine Konfigurationsänderungen erforderlich.

Wenn Sie benutzerdefinierte serverseitige Redirect-Regeln haben, die Trailing Slashes entfernen, sollten Sie diese entfernen, da die Engine nun nativ das kanonische Trailing-Slash-Format erzeugt.