Hero Breadcrumbs
Automatisierte Brotkrumen-Navigation
Hero Breadcrumbs
Breadcrumbs (Brotkrumen-Navigation) zeigen den Pfad zur aktuellen Seite. Sie werden
automatisch durch generate-navigation.js generiert und helfen
bei der Orientierung.
HTML-Struktur
Die Breadcrumbs werden in der Hero-Section platziert. Das Script sucht nach dem <nav class="breadcrumbs"> Element und ersetzt dessen Inhalt:
<section class="hero tutorial-hero">
<div class="container">
<!-- Breadcrumbs werden hier automatisch gefüllt -->
<nav class="breadcrumbs" aria-label="Breadcrumb"></nav>
<h1 class="hero-title">Seitentitel</h1>
<p class="hero-subtitle">Untertitel</p>
</div>
</section>
Zwei Varianten
Das Script generiert je nach Seitentyp unterschiedliche Breadcrumbs:
Kategorieseiten (index.html)
Pfad: /tutorials/css/index.html
Ergebnis: Home › CSS
Tutorial-Seiten
Pfad: /tutorials/css/css-basics/css-einbinden.html
Ergebnis: Home › CSS › CSS einbinden
Die Unterkategorie (z.B. "CSS Basics") wird nicht in den Breadcrumbs angezeigt. Die Navigation bleibt dadurch kompakt: Home → Hauptkategorie → aktuelles Tutorial.
Beispiel: Generierte Breadcrumbs
Kategorieseite
Für /tutorials/css/index.html:
<nav class="breadcrumbs" aria-label="Breadcrumb">
<a href="/" class="breadcrumb-link">Home</a>
<span class="breadcrumb-separator">›</span>
<span class="breadcrumb-current">CSS</span>
</nav>
Tutorial-Seite
Für /tutorials/css/css-basics/css-einbinden.html:
<nav class="breadcrumbs" aria-label="Breadcrumb">
<a href="/" class="breadcrumb-link">Home</a>
<span class="breadcrumb-separator">›</span>
<a href="/tutorials/css/" class="breadcrumb-link">CSS</a>
<span class="breadcrumb-separator">›</span>
<span class="breadcrumb-current">CSS einbinden</span>
</nav>
Wie funktioniert's?
Die Funktion generateBreadcrumbs() nutzt zwei Informationen:
- Kategorie aus dem Dateipfad via
getCategoryFromPath() - Kategorie-Name aus
CATEGORY_NAMES - Tutorial-Titel aus
CUSTOM_TITLESoder der H1-Überschrift
function generateBreadcrumbs(filePath, currentTitle) {
const category = getCategoryFromPath(filePath);
const categoryName = CATEGORY_NAMES[category] || category;
const basename = path.basename(filePath);
// Für Kategorieseiten (index.html): nur Home › Kategorie
if (basename === 'index.html') {
return `<a href="/" class="breadcrumb-link">Home</a>` +
`<span class="breadcrumb-separator">›</span>` +
`<span class="breadcrumb-current">${categoryName}</span>`;
}
// Für Tutorial-Seiten: Home › Kategorie › Tutorial
return `<a href="/" class="breadcrumb-link">Home</a>` +
`<span class="breadcrumb-separator">›</span>` +
`<a href="/tutorials/${category}/" class="breadcrumb-link">${categoryName}</a>` +
`<span class="breadcrumb-separator">›</span>` +
`<span class="breadcrumb-current">${currentTitle}</span>`;
}
Kategorie-Namen aus CATEGORY_NAMES
Die Anzeigenamen der Kategorien werden aus der CATEGORY_NAMES
Konfiguration geholt:
const CATEGORY_NAMES = {
'html': 'HTML',
'css': 'CSS',
'bootstrap': 'Bootstrap',
'javascript': 'JavaScript',
'php': 'PHP',
'misc': 'Verschiedenes',
'devpaniczone': 'DevPanicZone!'
};
Beispiele:
- Ordner
css→ Anzeige CSS - Ordner
javascript→ Anzeige JavaScript
- Ordner
misc→ Anzeige Verschiedenes - Ordner
devpaniczone→ Anzeige DevPanicZone!
Tutorial-Titel aus CUSTOM_TITLES oder H1
Der Titel des aktuellen Tutorials (letztes Breadcrumb-Element) wird so ermittelt:
- Prüfe ob ein Eintrag in
CUSTOM_TITLESexistiert - Falls nicht: Extrahiere den Text aus der
<h1>Überschrift
// Custom Titles (überschreibt H1 aus HTML)
const CUSTOM_TITLES = {
'css-einbinden.html': 'CSS einbinden',
'css-color-units.html': 'CSS Farben & Einheiten',
'html-grundgeruest.html': 'HTML Grundgerüst',
// ...
};
// Im Code:
const currentTitle = CUSTOM_TITLES[basename] || extractTitle(html);
- Wenn die H1 zu lang ist für die Navigation
- Wenn du eine andere Schreibweise bevorzugst (z.B. "CSS einbinden" statt "CSS Einbinden")
- Wenn die H1 Sonderzeichen enthält, die problematisch sein könnten
CSS-Klassen
Die Breadcrumbs nutzen folgende CSS-Klassen:
.breadcrumbs→ Container (nav-Element).breadcrumb-link→ Klickbare Links
.breadcrumb-separator→ Trennzeichen (›).breadcrumb-current→ Aktuelle Seite (nicht klickbar)
Neue Kategorie hinzufügen
Um eine neue Kategorie in den Breadcrumbs anzuzeigen:
- Füge die Kategorie zu
CATEGORY_NAMEShinzu - Führe
npm run buildaus
const CATEGORY_NAMES = {
'html': 'HTML',
'css': 'CSS',
// ...
'react': 'React', // ← Neue Kategorie
};
Die Breadcrumbs nutzen dieselbe CATEGORY_NAMES Konfiguration wie
die Main Navigation – eine Änderung wirkt sich auf beide aus.
Ausführen
Nach Änderungen an der Konfiguration:
npm run build
Mehr aus DevPanicZone!
Tutorials werden geladen...