Modulo:Blacklist
Questo è un modulo scritto in Lua. Le istruzioni che seguono sono contenute nella sottopagina Modulo:Blacklist/man (modifica · cronologia)
Sandbox: Modulo:Blacklist/sandbox (modifica · cronologia) · Sottopagine: lista · Test: Modulo:Blacklist/test (modifica · cronologia · Esegui)
Il Modulo:Blacklist può servire nella manutenzione dei template per inserire in una categoria di errore parametri errati e obsoleti.
Uso
Inserire nel template:
{{#invoke:Blacklist|blacklist|blacklist=parametro1, parametro2, ... parametro#}}
Dove parametro1, parametro2, ... parametro# sono una lista di nomi di parametri separati da virgola (",") che non devono essere più usati. Opzionalmente un nome di parametro può contenere "#" per indicare un gruppo di parametri numerati consecutivamente (per esempio come in autore1, autore2, ecc. in {{Cita testo}}.
Il modulo ritorna una stringa vuota se non trova quel nome di parametro in un'istanza di chiamata del template, mentre ritorna il nome del parametro trovato se lo trova.
Un esempio più completo di uso può essere (fatto nel {{Sportivo}}:
{{#if:{{NAMESPACE}}||{{#if:{{#invoke:Blacklist|blacklist|blacklist=Nazionale, Nazionale#, GiovaniliSquadre, GiovaniliSquadre#}}|[[Categoria:Errori di compilazione del template Sportivo - parametri obsoleti]]}}}
Il primo #if ({{#if:{{NAMESPACE}}|| ... }}
) forza l'esecuzione solo in NS:0, il secondo #if chiama il modulo per identificare le voci in cui vengono chiamati i parametri indicati e inserirle nella categoria di errore.
--Modulo per gestire blacklist/whitelist di parametri in un template
local p = {}
local getArgs = require('Module:Arguments').getArgs
function p.blacklist(frame)
local config = getArgs(frame, {frameOnly=true})
local cblacklist = config.blacklist
if not cblacklist or mw.text.trim(cblacklist) == '' then
return ''
end
local blacklist = {}
for _,name in ipairs(mw.text.split(cblacklist, "%s*,%s*")) do
blacklist[name] = true
end
local args = getArgs(frame, {parentOnly=true, trim = false, removeBlanks = false})
for name,value in pairs(args) do
name_check = mw.ustring.gsub(name, "%d+", "#")
if blacklist[name_check] then
return name
end
end
return ''
end
return p