Mòdulu:sinugrammi

La ducumintazzioni di stu mòdulu si pò criari nta Mòdulu:sinugrammi/doc

local sinugramma = {}
local catina_regex = "⺀-⿕々-〇ヶ㐀-䶿一-鿿﨎-﨩𠀀-𪜇𪜉-𬻿𬼁-𯿿"
local tabbella_radicali_trattu = {}
local function codici_radicali_trattu(char)
	local codici = mw.ustring.codepoint(char)
	local paggina = math.floor(codici / 0x1000)
	local tabbella = tabbella_radicali_trattu[paggina]
	if not tabbella then
		tabbella = mw.loadData(mw.ustring.format("Mòdulu:sinugrammi/radicali trattu %X000", paggina))
		tabbella_radicali_trattu[paggina] = tabbella
	end
	return tabbella[char]
end
function sinugramma.catina_radicali_trattu(str)
	str = mw.ustring.gsub(str, "([" .. catina_regex .. "])", codici_radicali_trattu)
	return str
end
function sinugramma.radicali_trattu(frame)
	local str = frame.args[1] or ""
	return sinugramma.catina_radicali_trattu(str)
end
function sinugramma.regex(frame)
	return catina_regex
end
return sinugramma