Vorlagen-
programmierung
Diskussionen Lua Test Unterseiten
Modul Deutsch English

Esperanto Dolnoserbski Hornjoserbsce Modul: WP:Lua

URLutil – Modulo kun funkcioj por signoĉenoj rilate kun interretaj adresoj (URL; IP-adresoj – ankaŭ IPv4 kaj IPv6 – sed ankaŭ retpoŝto). Ankaŭ internaciigitaj adresoj (IRI) estas eblaj.

Supozebla estas utilo por Vikia projekto; do sencoplenaj adresoj en la malferma interreto. Sekvaj specialaj kazoj ne estas programitaj, sed ankaŭ apenaŭ relevantaj:

  • IPv4-adreso ne en norma notado (per punktoj disigitaj, decimalaj)
  • URL kun IPv6-Host (krampata; ne kongruas bone kun la Vikia sintakso)
  • Authority kun username

Funkcioj por ŝablonoj

Bearbeiten

Ĉiuj funkcioj havas ekzakte unu nenomitan parametron (sencoplena donenda). Ĉi tiu estas toleranta kontraŭ spacoj antaŭ aŭ post la enhavo.

La redona valoro estas malplena signoĉeno („nenio“), se la parametra valoro ne plenumas la atendojn. Se ĉeestas rezulto aŭ la demanda kondiĉo estas vera, rezultas minimume unu signo. La rezulto ne komenciĝas aŭ finiĝas per interspaca signo.

getAuthority
Ekstraktas el risurca URL la servilan stiradon (rezulto minuskle skribata)
  • nenio – se neallasebla
getHost
Ekstraktas el risurca URL la domajnon aŭ IP-adreson (rezulto minuskle skribata)
  • nenio – se neallasebla
getPort
Ekstraktas el risurca URL la pordan informon (rezulto numero)
  • nenio – se ne ĉeestas
getScheme
Ekstraktas el risurca URL la skemon (rezulto minuskle skribata; inklude de duoblaj oblikvaj strekoj)
  • // – relativa protokolo
  • https:// – protokolo
  • nenio – se komenco de la URL neallasebla
getTLD
Ekstraktas el risurca URL la Domajno de plej alta nivelo (rezulto minuskle skribata)
  • nenio – se neellasebla
getTop2domain
Ekstraktas el risurca URL la plej suprajn du nivelojn de la domajno (rezulto minuskle skribata)
  • nenio – se neellasebla
getTop3domain
  • nenio – se neellasebla
isAuthority
Ĉu ĝi estas la servila adreso (ankaŭ IP) de risurco, inklude de pordo?
  • 1jes
isDomain
Ĉu ĝi estas nomata domajno, inklude de subdomajnoj?
  • 1jes
isDomainExample
  • 1jes
isHost
Ĉu ĝi estas servila adreso sen pordo (ankaŭ IP)?
  • 1jes
isIP
Ĉu ĝi estas IP-adreso?
  • 4 se IPv4 (en norma notado)
  • 6 se IPv6
  • nenio – alikaze
isIPv4
Ĉu ĝi estas IPv4-adreso en norma notado (per punktoj disigita, decimala)?
  • 1jes
isIPlocal
isIPv6
Ĉu ĝi estas IPv6-adreso?
  • 1jes
isMailAddress
Ĉu ĝi estas retpoŝta adreso?
  • 1jes
isMailLink
Ĉu ĝi estas retpoŝta ligilo (mailto:)?
  • 1jes
isProtocolDialog
Ĉu ĝi estas URL / skemo-nomo, kiu povas enkonduki en la Vikio dialogon?
mailto, irc, ircs, ssh, telnet
  • 1jes
isProtocolWiki
Ĉu ĝi estas URL / skemo-nomo, per kiu povas esti referencata en la Vikio sur risurcon?
Relativa protokolo sed ankaŭ ftp ftps git http https mms nntp sftp svn worldwind
Nedezirataj estas ĉi tie: gopher, wais sed ankaŭ mailto, irc, ircs, ssh, telnet.
  • 1jes
