Modulo:Vedi anche

Questo è un modulo scritto in Lua. Le istruzioni che seguono sono contenute nella sottopagina Modulo: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('Modulo:No globals')
local p = {}
-- Parsifica un argomento del template (rappresenta il titolo di una pagina) e ne ritorna il wikilink.
local function parseArg(arg)
-- rimuove eventuali pipe inserite tramite {{!}}
arg = arg:match('(.*)|') or arg
-- sostituisce ' con "'" (generato da {{PAGENAME}} quando il titolo contiene l'apostrofo)
arg = arg:gsub(''', "'")
-- sostituisce # con §
arg = arg:gsub('#', ' § ')
return "'''[[" .. arg .. "]]'''"
end
-- Costruisce l'HTML per contenere i wikilink alle pagine.
local function buildHTML(wikitext)
local tableStyle = {
['margin-bottom'] = '.5em',
border = '1px solid #CCC',
['text-align'] = 'left',
['font-size'] = '95%',
background = 'transparent'
}
local tableNode = mw.html.create('table')
tableNode
:addClass('noprint')
:css(tableStyle)
:tag('tr')
:tag('td')
:css('padding', '.5em')
:wikitext('[[File:Exquisite-kfind.png|20px|class=noviewer]]')
:done()
:tag('td')
:css('width', '100%')
:wikitext("''Lo stesso argomento in dettaglio: " .. wikitext .. "''.")
:done()
return tostring(tableNode)
end
-- entry-point per {{Vedi anche}}
function p.main(frame)
local args = {}
local cat
for _, val in ipairs(frame:getParent().args) do
table.insert(args, parseArg(val))
end
-- se presente l'obsoleto parametro 'sezione' categorizza la voce (solo nel namespace principale)
cat = (mw.title.getCurrentTitle().namespace == 0 and frame:getParent().args.sezione) and
'[[Categoria:Vedi anche con parametro sezione]]' or ''
return buildHTML(mw.text.listToText(args, ', ', ' e ')) .. cat
end
return p