Modulo:Valido in corsivo

Versione del 5 dic 2017 alle 14:46 di Rotpunkt (discussione | contributi) (fix local charval, nome table restituita)
Info Istruzioni per l'uso
Questo è un modulo scritto in Lua. Le istruzioni che seguono sono contenute nella sottopagina Modulo:Valido in corsivo/man (modifica · cronologia)
Sandbox: Modulo:Valido in corsivo/sandbox (modifica · cronologia) · Sottopagine: lista · Test: Modulo:Valido in corsivo/test (modifica · cronologia · esegui)

Modulo che implementa il template:Valido in corsivo. Da un'idea di WOSlinker.

Si può anche richiamare da un altro modulo. In questo caso ritorna "true" se riceve come primo argomento un testo che può essere scritto in corsivo, altrimenti "false".


local p = {}

-- Funzione per l'utilizzo da altro modulo
function p._IsLatin(args)
	local txt = args[1] or ''
	if mw.text.trim(txt) == '' then return nil end
	
	local len = mw.ustring.len(txt)
	local pos = 1
	while (pos <= len) do
		local charval = mw.ustring.codepoint(mw.ustring.sub(txt, pos))
		if charval >= 880 and charval < 8192 then
			return false
		elseif charval >= 8960 then
			return false
		end
		pos = pos + 1
	end
	return true
end

-- Funzione per il template IsLatin
function p.IsLatin(frame)
	return p._IsLatin(frame.args) and 'sì' or ''
end

return p