Helpo:Lua/Ligiloj
| |||
Kategorioj | |||
---|---|---|---|
Ŝablonoj | |||
| |||
Vidu ankaŭ | |||
Komentoj | |||
|
|||
Ĉi tiu helpopaĝo eksponas por Lua-programistoj la subtenon ĉe interretaj kaj vikiaj ligiloj per Scribunto-normaj bibliotekoj.
Tio estas
mw.title
[redakti | redakti fonton]- → Scribunto (angle)
La title-objekto reprezentas paĝan nomon, sed antaŭ ĉio la ecojn de la koncerna Vikia paĝo.
Estas je dispono multe da informoj pri la aktuala (plej supra) paĝo kaj ankaŭ ĉiu alia en la projekto: titolo, nomspaco, ekzisto, ĝis la enhavo.
- mw.title.getCurrentTitle()
- title-Objekt por la aktuala (plej supra) paĝo.
- mw.title.makeTitle( namespace, title, fragment, interwiki )
- title-Objekt por la specifikigita paĝo.
- namespace povas esti ĉio, kio sub
mw.site.namespaces
eblas.[1] - title estas nature deviga aldono.
- Postmetita fragmento kaj Intervikia prefiksa grupo (lingvo, projekto) estas nedevigaj.
- Ĉi tiu funkcio estas „multekosta“.[2]
- mw.title.new( text, namespace )
- mw.title.new( id )
- Kreas novan title-objekton.
- Se la unua argumento estas de la tipo number kaj per tio estas generata laŭ la id
curid
, tiam la redona valoronil
, se tia paĝo ne ekzistas. - Ĉi tiu funkcio estas „multekosta“,[2] se ne temas pri la aktuala paĝo en la senco de
.getCurrentTitle()
kaj ĉi tiu paĝo ankaŭ ne jam estis ŝarĝita . - Se la unua argumento estas de la tipo string kaj per tio 'text transdonita, tiam ĉe valida valoro ankaŭ tiam estas redonata objekto, eĉ se ĉi tiu paĝo ne ekzistas.
- Se en text enestas neniu nomspaco, tiam namespace estas uzata. namespace povas est ĉio, kio sub
mw.site.namespaces
eblas.[1] - Se text ne estas sintakse valida paĝonomo, tiam la redona valoro estas
nil
.
- Se en text enestas neniu nomspaco, tiam namespace estas uzata. namespace povas est ĉio, kio sub
- mw.title.equals ( a, b )
true
– se ambaŭ title-objektoj reprezentas la saman paĝon.- Fragmentoj estas ignorataj dum la komparado.
- mw.title.compare( a, b )
- Redonaj valoroj estas
-1
,0
, aŭ1
, por montri, ĉu title-objekto a estas pli malgranda, sama aŭ pli granda ol title-objekto b.
title-Objekt
[redakti | redakti fonton]La plej multaj ecoj estas nur legeblaj, se ne estas skribite alie (fragment).
- .id
curid
aŭ0
, se la paĝo ne ekzistas.- .interwiki
- Intervikia prefiksa grupo (lingvo, projekto), aŭ
""
. - .namespace
- Nomspaca numero.
- .fragment
- La fragment, aŭ
""
. - Povas esti difinata.
- .nsText
- La kanona nomo de la nomspaco
- .subjectNsText
- Nomspaca nomo de la enhava paĝo (kontraŭo al diskutopaĝo)
- .text
- Paĝotitolo, sen nomspaco kaj intervikia prefikso
- .prefixedText
- Paĝotitolo, kun nomspaco kaj intervikia prefikso
- .fullText
- Paĝotitolo, kun nomspaco kaj intervikia prefikso kaj fragmento.
- .rootText
- Sur subpaĝo la titolo de la plej supre baza paĝo; alikaze
.text
. - .baseText
- Sur subpaĝo la titolo de la senpere sperordigita baza paĝo; alikaze
.text
. - .subpageText
- Sur subpaĝo la titolo de la lasta nomelemento; alikaze
.text
. - .canTalk
true
– ĉi tiu paĝo povas havi diskutopaĝon (NR≥0).- .exists
true
– se ĉi tiu paĝo ekzistas.- Ĉe dosieroj kaj
Media:
estas tio aliaso por.fileExists
kaj estas konforme taksata. - Alikaze tio ne denove eniras en la nombradon de „multekostaj“[2] funkcioj.
- Ĉe la kreo per
.getCurrentTitle()
la paĝo ĉiam ekzistas (escepte se, ĝi ĵus nur estas kreata per la konservado); ĉemw.title.makeTitle()
tio estas nur esplorata. - .fileExists
true
– se ĉi tiu media dosiero vere ekzistas.- Tio estas duoble multekosta,[2] ĉar ankaŭ sur Komunejo povus esti serĉata.
- .isContentPage
true
– se ĝi estas enhava nomspaco (NR≥0 kaj para).- .isExternal
true
– se ĝi ekzistas intervikia prefikso.- .isLocal
true
– se ĝi estas projekto de la sama speco.- Por la esperanta Vikipedio ĉiu Vikipedio estas „loka“, Vikivortaro kaj Meta estas tiaj.
- Kun loka projekto povas esti ligata per Interlanguage.
- .isRedirect
true
– se ĉi tiu paĝo estas konservita kiel alidirektilo.- .isSpecialPage
true
– se ĉi tiu paĝo povas esti speciala paĝo (se ĝi troviĝas en la nomspacoSpecialaĵo:
kaj ĝi estas valida aliaso)- .isSubpage
true
– se tio estas subpaĝo de alia.- .isTalkPage
true
– se tio estas diskutopaĝo.- :isSubpageOf( title2 )
true
– se tio estas sbupaĝo de title2.- :inNamespace( ns )
true
– se tio troviĝas en la donita nomspaco. ns povas esti ĉio, kio submw.site.namespaces
eblas.[1]- :inNamespaces( ns1, ns2, ... )
- kiel antaŭe, sed en iu ajn ns1, ns2, …
- .hasSubjectNamespace( ns )
true
– se ĉi tiu paĝo mem aŭ ĝia diskutopaĝo troviĝas en la enhavonomspaco ns.- ns povas esi ĉio, kio sub
mw.site.namespaces
eblas.[1] - .contentModel
- „Content Model“ por ĉi tiu paĝo, kiel signoĉeno:
css
,javascript
,Scribunto
(Modul),wikitext
. - .basePageTitle
- Samefika al mw.title.makeTitle( title.namespace, title.baseText )
- .rootPageTitle
- Samefika al mw.title.makeTitle( title.namespace, title.rootText )
- .talkPageTitle
- Samefika al mw.title.makeTitle( mw.site.namespaces[title.namespace].talk.id, title.text )
nil
se ne povas ekzisti al ĉi tiu title diskutopaĝo.- .subjectPageTitle
- Samefika al mw.title.makeTitle( mw.site.namespaces[title.namespace].subject.id, title.text )
- :subPageTitle( text )
- Samefika al mw.title.makeTitle( title.namespace, title.text .. "/" .. text )
- :partialUrl()
.text
kun la URL-enkodigo kiel en URL.- :fullUrl( query, proto )
- Kompleta URL al ĉi tiu paĝo.
- La nedeviga query indikas pliajn URL-parametrojn kaj povas esti table
k=v
aŭ signoĉeno. - proto povas ricevi unu el la sekvaj valoroj:
"relative"
(defaŭlto de la nedeviga valoro)"http"
"https"
"canonical"
- .localUrl( query )
- URL relativa al projekta domejno
- La nedevia query kiel .fullUrl()
- :canonicalUrl( query )
- Kanona URL (normigita formato)
- La nedeviga query kiel .fullUrl()
- :getContent()
- Neŝanĝita Vikia fontoteksto de la paĝo.
nil
se la paĝo ne ekzistas.
Per relacionalaj operatoroj povas esti komparataj title-objektoj.
tostring( title )
redonas title.prefixedText
.
mw.uri
[redakti | redakti fonton]- → Scribunto (angle)
Ĉi tiuj metodoj estas tre taŭgaj por la sintezo de URL kaj por la analizo de formale ĝustaj URL.
Ĉe nekonataj en la Vikiteksto trovitaj signoĉenoj, kiuj estu URL, estas rekomendate antaŭe fari atenteman analizon je formala akcepteblo per URLutil.
- mw.uri.encode( s, enctype )
- Enkodigo de la signoĉeno s (procento).
- La nedeviga enctype (defaŭlto:
"QUERY"
) povas havi sekvajn valorojn:"QUERY"
– spacosigno kiel+
por query-komponantoj."PATH"
– spacosigno kiel%20
"WIKI"
– spacosigno kiel_
(tio ne estas komplete inversigebla, ĉar ankaŭ ekzistantaj_
fariĝas nedistingeblaj)
- mw.uri.decode( s, enctype )
- Procenta dekodigo de s
- La ndedviga enctype (defaŭlto:
"QUERY"
) povas havi sekvajn valorojn:"QUERY"
– anstaŭigu+
per spacosignoj"PATH"
– neniu aparta traktado de potencialaj spacosignoj."WIKI"
– anstataŭigu_
per spacosignoj
- mw.uri.anchorEncode( s )
- Enkodigo de s, teil ke tiu povas esti uzata kiel fragmento en Vikia URL (Punkto anstataŭ procento).
- mw.uri.buildQueryString( table )
- Konvertu la enhavon de table en sekvon de valorizo k=v kaj ligu per
&
al signoĉeno. - La k en table estu signoĉenoj.
- La v en table povas esti: string, number, sequence table por multfoja apero,
false
por „malplena“. - mw.uri.parseQueryString( s )
- Konvert signoĉenon s en table kaj solvu
&
k=v en elementjn de la table.- Malplenaj valorizoj
&
k= ricevas la valoronfalse
. - Ripetaj valorizoj kun la sama k estas aranĝataj kiel sequence table.
- Ĉiu aliaj v fariĝas signoĉenoj.
- Malplenaj valorizoj
- mw.uri.fullUrl( page, query )
- uri-Objekto por la kompleta URL (sed sen protokolo) de Vikia paĝo page.
- Nedevige kun query kiel preta signoĉeno aŭ table.
- mw.uri.localUrl( page, query )
- uri-Objekto por loka URL (rilata al la domejno) de Vikia paĝo page.
- Nedevige kun query kiel preta signoĉeno aŭ table.
- mw.uri.canonicalUrl( page, query )
- uri-Objekto por kanona URL (kun la aktuala protokolo) de Vikia paĝo page.
- Nedevige kun query kiel preta signoĉeno aŭ table.
- mw.uri.new( s )
- mw.uri.new( table )
- uri-Objekt formas per parsado signoĉenon s aŭ plenigon de la kampoj en table.
- mw.uri.validate( s )
- mw.uri.validate( table )
- Kontrolu la uzeblon de signoĉeno s aŭ de la kampoj en table por
mw.uri.new()
. - boolean por uzeblo, alie signoĉeno kun erarmesaĝo.
uri-Objekt
[redakti | redakti fonton]Kampoj, el kiuj kelkaj aŭ ĉiuj povas esti nil
:
- .protocol
- (string) protocol/scheme
- .user
- (string) user
- .password
- (string) password
- .host
- (string) host name
- .port
- (number) port
- .path
- (string) path
- .query
- (table) kiel el
mw.uri.parseQueryString
- .fragment
- (string) fragment.
Krome ekzistas la sekvaj ecoj:
- .userInfo
- (string) user and password
- .hostPort
- (string) host and port
- .authority
- (string) user, password, host, and port
- .queryString
- (string) version of the query table
- .relativePath
- (string) path, query string, and fragment
tostring()
redonas la tekston de la URI.
Metodoj estas la jenaj:
- :parse( s )
- Valoroj el la signoĉeno s enmei en la objekton.
- Ekzistantaj valoroj, kiuj ne aperas en s, konserviĝas.
- :clone()
- Kopio de la objekto
- :extend( parameters )
- parameters estas table, kies valoreoj estas aldonataj al la ekzistantraj en la Query-komponanto aŭ superskribas ilin.
Uzekzemplo
[redakti | redakti fonton]La sekva funkcio provas redoni ligilon al la versia historio, ĉe kio la paĝo estas difinita per la paĝoidentigilo curid. Programaderaroj kaj nevalidaj numeraj valoroj estas ekkonataj. Ambaŭ sur ĉi tiu paĝo prezentitaj bibliotekoj/objektoj estas uzataj.
function versionen( curid )
local r
if type( curid ) == "number" and curid > 0 then
local page = mw.title.new( curid )
if page then
local uri = mw.uri.fullUrl( page.prefixedText, "action=history" )
r = string.format( "[%s versioj]", tostring( uri ) )
else
r = string.format( "Paĝo %d mankas", curid )
end
else
r = "*BAD curid*"
end
return r
end