Modulo:Split interlink

Wikibooks, manuali e libri di testo liberi.
Jump to navigation Jump to search

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.wikibooks.org/w/index.php?title=Modulo%3ASplit_interlink&type=revision&diff=351339&oldid=351269}} 351269

diff

Recupera il diff della modifica, estrapolato dal link se presente

Sintassi risultato
{{#INVOKE:Split interlink|diff|1=https://it.wikibooks.org/w/index.php?title=Modulo%3ASplit_interlink&type=revision&diff=351339&oldid=351269}} 351339

confronto

Recupera i parametri diff e oldid, necessari per visualizzare il confronto delle revisioni.

Sintassi risultato
{{#INVOKE:Split interlink|confronto|1=https://it.wikibooks.org/w/index.php?title=Modulo%3ASplit_interlink&type=revision&diff=351339&oldid=351269}} diff=351339&oldid=351269

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.wikibooks.org/w/index.php?title=Modulo%3ASplit_interlink&type=revision&diff=351339&oldid=351269}} wikibooks

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.wikibooks.org/w/index.php?title=Modulo%3ASplit_interlink&type=revision&diff=351339&oldid=351269}} 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.wikibooks.org/w/index.php?title=Modulo%3ASplit_interlink&type=revision&diff=351339&oldid=351269}} Modulo%3ASplit_interlink

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.wikibooks.org/w/index.php?title=Modulo%3ASplit_interlink&type=revision&diff=351339&oldid=351269}} Modulo:Split interlink

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.wikibooks.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.wikibooks.org/w/index.php?title=Modulo%3ASplit_interlink&type=revision&diff=351339&oldid=351269}} 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.wikibooks.org/w/index.php?title=Modulo%3ASplit_interlink&type=revision&diff=351339&oldid=351269}}&action=history
Restituirà
Sintassi risultato
{{#INVOKE:Split interlink|localurl|1=https://it.wikibooks.org/w/index.php?title=Modulo%3ASplit_interlink&type=revision&diff=351339&oldid=351269}} https://it.wikibooks.org/w/index.php?title=Modulo%3ASplit_interlink

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