Mòdulu:Bio/Paràmitri
Aspettu
La ducumintazzioni di stu mòdulu si pò criari nta Mòdulu:Bio/Paràmitri/doc
local config = {}
--[[
Configurazione dei parametri del Modulo:Bio.
Definisce quali sono gli unici parametri accettati.
]]
config.params = {
["Tìtulu"] = true,
["Nomu"] = true,
["Cugnomu"] = true,
["Suprannomu"] = true,
["DoppuSuprannomu"] = true,
["CanusciutuComu"] = true,
["DoppuCanusciutuComu"] = true,
["DoppuCugnomu"] = true,
["DoppuCugnomuVìrgula"] = true,
["FurzaUrdinamentu"] = true,
["PreData"] = true,
["Gèniri"] = true,
["LocuNàscita"] = true,
["LocuNàscitaLijami"] = true,
["LocuNàscitaAutru"] = true,
["JornuMisiNàscita"] = true,
["AnnuNàscita"] = true,
["NotiNàscita"] = true,
["LocuMorti"] = true,
["LocuMortiLijami"] = true,
["LocuMortiAutru"] = true,
["JornuMisiMorti"] = true,
["AnnuMorti"] = true,
["NotiMorti"] = true,
["Floruit"] = true,
["PreAttività"] = true,
["Èbbica"] = true,
["Èbbica2"] = true,
["Attività"] = true,
["Attività2"] = true,
["Attività3"] = true,
["AttivitàAutri"] = true,
["Nazziunalità"] = true,
["NazziunalitàNaturalizzatu"] = true,
["Cittadinanza"] = true,
["DoppuNazziunalità"] = true,
["Catigurìi"] = true,
["FiniÌncipit"] = true,
["Puntu"] = true,
["Mmàggini"] = true,
["Didascalìa"] = true,
["Didascalìa2"] = true,
["GrannizzaMmàggini"] = true,
["CugnomuPrima"] = true,
["Debug"] = true
}
--[[
Configurazione dei controlli effettuati sui parametri (ogni parametro può averne più di uno).
Ogni controllo è configurabile tramite:
* "param ": il parametro su cui effettuare il controllo
* "valuetest": il controllo da effettuare sul valore del parametro, può valere:
* un pattern Lua: è accettato il valore se soddisfa il pattern Lua descritto
* una funzione Lua: funzione Lua che esegue il controllo di validità,
da usare quando i pattern Lua non sono sufficienti o per controlli più complessi.
* "errmsg": il messaggio di errore da visualizzare, è facoltativo.
Se assente la voce sarà comunque categorizzata tra le voci con errori.
Nel caso della funzione, deve accettare due parametri: il valore del parametro e
la tabella con gli altri argomenti (per fare controlli in relazione agli altri parametri).
Deve ritornare true se il valore del parametro è valido altrimenti false.
Esempio: scommentando la seguente funzione checkNome e aggiungendo la riga:
{ param = "Nome", valuetest = checkNome },
saranno categorizzate come errore la pagine con Nome contenente "soprannominato" o "al secolo".
Inoltre non verrà visualizzato il messaggio di errore (errmsg è assente).
]]
--local function checkNome(value, args)
-- return value:find("soprannominato") == nil and
-- value:find("al secolo") == nil
--end
local function checkEpoca(value, args)
return mw.loadData("Mòdulu:Bio/Cunfigurazzioni").epoche[value] ~= nil
end
local function checkLen1000(value, args)
-- ignora eventuali tag span, solitamente generati da template inclusi
return value:gsub("<span.+</span>", ""):len() < 1000
end
local function checkQuestionMark(value, args)
-- non è valida una squenza di uno o più punti interrogativi
return not value:match("^[%?]+$")
end
local function checkEllipsis(value, args)
return value ~= "..."
end
local function checkPeriod(value, args)
return not value:match("^%.")
end
-- Applicato su AnnoMorte per verificare che in presenza di AnnoNascita sia uguale o posteriore
local function checkMorteDopoNascita(value, args)
local annoNascita, annoMorte
local ret = true
if args["AnnuNàscita"] then
annoNascita = tonumber(args["AnnuNàscita"])
annoMorte = tonumber(value)
if annoNascita and annoMorte then
ret = annoMorte >= annoNascita
end
end
return ret
end
-- Per controllare la dipendenza da un altro parametro
local function hasParam(param)
return function(value, args)
return args[param] ~= nil
end
end
-- Per controllare il conflitto con un altro parametro
local function unusedParam(param)
return function(value, args)
return args[param] == nil
end
end
-- Per controllare che un altro parametro abbia valore diverso
local function diffParam(param)
return function(value, args)
return value ~= args[param]
end
end
config.validators = {
{ param = "Gèniri", valuetest = "^[MF]$", errmsg = "u valuri dû paràmitru Gèniri nun è vàlitu, accittatu sulu 'M' o 'F'" },
{ param = "Èbbica", valuetest = checkEpoca, errmsg = "u valuri dû paràmitru Èbbica nun è vàlitu" },
{ param = "Èbbica2", valuetest = checkEpoca, errmsg = "u valuri dû paràmitru Èbbica2 nun è vàlitu" },
{ param = "Èbbica2", valuetest = hasParam("Èbbica"), errmsg = "Èbbica2 è usatu ma Èbbica è vacanti" },
{ param = "Èbbica2", valuetest = diffParam("Èbbica"), errmsg = "Èbbica2 àvi u stissu valuri di Èbbica" },
{ param = "Puntu", valuetest = "^no$", errmsg = "u valuri dû paràmitru Puntu nun è vàlitu, accittatu sulu 'no'" },
{ param = "GrannizzaMmàggini", valuetest = "^%d+$", errmsg = "u valuri dû paràmitru GrannizzaMmàggini nun è vàlitu, mèttiri a grannizza senza px" },
{ param = "Catigurìi", valuetest = "^no$", errmsg = "u valuri dû paràmitru Catigurìi nun è vàlitu, accittatu sulu 'no'" },
{ param = "DoppuNazziunalità", valuetest = checkPeriod, errmsg = "DoppuNazziunalità accumincia cû puntu. Sposta u cuntinutu ô rigu doppu, doppu a chiujuta dû mudeḍḍu Bio" },
{ param = "DoppuNazziunalità", valuetest = checkLen1000 },
{ param = "FiniÌncipit", valuetest = checkLen1000 },
{ param = "DoppuCugnomuVìrgula", valuetest = unusedParam("DoppuCugnomu"), errmsg = "DoppuCugnomu e DoppuCugnomuVìrgula nun si ponnu usari nzèmmula" },
{ param = "AnnuNàscita", valuetest = checkQuestionMark, errmsg = "u valuri di AnnuNàscita nun è vàlitu: si scanusciutu s'hâ lassari vacanti, e u mudeḍḍu mustrarà i punti di suspinzioni" },
{ param = "AnnuNàscita", valuetest = checkEllipsis, errmsg = "u valuri '...' di AnnuNàscita nun è vàlitu: si scanusciutu s'hâ lassari vacanti, e u mudeḍḍu mustrarà i punti di suspinzioni" },
{ param = "AnnuMorti", valuetest = checkEllipsis, errmsg = "u valuri '...' di AnnuMorti nun è vàlitu: si scanusciutu s'hâ mèttiri '?', e u mudeḍḍu mustrarà i punti di suspinzioni" },
{ param = "AnnuMorti", valuetest = checkMorteDopoNascita, errmsg = "u valuri dû paràmitru AnnuMorti veni prima di AnnuNàscita" },
{ param = "LocuNàscitaLijami", valuetest = hasParam("LocuNàscita"), errmsg = "LocuNàscitaLijami è usatu ma LocuNàscita è vacanti" },
{ param = "LocuNàscitaLijami", valuetest = diffParam("LocuNàscita"), errmsg = "LocuNàscitaLijami s'hâ usari sulu si diversu di LocuNàscita" },
{ param = "LocuNàscitaAutru", valuetest = hasParam("LocuNàscita"), errmsg = "LocuNàscitaAutru è usatu ma LocuNàscita è vacanti" },
{ param = "LocuMortiLijami", valuetest = hasParam("LocuMorti"), errmsg = "LocuMortiLijami è usatu ma LocuMorti è vacanti" },
{ param = "LocuMortiLijami", valuetest = diffParam("LocuMorti"), errmsg = "LocuMortiLijami s'hâ usari sulu si diversu di LocuMorti" },
{ param = "LocuMortiAutru", valuetest = hasParam("LocuMorti"), errmsg = "LocuMortiAutru è usatu ma LocuMorti è vacanti" },
{ param = "LocuMorti", valuetest = hasParam("AnnuMorti"), errmsg = "LocuMorti è usatu ma AnnuMorti è vacanti" },
{ param = "JornuMisiMorti", valuetest = hasParam("AnnuMorti"), errmsg = "JornuMisiMorti è usatu ma AnnuMorti è vacanti" },
{ param = "Floruit", valuetest = unusedParam("AnnuNàscita"), errmsg = "AnnuNàscita e Floruit non si ponnu usari nzèmmula" },
{ param = "Attività3", valuetest = hasParam("Attività2"), errmsg = "Attività3 è usatu ma Attività2 è vacanti" }
}
return config