isResourceURL
Ĉu ĝi estas URL, ĉe kiu ĝenerale povas esti alirata al risurco? Tio estus: relativa protokolo, http, https, ftp kaj krome valida gastiga komputilo (angle Host). Aliaj URL estus imageblaj sur projektaj kaj funkcipaĝoj, sed ne en la enciklopedia tereno.
  • 1jes
isSuspiciousURL
Ĉu ĝi estas sintakse „suspektinda“ URL, kontraŭ kiu devus esti atentigata?
  • 1jes
isUnescapedURL
ĉu ĝi estas URL, ĉe kiu ankoraŭ Vikisintakso [ | ] devas esti abgefangen werden muss?
  • 1jes
isWebURL
Ĉu ĝi estas valida adreso por risurco (Protokolo ajna)?
  • 1jes
wikiEscapeURL
Vikisintakso-sekura [ | ] escapen.
  • Identa kun la parametro, se neniu problema signo aperas.
  • Anstataŭaĵo de [ | ] per retservilo-sekura HTML-Entities, se ekzistas. Dukto en la ŝablona sintakso ne eblas sen problemoj.
failsafe

The Failsafe interface is heading for version management of globally distributed Lua modules. It enables modules equipped with this interface to

  • ensure, that a library module required by a template or another module available as local copy does support certain functionality, or complain if not.
  • administrate global updating and linking of module codes via Wikidata.

The Failsafe interface is present both at template level and for direct Lua access.

The functions in detail are (not all supported yet completely by every library):

Parameter
Value Result current
nothing
false
local version ID »2024-11-21«
Minimal version version ID required at least
date in ISO format

It will be compared whether the current local implementation matches this version or later.

  • empty, if minimal version not achieved
  • 2001-01-01 → »2024-11-21«
  • 2099-01-01 → »«
wikidata version ID of global upstream
  • version ID at Wikidata
  • local, if not found there
»2024-10-29«
item ID of the Wikidata item
  • empty if not defined
Q10859193
~ Corresponding version ID locally and registered at Wikidata
  • empty, if up to date
  • version ID at Wikidata, if not equal
»2024-10-29«
@ Is the current (module) page linked correctly with Wikidata item?
  • empty, if linked to the item which is supposed
  • Iitem ID, if not
The return value is in template programming empty or under Lua false, otherwis a non-empty string as described.

Ekzemploj (Testopaĝo)

Bearbeiten

Testopaĝo ilustras praktikajn ekzemplojn.

Funkcioj por Lua-moduloj

Bearbeiten

Ĉiuj supre dokumentitaj funkcioj ankaŭ povas esti enplektataj per require() en aliajn modulojn:

local lucky, URLutil = pcall( require, "Module:URLutil" )
if type( URLutil ) == "table" then
    URLutil = URLutil.URLutil()
else
    -- erara kazo; URLutil enhavas erarmesagon
    return "<span class='error'>" .. URLutil .. "</span>"
end

Laŭ tio estas je dispono:

  • URLutil.getAuthority()
  • URLutil.getHost()
  • URLutil.getPort()
    numera valoro, aŭ false
  • URLutil.getScheme()
  • URLutil.getTLD()
  • URLutil.getTop2domain()
  • URLutil.getTop3domain()
  • URLutil.isAuthority()
  • URLutil.isDomain()
  • URLutil.isDomainExample()
  • URLutil.isHost()
  • URLutil.isIP()
    numera 4, 6, aŭ 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()

En sukcesa kazo la URLutil.get*() redonas signoĉenon, la URLutil.is*() la valoron true (se ne alie donita); ĉe malsukceso ĉiufoje false.

Ĝenerala biblioteko; ne limigita.

Dependeco

Bearbeiten

Neniu.