Modulo:Fonte

Da Wikisionario
Jump to navigation Jump to search

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
Traesto fora da Wikipèdia - L'ençiclopedia łìbara e cołaboradiva in łéngua Vèneta "https://vec.wiktionary.org/w/index.php?title=Modulo:Fonte&oldid=6521"