Vorlagen-
programmierung
Diskussionen Lua Test Unterseiten
Modul Deutsch English

Esperanto Dolnoserbski Hornjoserbsce Modul: WP:Lua

URLutil – Modul z funkcijemi za rjady znamješkow, kotrež so na internetowe adresy poćahnu (URL; IP-adresy – tež IPv4 a IPv6 – ale tež e-mejlka). Tež internacionalizěrowane adresy (IRI) su móžne.

Mamy za to zo je wužitk za Wikijowy projekt; tuž zmysłapołne adresy we wotewrjenym interneće. Sćěhowace specialne pady njejsu programowane, ale tež lědma relewantne:

  • IPv4-adresa nic w normalnej notaciji (z dypkami rozdźělene, decimalne)
  • URL z IPv6-Host (spinkowane; njekongruěruje derje z Wikijoweju syntaksu)
  • Authority z username

Funkcije za předłohi Bearbeiten

Wšě funkcije maja eksaktnje jedyn njemjenowany parameter (zmysłapołnje so dyrbi daty). Tutón je tolerantny přećiwo prózdnym znamješkam před abo po wobsahu.

Hódnota wróćenja je prózdna rjad znamješkow („nic“), jeli hódnota parametra njedospołni wotčakowanja. Jeli rezultat je wobstejacy abo prašenske wuměnjenje je prawne, rezultuje minimalnje jedne znamjo. Rezultat njezapočina abo so kónči z prózdnym znamješkom.

getAuthority
Ekstrahuje z ressource URL zaměranje serwera (rezultat pisany w małkich pismikach)
  • nic – jeli njedowoleny
getHost
Ekstrahuje z ressource-URL domainom abo IP-adresu (rezultat pisany w małkich pismikach)
  • nic – jeli njedowoleny
getPort
Ekstraruje z ressource-URL informaciju wo portu (rezultat ličba)
  • nic – jeli wobstejacy
getScheme
Ekstrahuje z ressource-URL šemu (rezultat pisany w małkich pismikach; inkluziwnje dwójnych nakósnych smužkow)
  • // – relatiwny protokol
  • https:// – protokol
  • nic – jeli spočatk URL njedowoleny
getTLD
Ekstrahuje z ressource-URL Top-Level-Domain (rezultat z małkimi pismikami pisany)
  • ničo – jeli njedowoleny
getTop2domain
Ekstrahuje z ressource-URL najbóle hornjej wobaj niwowaj domaina (rezultat z małkimi pismikami pisany)
  • ničo – jeli njedowoleny
getTop3domain
  • ničo – jeli njedowoleny
isAuthority
Wón je adresa serwera (tež IP) ressource, inkluziwnje porta?
  • 1haj
isDomain
Wón je mjenowany domain, inkluziwnje subdomainow?
  • 1haj
isDomainExample
  • 1haj
isHost
Wón je adresa serwera bjez porta (tež IP)?
  • 1haj
isIP
Wón je IP-adresa?
  • 4 jeli IPv4 (w normalnej notaciji)
  • 6 jeli IPv6
  • nic – hewak
isIPlocal
isIPv4
Wón je IPv4-adresa w normalnej notaciji (z dypkami rozdźělena, decimalna)?
  • 1haj
isIPv6
Wón je IPv6-adresa?
  • 1haj
isMailAddress
Wón je adresa e-mejlki?
  • 1haj
isMailLink
Wón je wotkaz na e-mejlku (mailto:)?
  • 1haj
isProtocolDialog
Wón je URL / mjeno šemy, kotrež móže we Wikiju dialog započinać?
mailto, irc, ircs, ssh, telnet
  • 1haj
isProtocolWiki
Wón je URL / mjeno šemy, z kotrymž so móže referencěrować we Wikiju na ressource?
Relatiwny protokol ale tež ftp ftps git http https mms nntp sftp svn worldwind
Njepřate su tu: gopher, wais ale tež mailto, irc, ircs, ssh, telnet.
  • 1haj
isResourceURL
Wón je URL, při kotrejž powšitkownje so móže přistup měć k ressource? To rěka: relatiwny protokol, http, https, ftp a nimo toho płaćiwy hósćinarski kompjuter (jendźelsce Host). Druhe URL by k předstajenju na projektowych a funkcijskich stronach, ale nic w encyklopediskim terenje.
  • 1haj
isSuspiciousURL
Wón je syntaktiski „podhladny“ URL, přećiwo kotrejž so by dyrbi warnować?
  • 1haj
isUnescapedURL
Wón je URL, při kotrejž hišće Wikisyntaksa [ | ] so dyrbi wotpadnyć?
  • 1haj
isWebURL
Wón je płaćiwa adresa za ressource (Protokol někajki)?
  • 1haj
wikiEscapeURL
K wikisyntaksej zawěšće [ | ] escapować.
  • Identisce z parametrom, jeli žadne problematiske znamješka wustupuja.
  • Narunanje wot [ | ] přez k webserwerej wěste HTML-Entities, jeli wobstejace. Pipe je w syntaksy předłoha nic chroble móžne.
failsafe

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 »2022-04-05«
Mindest­version 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 → »2022-04-05«
  • 2099-01-01 → »«
wikidata Versionsbezeichnung der globalen Mutter (d:Q10859193)
  • Versionsbezeichnung auf Wikidata
  • lokal, falls dort keine gefunden
»2022-04-05«
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
»Q10859193«
Der Rückgabewert ist in der Vorlagenprogrammierung leer und per Lua false; andernfalls die angegebene Zeichenkette.

Přikłady (testowy bok) Bearbeiten

Testowy bok ilustruje praktiske přikłady.

Funkcije za Lua-module Bearbeiten

Wšě horjeka dokumentowane funkcije so tež móžeja zawjazować z require() do druhich modulow:

local lucky, URLutil = pcall( require, "Module:URLutil" )
if type( URLutil ) == "table" then
    URLutil = URLutil.URLutil()
else
    -- zmylkowu pad; URLutil wobsahuje powěsć zmylka
    return "<span class='error'>" .. URLutil .. "</span>"
end

Po tym su k dispoziciji:

  • URLutil.getAuthority()
  • URLutil.getHost()
  • URLutil.getPort()
    numeriska hódnota, abo false
  • URLutil.getScheme()
  • URLutil.getTLD()
  • URLutil.getTop2domain()
  • URLutil.getTop3domain()
  • URLutil.isAuthority()
  • URLutil.isDomain()
  • URLutil.isDomainExample()
  • URLutil.isHost()
  • URLutil.isIP()
    numeriski 4, 6, abo false
  • URLutil.isIPlocal()
  • URLutil.isIPv4()
  • URLutil.isIPv6()
  • URLutil.isMailAddress()
  • URLutil.isMailLink()
  • URLutil.isProtocolDialog
  • URLutil.isProtocolWiki()
  • URLutil.isResourceURL()
  • URLutil.isSuspiciousURL()
  • URLutil.isUnescapedURL()
  • URLutil.isWebURL()
  • URLutil.wikiEscapeURL()
  • URLutil.failsafe()

W padźe wuspěcha URLutil.get*() wróći rjad znamješkow, URLutil.is*() hódnotu true (jeli nic hewak daty); při njewuspěchu kóždy raz false.

Wužiće Bearbeiten

Powšykna biblioteka; njewobmjezowana.

Wotwisnosć Bearbeiten

Žadna.