Das Standardverhalten von Hugo und Goldmark ist es, Links immer im gleichen Kontext zu öffnen. Dies können wir leicht anpassen.

Hierbei setzen wir einfache Ziele:

  1. Interne Links müssen weiterhin relativ und im gleichen Fenster geöffnet werden
  2. Externe Links müssen in einem _blank-Ziel geöffnet werden
  3. Externe Links sollten mit noopener und noreferrer in der Beziehung zum Ziel versehen werden.

Hugo und Goldmark bieten für diese Fälle eine einfache Mechanik an, eigene Vorlagen für das Rendering zu hinterlegen.

Damit nun Links mit den neuen Anforderungen generiert werden können, legen wir eine Datei unter layouts/_default/_markup/render-link.html mit dem folgenden Inhalt an:

<a href="{{ .Destination | safeURL }}"{{ with .Title}} title="{{ . }}"{{ end }}{{ if strings.HasPrefix .Destination "http" }} rel="noopener noreferrer" target="_blank"{{ end }}>{{ .Text }}</a>

Nun sollten alle Links den eigenen Vorgaben nach generiert werden.