Modulo:Vedi anche
Vai alla navigazione
Vai alla ricerca
![Info](https://upload.wikimedia.org/wikipedia/commons/thumb/c/cf/Lua-Logo.svg/30px-Lua-Logo.svg.png)
Questo è unmoduloscritto inLua.Le istruzioni che seguono sono contenute nellasottopaginaModulo:Vedi anche/man(modifica·cronologia)
Sandbox:Modulo:Vedi anche/sandbox(modifica·cronologia)·Sottopagine:lista·Test:Modulo:Vedi anche/test(modifica·cronologia·Esegui)
Modulo che implementa il template {{Vedi anche}}.
Ha una sottopagina CSS:Modulo:Vedi anche/styles.css.
--[[
* Modulo che implementa il template {{Vedi anche}}.
]]
require('strict')
-- Parsifica un argomento del template (rappresenta il titolo di una pagina) e ne restituisce il wikilink.
--
-- @param {string} arg
-- @return {string}
localfunctionparseArg(arg)
localdest,count,obj,content
-- restituisce errore con wikilink a categorie
ifarg:match('^%s*:%s*[Cc][Aa][Tt]')then
return'<span class= "error" >(usare il [[Template:Vedi categoria]])</span>'
end
-- rimuove eventuali pipe inserite tramite {{!}}
arg=arg:match('(.-)|')orarg
-- sostituisce le HTML entity (per esempio ' generato da {{PAGENAME}} quando il titolo contiene l'apostrofo)
arg=mw.text.decode(arg)
-- crea oggetto per il titolo
obj=mw.title.new(mw.uri.decode(arg,'PATH'))
-- sostituisce # con §, se trovato crea un piped wikilink
dest=arg
arg,count=arg:gsub('#',' § ')
dest=count==1and(dest..'|')or''
-- converte la prima lettera in maiuscola o minuscola a seconda che la voce contenga il template Titolo minuscolo
content=objandobj:getContent()
ifcontentandcontent:match('{{%s*[Tt]itolo minuscolo%s*[|}]')then
arg=mw.getContentLanguage():lcfirst(arg)
else
arg=mw.getContentLanguage():ucfirst(arg)
end
returnstring.format("'''[[%s%s]]'''",dest,arg)
end
-- Costruisce l'HTML per contenere i wikilink alle pagine.
--
-- @param {string} wikitext
-- @return {string}
localfunctionbuildHTML(wikitext)
returnmw.getCurrentFrame():extensionTag{
name='templatestyles',
args={
src='Modulo:Vedi anche/styles.css'
}
}..mw.getCurrentFrame():expandTemplate{
title='Avviso permanente',
args={
immagine='Magnifying glass icon mgx2.svg',
classe='noprint vedi-anche',
testo=string.format('Lo stesso argomento in dettaglio: %s.',wikitext)
}
}
end
-- =============================================================================
-- Funzioni esportate
-- =============================================================================
localp={}
-- Funzione per il template {{Vedi anche}}.
functionp.main(frame)
locallastArg,conjunction
localargs={}
for_,valinipairs(frame:getParent().args)do
ifmw.text.trim(val)~=''then
table.insert(args,parseArg(val))
lastArg=val
end
end
if#args>1andlastArgthen
conjunction=mw.ustring.lower(lastArg:sub(1,1))=='e'and'ed'or'e'
conjunction=' '..conjunction..' '
end
returnbuildHTML(mw.text.listToText(args,', ',conjunction))
end
returnp