Es ist ja weitgehend bekannt, dass man per target="_blank" Links in einem neuen Fenster öffnen kann.
Für externe Links macht es oft Sinn, zusätzlich noch rel="noopener noreferrer" hinzuzufügen, um den Inhalt der aktuellen Seite abzusichern. Weitere Informationen und eine Demo zu dem Thema gibt es in dem Blog-Eintrag von Mathias Bynens zu diesem Thema.
Diese Funktionalität kann man zwar einfach in Kirby's WYSIWYG-Markdown Editor über den (link)-Tag hinzufügen, es besteht aber gerade bei längeren Texten mit vielen Links die Möglichkeit, dass man das einmal vergisst.
Um dem vorzubeugen, habe ich das Hinzufügen von target="_blank" und rel="noopener noreferrer" automatisiert: Die entsprechenden Attribute werden beim Rendern einer Seite von Kirby selbst hinzugefügt.
Für diese Funktionalität benutze ich Kirby Hooks. Dazu lege ich in der confg.php unter hooks zunächst einen neuen Eintrag namens 'kirbytext:after' an:
Diese Funktion wird für jedes Feld mit dem Typ kirbytext ausgeführt. Als Argument wird der aus dem Markdown generierte HTML-String übergeben. Es wird erwartet, dass diese Funktion den HTML-String verändert, und ihn dann am Ende auch wieder zurückgibt.
Um alle Anker-Elemente in diesem HTML-String zu finden und modifizieren könnte man einen komplizierten regulären Ausdruck verwenden.
Deutlich einfacher funktioniert es aber mit der in PHP mitgelieferten DOM-Bibliothek, mit der sich DOM-Knoten leicht erstellen und bearbeiten lassen:
Auf ähnliche Weise kann man zu allen Überschriften einen Link mit automatisch generierter ID hinzufügen, um einfach zwischen Abschnitten springen zu können:
Hinterlasse einen Kommentar
Auf der eigenen Website geantwortet? Sende eine Webmention!