Modulo:Valido in corsivo

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 i = {}
-- Funzione per l'utilizzo da altro modulo
i._IsLatin = function(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
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
i.IsLatin = function(frame)
if mw.text.trim(frame.args[1]) == '' then return end
return i._IsLatin(frame.args) and 'sì' or ''
end
return i