Модуль:Cyrlat (Bk;rl,&Cyrlat)
Перейти к навигации
Перейти к поиску
local p = {} -- p stands for package
function _color (sym)
if mw.ustring.match(sym, '[Ѐ-҄҇-ԯᲀ-ᲈᴫᵸⷠ-ⷿꙀ-ꚟ︮-︯]') then
return 'var(--color-progressive, #36c)' -- cyrillic
elseif mw.ustring.match(sym, '[A-Za-zªºÀ-ÖØ-öø-ʸˠ-ˤᴀ-ᴥᴬ-ᵜᵢ-ᵥᵫ-ᵷᵹ-ᶾḀ-ỿⁱⁿₐ-ₜℲⅎⅠ-ↈⱠ-ⱿꜢ-ꞇꞋ-ꞿꟂ-ꟊꟵ-ꟿꬰ-ꭚꭜ-ꭤꭦ-ꭩff-stA-Za-z]')then
return 'var(--color-destructive, #d73333)' -- latin
else
return 'var(--color-emphasized, #000)' -- other symbols
end
end
function p.color (frame)
local str = frame:getParent().args[1] or ''
local results = {}
for i = 1, mw.ustring.len(str) do
local sym = mw.ustring.sub(str, i, i)
table.insert(results, '<span style="color:' .. _color(sym) .. '">' .. sym .. '</span>')
end
return table.concat(results)
end
return p