Modulo:Fonte
Inpostasion de letura
La documentazione per questo modulo può essere creata in Modulo:Fonte/man
-- Moduli utili per il template Fonte divisi per dizionario
local p = {}
local titolo = mw.title.getCurrentTitle().subpageText
--[[ Hoep:
sostituisce il testo racchidendolo tra i caratteri" +(...)", indispensabile in caso di omonimie
Nel caso sia scritto un parametro con una cifra, esempio "parametro2", questa funzione permette di isolare le lettere, sostituire i "_" con i "+" e cancellare i numeri
--]]
function p.hoepTesto(frame)
local par1 = frame.args[1]
local par2 = mw.ustring.gsub(par1, '%d', '') -- Cancella i numeri
local res = titolo -- Se non ci sono lettere mostra il titolo della pagina
if par2 ~= "" then -- Controlla se ci sono delle lettere
res = par2 -- Se ci sono lettere vuol dire che è stato specificato il primo parametro, quindi lo mostra
end
return mw.ustring.sub(res, 0, 1):upper() .. '/' .. mw.uri.encode(res, 'PATH') -- Appropriata codifica dell'indirizzo
end
function p.hoepNum(frame)
par1 = frame.args[1]
par3 = mw.ustring.gsub(par1, '%d', '') -- Cancella tutti i numeri
par2 = mw.ustring.gsub(par1, '%a', '') -- Cancella tutte le lettere
if par3 ~= "" then --se ci sono delle lettere
if par2 > "0" then
return mw.uri.encode(par3 .. ' (' .. par2 .. ')')
else
return mw.uri.encode(par3)
end
else
if par2 > "0" then -- se non ci sono lettere
return mw.uri.encode(titolo .. ' (' .. par2 .. ')')
else
return mw.uri.encode(titolo)
end
end
end
function p.senzaccenti(arg)
if type(arg) ~= 'string' and arg.args ~= nil and arg.args[1] ~= nil then
arg = arg.args[1]
end
if type(arg) ~= 'string' then
error('Specificare un parametro di tipo stringa')
return nil
end
arg = mw.ustring.gsub(arg, '[àáäãâåāăą]', 'a')
arg = mw.ustring.gsub(arg, '[èéêëēěĕėę]', 'e')
arg = mw.ustring.gsub(arg, '[ìíîïĩīĭį]', 'i')
arg = mw.ustring.gsub(arg, '[òóôõöōŏőø]', 'o')
arg = mw.ustring.gsub(arg, '[ùúûüūŭů]', 'u')
return arg
end
--[[ Sabco:
sostituisce tutte le lettere accentate con le rispettive lettere private dell'accento e sostituisce tutti gli spazi con il "_" necessario per linkare correttamente
--]]
function p.SabCo(frame)
t2 = p.senzaccenti(titolo)
par = p.senzaccenti(frame.args[1])
par = mw.ustring.gsub(par, '%s', '_') -- Sostituisce i "_"
lett = mw.ustring.gsub(par, '%d', '') -- Cancella tutti i numeri
num = mw.ustring.gsub(par, '%a', '') -- Cancella tutte le lettere
if lett ~= "" then --se ci sono delle lettere
if num > "0" then
return lett , '_' .. num .. ''
else
return lett
end
else
if num > "0" then -- se non ci sono lettere
return t2 , '_' .. num .. ''
else
return t2
end
end
end
--[[ mdbg:
Analizza il testo inserito e taglia l'eventuale testo "zh-tc" dal parametro inserito e poi smista il testo in base al risultato
--]]
function p.mdbgTesto(frame)
par1=frame.args[1]
par2 = mw.ustring.gsub(par1, '([%a0-9]+)(-([a-z]+-[a-z]+))', '%1');
if par1 ~= "" then
if par1 == "zh-tc" then -- Controlla se è stato specificato soltanto "zh-tc"
return titolo -- se non è stato specificato niente restituisce il titolo della pagina
else
return par2 -- se è stato specificato altro lo visualizza
end
else
return titolo -- se è stato specificato altro lo visualizza
end
end
function p.mdbgSuff(frame)
par1=frame.args[1]
par2 = mw.ustring.gsub(par1, '([%a0-9]+)(-([a-z]+-[a-z]+))', '%3');
if par1 ~= "" then
if par2 == "zh-tc" then -- Controlla se è stato specificato soltanto "zh-tc"
return '1' -- se non è stato specificato niente restituisce il titolo della pagina
else
return '0' -- se è stato specificato altro lo visualizza
end
else
return '0' -- se è stato specificato altro lo visualizza
end
end
return p