1. November 2024, 00:05
Lesezeit: ca. 2 Min

Tote Links in Hugo finden

Dieser Blog hat schon einige Jahre auf dem Buckel und entgegen landläufiger Meinung vergisst das Internet doch eine Menge. Das sehe ich an den toten Links in den Fußnoten. Und so entstand der Wunsch, diese “mal eben” mit einem kleinen Bash-Skript identifizieren und markieren zu können. So wie die Wikipedia es mit Ihren Verweisen macht. Aus dem “mal eben” wurde am Ende ein ganzer Nachmittag. Für die Ungeduldigen Leser die Fußnote zum Repo auf Codeberg.1

Ein paar Worte zum Skript. Es wird immer ein Argument erwartet. Das sollte wahlweise eine einzelne Markdown-Datei oder ein Verzeichnis mit vielen Dateien sein. Für optimale Performance kommt parallel zum Einsatz. Die maximal verwendete Job-Anzahl hängt immer von den Begebenheiten ab und kann mit der Variable MAX_JOBS angepasst werden.

Die Überprüfung eines Links erfolgt durch Auswertung des HTTP Status-Codes. Dabei gebe ich curl zufällig unterschiedliche Header mit und akzeptiere pauschal alle Cookies (und lösche diese anschließend wieder) sonst blocken zu viele Seiten den Request weg.

Cloudflare antwortet sogar pauschal mit 302 Forbidden. Das ist aus ganz vielen Gründen einfach nur kaputt. Der Kompromiss sieht leider in der Gestalt aus, dass ich 302 als “nicht broken” akzeptiere. Schön ist es nicht, aber effektiv und das maximal Herausholbare mit Curl. Die Alternative wäre die Verwendung eines Headless-Browsers, was aber Overkill wäre.

Ab heute markiert ein kleines Icon, ob der Fußnoten-Link in Ordnung ist oder nicht. Hier ein Beispiel.2

In diesem Sinne,
ein schönes (langes) Wochenende

Tomas Jakobs

© 2024 Tomas Jakobs - Impressum und Datenschutzhinweis

Unterstütze diesen Blog - Spende einen Kaffee