Modul:URLutil/Doku
Dies ist eine nachgeordnete Seite der Dokumentation von Modul:URLutil. Sie enthält Informationen zur Verwendung, Kategorisierung und zu anderem Inhalt, der nicht Bestandteil der originalen Modul-Seite ist. |
Dieses Modul wurde am 17. Oktober 2020 von Modul:URLutil der deutschen Wikipedia importiert. Statt Änderungen hier auf Wikivoyage vorzunehmen, sollte eine neuer Import vorgezogen werden, falls im originalen Wiki neue Funktionen hinzugekommen sind. Stimme dich dazu bitte mit der Community in der Vorlagenwerkstatt ab. |
Das Modul sollte aktualisiert werden! |
Dieses Modul ist getestet und für den projektweiten Gebrauch geeignet. Es kann in Vorlagen benutzt und auf Hilfeseiten erläutert werden. Entwicklungen an dem Modul sollten auf URLutil/Test und die Anwendung auf der Spielwiese getestet werden, da wiederholte Trial-and-Error-Edits die Resourcen stark belasten können. |
Versionsbezeichnung auf Wikidata: keine Version verfügbar
URLutil
– Modul mit Funktionen für Zeichenketten im Zusammenhang mit Internet-Adressen (URL; IP-Adressen – 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
[Bearbeiten]Alle Funktionen haben genau einen unbenannten Parameter (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.
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.
- getURIScheme
- Extrahiere das URI-Schema aus einer beliebigen URL, z.B. einem
mailto:
Link) (Ergebnis kleingeschrieben; ohne Doppelpunkt und Schrägstriche). Für Ressourcen-URLs siehe auch das spezialisierte getScheme.mailto
– URI-Schema//
– Spezialfall: schemarelative URL (z.B.//de.wikipedia.org
)- nichts – wenn Beginn der URL unzulässig
- getAuthority
- Extrahiere aus einer Ressourcen-URL die Server-Ansteuerung (Ergebnis kleingeschrieben)
- nichts – wenn unzulässig
- getHost
- Extrahiere aus einer Ressourcen-URL die Domain oder IP-Adresse (Ergebnis kleingeschrieben)
- nichts – wenn unzulässig
- getPort
- Extrahiere aus einer Ressourcen-URL die Port-Angabe (Ergebnis Zahl)
- nichts – wenn nicht vorhanden
- getScheme
- Extrahiere aus einer Ressourcen-URL das Schema (Ergebnis kleingeschrieben; einschließlich doppelter Schrägstriche)
//
– relatives Protokollhttps://
– Protokoll- nichts – wenn Beginn der URL unzulässig
- getTLD
- Extrahiere aus einer Ressourcen-URL die Top-Level-Domain (Ergebnis kleingeschrieben)
- nichts – wenn unzulässig oder IP
- getTop2domain
- Extrahiere aus einer Ressourcen-URL die obersten beiden Level der Domain (Ergebnis kleingeschrieben)
- nichts – wenn unzulässig oder IP
- getTop3domain
- Extrahiere aus einer Ressourcen-URL die obersten drei Level der Domain (Ergebnis kleingeschrieben)
- nichts – wenn unzulässig oder IP
- isAuthority
- Ist es die Server-Adresse (auch IP) einer Ressource, einschließlich Port?
1
– ja
- isDomain
- Ist es eine benannte Domain, einschließlich Sub-Domains?
1
– ja
- isDomainExample
- Ist es eine Beispiel-Domain nach RFC 2606 (example.com example.edu example.net example.org)?
1
– ja
- isHost
- Ist es eine Server-Adresse ohne Port (auch IP)?
1
– ja
- isIPlocal
- Ist es eine IPv4-Adresse, die mutmaßlich nicht zum Internet gehört? RFC 1918, RFC 1122; auch alles wie 0.0.0.0 (RFC 5735)
1
– ja
- isIPv4
- Ist es eine IPv4-Adresse in Standard-Notation (durch Punkte gegliedert, dezimal)?
1
– ja
- isIPv6
- Ist es eine IPv6-Adresse?
1
– ja
- isMailAddress
- Ist es eine E-Mail-Adresse?
1
– ja
- isMailLink
- Ist es ein E-Mail-Link (mailto:)?
1
– ja
- isProtocolMW
- Ist es eine URL / Schema-Bezeichner, das vom Wiki allgemein erkannt wird?
- Aktuelle Liste siehe [1]
1
– ja
- isProtocolDialog
- Ist es eine URL / Schema-Bezeichner, das im Wiki einen Dialog einleiten kann?
mailto, irc, ircs, ssh, telnet
1
– ja
- isProtocolWiki
- Ist es eine URL / Schema-Bezeichner, womit im Wiki auf eine Ressource verwiesen werden kann?
- Relatives Protokoll sowie
ftp ftps git http https mms nntp sftp svn worldwind
- 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.
Beispiele (Testseite)
[Bearbeiten]Eine Testseite illustriert praktische Beispiele.
Verwendung in anderen Modulen
Dieses Modul ist notwendig für die Ausführung folgender Module. Bei Anpassungen sollte die Funktionstüchtigkeit der folgenden Module geprüft werden. Benutze dazu auch diese Tracking-Kategorie um Fehler zu finden, die sich dann auf Artikel auswirken:
- GetP856
- Modul benötigt das Modul URLutil – Wartungskategorie, in der nochmals alle Module gelistet sind, die von diesem Modul abhängig sind.
Funktionen für Lua-Module
[Bearbeiten]Alle oben dokumentierten Funktionen können auch über require()
in andere Module eingebunden werden:
local lucky, URLutil = pcall( require, "Modul:URLutil" )
if type( URLutil ) == "table" then
URLutil = URLutil.URLutil()
else
-- Fehlerfall; URLutil enthält Fehlermeldung
return "<span class='error'>" .. URLutil .. "</span>"
end
Danach stehen zur Verfügung:
- URLutil.getURIScheme()
- URLutil.getAuthority()
- URLutil.getHost()
- URLutil.getPort()
numerischer Wert, oderfalse
- URLutil.getScheme()
- URLutil.getTLD()
- URLutil.getTop2domain()
- URLutil.getTop3domain()
- URLutil.isAuthority()
- URLutil.isDomain()
- URLutil.isDomainExample()
- URLutil.isHost()
- URLutil.isIP()
numerisch 4, 6, oderfalse
- URLutil.isIPlocal()
- URLutil.isIPv4()
- URLutil.isIPv6()
- URLutil.isMailAddress()
- URLutil.isMailLink()
- URLutil.isProtocolMW()
- URLutil.isProtocolDialog()
- URLutil.isProtocolWiki()
- URLutil.isResourceURL()
- URLutil.isSuspiciousURL()
- URLutil.isUnescapedURL()
- URLutil.isWebURL()
- URLutil.wikiEscapeURL()
Im Erfolgsfall geben die URLutil.get*() eine Zeichenkette zurück, die URLutil.is*() den Wert true
(sofern nicht anders angegeben); bei Misserfolg jeweils false
.
Verwendung
[Bearbeiten]Allgemeine Bibliothek; nicht eingegrenzt.
Abhängigkeiten
[Bearbeiten]Keine.
Siehe auch
[Bearbeiten]- mw: Uri library – andere Funktionalitäten auf allgemeiner URI; aber speziell für Wiki-URL hilfreich.
Vorbild
[Bearbeiten]en:Module:IPAddress – 1. März 2013