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/overviewwerden 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.