Snippets
Snippets sind wiederverwendbare Code-Schnipsel, die du beliebig oft dynamisch einbinden kannst.
Code, den du wiederverwenden möchtest, legst du als HTML-Datei im Verzeichnis src/snippets/
ab und bindest diesen dann über <include src="snippet.html"></include>
ein, wobei snippet.html
der Name deiner Datei ist.
Snippet erstellen
Damit du den Header bei einer Änderung nicht auf allein Unterseiten kopieren und einfügen musst, könntest du den Code in einem Snippet ablegen und dann auf allen Seiten einbinden.
-
Erstelle eine neue Datei
header.html
im Verzeichnissrc/snippets/
und füge den folgenden Code ein: -
Öffne nun die Startseite
index.html
und alle Unterseiten, entferne dort den Header und ersetze ihn mit dem Snippet:Das Starterkit wird nun den Inhalt der Datei
header.html
dynamisch an dieser Stelle einfügen. Wenn du Änderungen am Header vornimmst, werden sie auf allen Seiten übernommen.
Flexibler mit Parametern
Du kannst einem Snippet auch Parameter über das locals
-Attribut übergeben, um sie noch flexibler zu gestalten. Das sieht so aus:
locals
erwartet ein JSON-Datenobjekt in geschweiften Klammern {}
, das Key- und Value-Paare (Schlüssel und Werte) enthält. In unserem Beispiel ist der Schlüssel title
und der Wert Meine Website
.
Den Schlüssel gibst du im Template mit zwei geschweiften Klammern an, der dann später automatisch mit dem Wert ersetzt wird:
Praktische Beispiele
Du kannst Snippets auch mehrere Parameter übergeben. Das zeigt ich dir anhand von zwei Beispielen.
Das eine Beispiel ist eine klassische Karte, die du auf mehreren Unterseiten einbinden kannst, ohne das gesamte HTML kopieren zu müssen. Titel, Text und Icon übergibst du als Parameter individuell pro Seite.
Das andere Beispiel ist ein Header, dem du den Titel, sowie die aktuelle Seite als Parameter übergibst. So kannst du im CSS die aktive Seite hervorheben.
Um eine Karte zu erstellen, die du beliebig oft wiederverwenden kannst, erstellst du ein Snippet card.html
:
In deinem Template bindest du die Karte dann so ein:
Auf den anderen Seiten tauschst du dann einfach die Werte aus.
Beim Header soll der Parameter page
die aktuelle Seite repräsentieren. Auf der Startseite ist es home
, auf der Kontaktseite contact
und so weiter:
Die Idee ist nun, dass wir jedem Link die Klasse active
hinzufügen, wenn die aktuelle Seite page
mit dem Link übereinstimmt. Andernfalls bleibt die Klasse leer.
Das machen wir mit einer Inline-Abfrage, die zwei Werte vergleicht. Ergibt die Abfrage true
(wahr), wird wert1
eingefühgt, bei false
(falsch) entsprechend wert2
. Die Struktur der Abfrage sieht so aus:
Im HTML eingebunden sieht das konrekt so aus:
Nun könntest du in deinen Styles noch den aktiven Menüpunkt mit der Klasse .active
hervorheben: