Modulo:Split interlink
Questo è un modulo scritto in Lua. Le istruzioni che seguono sono contenute nella sottopagina Modulo:Split interlink/man (modifica • cronologia)
Sandbox: Modulo:Split interlink/Sandbox (modifica•cronologia) • Test: Modulo:Split interlink/Test (modifica•cronologia)
Questo modulo serve per reperire informazioni da un URL di un progetto wiki.
Sintassi
Il modulo ha soltanto un unico parametro accettato, cioè l'URL stesso, il resto viene fatto dalle varie funzioni, la sintassi sarà quindi sempre la stessa, cambierà soltanto la funzione, vediamo più avanti come queste lavorano. A scopo dimostrativo useremo quindi sempre lo stesso link di esempio, cioè
Alcune funzioni accettano anche l'URL che chiameremo "canonico" o breve, quello cioè con /wiki/
, visualizzato quando guardiamo normalmente una pagina.
oldid
Recupera l'oldid della modifica, estrapolato dal link se presente
Sintassi | risultato |
---|---|
{{#INVOKE:Split interlink|oldid|1=https://it.wiktionary.org/w/index.php?title=Wikizionario:Sandbox&diff=3490039&oldid=3489958}} | 3489958 |
diff
Recupera il diff della modifica, estrapolato dal link se presente
Sintassi | risultato |
---|---|
{{#INVOKE:Split interlink|diff|1=https://it.wiktionary.org/w/index.php?title=Wikizionario:Sandbox&diff=3490039&oldid=3489958}} | 3490039 |
confronto
Recupera i parametri diff e oldid, necessari per visualizzare il confronto delle revisioni.
Sintassi | risultato |
---|---|
{{#INVOKE:Split interlink|confronto|1=https://it.wiktionary.org/w/index.php?title=Wikizionario:Sandbox&diff=3490039&oldid=3489958}} | diff=3490039&oldid=3489958 |
progetto
Recupera il nome del progetto. Questa funzione all'occorrenza funziona anche con il link "canonico".
Sintassi | risultato |
---|---|
{{#INVOKE:Split interlink|progetto|1=https://it.wiktionary.org/w/index.php?title=Wikizionario:Sandbox&diff=3490039&oldid=3489958}} | wiktionary |
lingua
Recupera il codice ISO della lingua del progetto. Questa funzione all'occorrenza funziona anche con il link "canonico".
Sintassi | risultato |
---|---|
{{#INVOKE:Split interlink|lingua|1=https://it.wiktionary.org/w/index.php?title=Wikizionario:Sandbox&diff=3490039&oldid=3489958}} | it |
paginaLink
Recupera il nome della pagina. Questa funzione restituisce il nome della pagina in formato "leggibile" per un URL.
Sintassi | risultato |
---|---|
{{#INVOKE:Split interlink|paginaLink|1=https://it.wiktionary.org/w/index.php?title=Wikizionario:Sandbox&diff=3490039&oldid=3489958}} | Wikizionario:Sandbox |
pagina
Recupera il nome della pagina. Questa funzione, al contrario della precedente restituisce il nome "pulito" della pagina.
Sintassi | risultato |
---|---|
{{#INVOKE:Split interlink|pagina|1=https://it.wiktionary.org/w/index.php?title=Wikizionario:Sandbox&diff=3490039&oldid=3489958}} | Wikizionario:Sandbox |
paginaURL
Recupera il nome della pagina. Questa funzione è l'unica lavora esclusivamente con link "canonico", cioè, per usare l'esempio precedente.
Sintassi | risultato |
---|---|
{{#INVOKE:Split interlink|paginaURL|1=https://it.wiktionary.org/wiki/Modulo:Split_interlink}} | Modulo:Split interlink |
nomeLingua
Restituisce il nome della lingua attraverso il codice ISO del link. Questa funzione all'occorrenza funziona anche con il link "canonico".
Sintassi | risultato |
---|---|
{{#INVOKE:Split interlink|nomeLingua|1=https://it.wiktionary.org/w/index.php?title=Wikizionario:Sandbox&diff=3490039&oldid=3489958}} | italiano |
localurl
Restituisce il link completo della pagina cancellando però i parametri, in modo da poterlo modificare successivamente aggiungendo parametri arbitrari, ad esempio &action=history
per inserire la cronologia.
- infatti con
- {{#INVOKE:Split interlink|localurl|1=https://it.wiktionary.org/w/index.php?title=Wikizionario:Sandbox&diff=3490039&oldid=3489958}}&action=history
- Restituirà
Sintassi | risultato |
---|---|
{{#INVOKE:Split interlink|localurl|1=https://it.wiktionary.org/w/index.php?title=Wikizionario:Sandbox&diff=3490039&oldid=3489958}} | https://it.wiktionary.org/w/index.php?title=Wikizionario:Sandbox |
local p = {}
function p.oldid(frame)
local link = frame.args[1]
local oldid = mw.ustring.match(link, "oldid=(%d+)")
return oldid
end
function p.diff(frame)
local link = frame.args[1]
local diff = mw.ustring.match(link, "diff=(%d+)")
return diff
end
function p.confronto(frame)
local link = frame.args[1]
local confronto = mw.ustring.match(link, "(diff=%d+&oldid=%d+)")
return confronto
end
function p.progetto(frame)
local link = frame.args[1]
local progetto = mw.ustring.match(link, "//%w+-?%w+\.(%a+).org")
return progetto
end
function p.lingua(frame)
local link = frame.args[1]
local lingua = mw.ustring.match(link, "//(%w+(-?%w+))\.%a+.org") --, "%1")
return lingua
end
function p.paginaLink(frame)
local link = frame.args[1]
local pagina= mw.ustring.gsub(link, '+', '_')
pagina = mw.ustring.match(pagina, "title=(.+)") --, "%1")
pagina = mw.text.split( pagina, '&' )
pagina = pagina[1]
return pagina
end
function p.pagina(frame)
local link = frame.args[1]
local pagina= mw.ustring.gsub(link, '+', '_')
pagina = mw.ustring.match(pagina, "title=(.+)") --, "%1")
pagina = mw.text.split( pagina, '&' )
pagina = pagina[1]
pagina = mw.ustring.gsub(pagina, '_', ' ')
return mw.uri.decode(pagina,QUERY)
end
function p.paginaURL(frame)
local link = frame.args[1]
local pagina = mw.ustring.match(link, "/wiki/(.+)")
pagina = mw.ustring.gsub(pagina, '_', ' ')
return mw.uri.decode(pagina,QUERY)
end
function p.nomeLingua( frame )
local link = frame.args[1]
local lingua = mw.ustring.match(link, "//(%w+(-?%w+))\.%a+.org") --, "%1")
return mw.language.fetchLanguageName( lingua, mw.language.getContentLanguage():getCode() )
end
function p.localurl( frame )
local link = frame.args[1]
localurl = mw.text.split( link, '&' )
localurl = localurl[1]
return localurl
end
return p