URLutil – Modul mit Funktionen für Zeichenketten im Zusammenhang mit Internet-Adressen (URL; IP-Adressen und IP-Adressbereiche –auch IPv4 und IPv6– sowie E-Mail). Auch internationalisierte Adressen (IRI) sind möglich.
Unterstellt wird ein Nutzen für ein Wiki-Projekt; also sinnvolle Adressen im offenen Internet. Folgende Sonderfälle sind nicht programmiert, aber auch kaum relevant:
IPv4-Adresse nicht in Standard-Notation (durch Punkte gegliedert, dezimal)
URL mit IPv6-Host (geklammert; beißt sich etwas mit der Wikisyntax)
Authority mit username
Funktionen für Vorlagen
Alle Funktionen haben genau einen unbenannten Pfichtparameter (sinnvollerweise anzugeben). Dieser ist tolerant gegenüber Leerzeichen vor oder nach dem Inhalt. In der Regel handelt es sich dabei um eine URL; ggf. sind auch nur Teile davon möglich. In einigen Fällen gibt es einen optionalen Zusatzparameter.
Der Rückgabewert ist eine leere Zeichenkette („nichts“), wenn der Parameterwert die Erwartung nicht erfüllt. Wenn ein Ergebnis vorhanden oder die Abfragebedingung wahr ist, resultiert mindestens ein Zeichen. Das Ergebnis beginnt oder endet nicht mit Leerzeichen. HTML-Entities sind in der Eingabe möglich und werden im Resultat aufgelöst.
Unerwünscht sind hier: gopher, wais sowie mailto, irc, ircs, ssh, telnet.
1 – ja
isResourceURL
Ist es eine URL, bei der allgemein auf eine Ressource zugegriffen werden kann? Das wären: relatives Protokoll, http, https, ftp und außerdem ein gültiger Host. Andere URL wären auf Projekt- und Funktionsseiten vorstellbar, nicht aber im enzyklopädischen Bereich.
1 – ja
isSuspiciousURL
Ist es eine syntaktisch „verdächtige“ URL, vor der gewarnt werden sollte?
1 – ja
isUnescapedURL
Ist es eine URL, bei der noch Wikisyntax [ | ] abgefangen werden muss?
1 – ja
isWebURL
Ist es eine gültige Adresse für eine Ressource (Protokoll beliebig)?
1 – ja
wikiEscapeURL
Wikisyntax-sicher [ | ] escapen.
Identisch mit dem Parameter, wenn keine problematischen Zeichen vorkommen.
Ersatz von [ | ] durch Webserver-sichere HTML-Entities, falls vorhanden. Eine Pipe ist in der Vorlagensyntax nicht ohne Weiteres möglich.
failsafe
Versionsverwaltung
Die Failsafe-Schnittstelle erlaubt den damit ausgerüsteten Modulen in globaler Verteilung
sicherzustellen, dass eine von einer Vorlage oder einem Modul benötigte Funktion in der lokalen Kopie eines Bibliotheksmoduls vorhanden ist, und ggf. auch in einer erforderlichen Mindestversion;
die globale Aktualisierung und Verknüpfung von Modulen über Wikidata zu verwalten.
Die Failsafe-Schnittstelle liegt sowohl auf Ebene der Vorlagen wie auch in direktem Lua-Zugriff vor.
Die Funktionen sind im Einzelnen (nicht alle werden bereits überall in vollem Umfang unterstützt):
Parameter
Wert
Ergebnis
aktuell
nichts false
lokale Version
»2026-06-07«
Mindestversion
Mindestversionsbezeichnung Datum im ISO-Format
Es wird verglichen, ob das aktuelle Modul diese Version oder später erfüllt.
leer, falls Mindestversion nicht erfüllt
2001-01-01 → »2026-06-07«
2099-01-01 →»«
wikidata
Versionsbezeichnung der globalen Mutter(d:Q10859193)
Versionsbezeichnung auf Wikidata
lokal, falls dort keine gefunden
»2026-06-07«
item
ID des Wikidata-Items
leer, falls nicht definiert
»Q10859193«
~
Übereinstimmung der lokalen mit der auf Wikidata registrierten Versionsbezeichnung
leer, falls aktuell
Versionsbezeichnung auf Wikidata, falls ungleich
»«
@
Ist die aktuelle (Modul-)Seite richtig mit Wikidata verknüpft?
leer, falls mit dem richtigen Item verknüpft
Item-ID, falls nicht
Der Rückgabewert ist in der Vorlagenprogrammierung leer und per Lua false; andernfalls die angegebene Zeichenkette.
Wenn in einer Vorlage ein Modul verwendet wird, sollte auch immer die Vorlage:Dokumentation/Lua in der Dokumentationsseite eingebunden werden.
Das gibt einem Programmierer Aufschluss, dass ein Lua-Modul benutzt wird, welche/s und ggf. welche Einzelfunktion daraus, und verlinkt auf die Dokumentation.
Die Modul-Dokumentationen bekommen ein Link, in welchen Vorlagen sie eingesetzt werden, und wo bei eventuellen Funktionsänderungen Anpassungen erforderlich werden.