Модуль:UCS8

Материал из Викитеки — свободной библиотеки

Для документации этого модуля может быть создана страница Модуль:UCS8/Документация

local p = {}

local map = {
	["#"] = mw.ustring.char ( 0x486 ), -- придыхание
	["$"] = mw.ustring.char ( 0x486, 0x301 ), -- придыхание + акут
	["%"] = mw.ustring.char ( 0x486, 0x300 ), -- придыхание + гравис
	["&"] = mw.ustring.char ( 0x483 ), -- ҃
	["+"] = mw.ustring.char ( 0x2de1, 0x487 ), -- титло-в
	
	["0"] = mw.ustring.char ( 0x43e, 0x301 ), -- о́
	["1"] = mw.ustring.char ( 0x301 ), -- акут
	["2"] = mw.ustring.char ( 0x300 ), -- гравис
	["3"] = mw.ustring.char ( 0x486 ), -- придыхание
	["4"] = mw.ustring.char ( 0x486, 0x301 ), -- придыхание + акут
	["5"] = mw.ustring.char ( 0x486, 0x300 ), -- придыхание + гравис
	["6"] = mw.ustring.char ( 0x311 ), -- круглое ударение
	["7"] = mw.ustring.char ( 0x483 ), -- ҃
	["8"] = mw.ustring.char ( 0x33e ), -- ̾
	["9"] = mw.ustring.char ( 0x436, 0x483 ), -- ж҃
	
	-- ["<"] = mw.ustring.char ( 0x2def ), -- ?
	["="] = mw.ustring.char ( 0x2de9, 0x487 ), -- титло-н
	[">"] = mw.ustring.char ( 0x2dec, 0x487 ), -- титло-р
	["?"] = mw.ustring.char ( 0x2df1, 0x487 ), -- титло-ч
	["@"] = mw.ustring.char ( 0x300 ), -- гравис
	
	["A"] = mw.ustring.char ( 0x430, 0x300 ), -- а̀
	["B"] = mw.ustring.char ( 0x463, 0x311 ), -- ѣ̑
	["C"] = mw.ustring.char ( 0x2ded, 0x487 ), -- титло-с
	["D"] = mw.ustring.char ( 0x434, 0x2ded, 0x487 ), -- д + титло-с
	["E"] = mw.ustring.char ( 0x435, 0x300 ), -- ѐ
	["F"] = mw.ustring.char ( 0x472 ), -- Ѳ
	["G"] = mw.ustring.char ( 0x433, 0x483 ), -- г҃
	["H"] = mw.ustring.char ( 0x461, 0x301 ), -- ѡ́
	["I"] = mw.ustring.char ( 0x406 ), -- І
	["J"] = mw.ustring.char ( 0x456, 0x300 ), -- і̀
	["K"] = mw.ustring.char ( 0xa656, 0x486 ), -- IA + придыхание
	["L"] = mw.ustring.char ( 0x43b, 0x2de3 ), -- л + титло-д
	["M"] = mw.ustring.char ( 0x476 ), -- Ѷ
	["N"] = mw.ustring.char ( 0x47a, 0x486 ), -- Ѻ + придыхание
	["O"] = mw.ustring.char ( 0x47a ), -- Ѻ
	["P"] = mw.ustring.char ( 0x470 ), -- Ѱ
	["Q"] = mw.ustring.char ( 0x47c ), -- Ѽ
	["R"] = mw.ustring.char ( 0x440, 0x483 ), -- р҃
	["S"] = mw.ustring.char ( 0x467, 0x300 ), -- ѧ̀
	["T"] = mw.ustring.char ( 0x47e ), -- Ѿ
	["U"] = mw.ustring.char ( 0x478 ), -- Ѹ
	["V"] = mw.ustring.char ( 0x474 ), -- Ѵ
	["W"] = mw.ustring.char ( 0x460 ), -- Ѡ
	["X"] = mw.ustring.char ( 0x46e ), -- Ѯ
	["Y"] = mw.ustring.char ( 0xa64b, 0x300 ), -- круглое у + гравис
	["Z"] = mw.ustring.char ( 0x466 ), -- Ѧ

	["\\"] = mw.ustring.char ( 0x483 ), -- ҃
	["^"] = mw.ustring.char ( 0x311 ), -- круглое ударение
	["_"] = mw.ustring.char ( 0x33e ), -- ̾
	
	["a"] = mw.ustring.char ( 0x430, 0x301 ), -- а́
	["b"] = mw.ustring.char ( 0x2dea, 0x487 ), -- титло-о
	["c"] = mw.ustring.char ( 0x2ded, 0x487 ), -- титло-с
	["d"] = mw.ustring.char ( 0x2de3 ), -- титло-д
	["e"] = mw.ustring.char ( 0x435, 0x301 ), -- е́
	["f"] = mw.ustring.char ( 0x473 ), -- ѳ
	["g"] = mw.ustring.char ( 0x2de2, 0x487 ), -- титло-г
	["h"] = mw.ustring.char ( 0x44b, 0x301 ), -- ы́
	["i"] = mw.ustring.char ( 0x456 ), -- і
	["j"] = mw.ustring.char ( 0x456, 0x301 ), -- і́
	["k"] = mw.ustring.char ( 0xa657, 0x486 ), -- ia + придыхание
	["l"] = mw.ustring.char ( 0x43b, 0x483 ), -- л҃
	["m"] = mw.ustring.char ( 0x477 ), -- ѷ
	["n"] = mw.ustring.char ( 0x47b, 0x486 ), -- ѻ + придыхание
	["o"] = mw.ustring.char ( 0x47b ), -- ѻ
	["p"] = mw.ustring.char ( 0x471 ), -- ѱ
	["q"] = mw.ustring.char ( 0x47d ), -- ѽ
	["r"] = mw.ustring.char ( 0x440, 0x2ded, 0x487 ), -- р + титло-с
	["s"] = mw.ustring.char ( 0x467, 0x301 ), -- ѧ́
	["t"] = mw.ustring.char ( 0x47f ), -- ѿ
	["u"] = mw.ustring.char ( 0x479 ), -- ѹ
	["v"] = mw.ustring.char ( 0x475 ), -- ѵ
	["w"] = mw.ustring.char ( 0x461 ), -- ѡ
	["x"] = mw.ustring.char ( 0x46f ), -- ѯ
	["y"] = mw.ustring.char ( 0xa64b, 0x301 ), -- круглое у + акут
	["z"] = mw.ustring.char ( 0x467 ), -- ѧ

	["{"] = mw.ustring.char ( 0xa64b, 0x311 ), -- круглое у + круглое ударение
	["|"] = mw.ustring.char ( 0x467, 0x486, 0x300 ), -- ѧ + придыхание + гравис
	["}"] = mw.ustring.char ( 0x438, 0x483 ), -- и҃
	["~"] = mw.ustring.char ( 0x301 ), -- акут
	["Ђ"] = mw.ustring.char ( 0x475, 0x301 ), -- ѵ́
	["Ѓ"] = mw.ustring.char ( 0x410, 0x486, 0x301 ), -- А + придыхание + акут
	["ѓ"] = mw.ustring.char ( 0x430, 0x486, 0x301 ), -- а + придыхание + акут
	["…"] = mw.ustring.char ( 0x46f, 0x483 ), -- ѯ҃
	["†"] = mw.ustring.char ( 0x430, 0x311 ), -- а + круглое ударение
	["‡"] = mw.ustring.char ( 0x456, 0x311 ), -- і + круглое ударение
	["€"] = mw.ustring.char ( 0x2de5 ), -- 
	["‰"] = mw.ustring.char ( 0x467, 0x311 ), -- ѧ + круглое ударение
	["Љ"] = mw.ustring.char ( 0x466, 0x486 ), -- Ѧ + придыхание
	["‹"] = mw.ustring.char ( 0x456, 0x483 ), -- і҃
	["Њ"] = mw.ustring.char ( 0x460, 0x486 ), -- Ѡ + придыхание
	["Ќ"] = mw.ustring.char ( 0x478, 0x486, 0x301 ), -- Ѹ + придыхание + акут
	["Ћ"] = mw.ustring.char ( 0xa656, 0x486, 0x301 ), -- IA + придыхание + акут
	["Џ"] = mw.ustring.char ( 0x47a, 0x486, 0x301 ), -- Ѻ + придыхание + акут
	["ђ"] = mw.ustring.char ( 0x475, 0x2de2, 0x487  ), -- ѵ + титло-г 
	["•"] = mw.ustring.char ( 0x2de4 ), -- титло-ж?
	["™"] = mw.ustring.char ( 0x442, 0x483 ), -- т҃
	["љ"] = mw.ustring.char ( 0x467, 0x486 ), -- ѧ + придыхание
	["›"] = mw.ustring.char ( 0x475, 0x311 ), -- ѵ + круглое ударение
	["њ"] = mw.ustring.char ( 0x461, 0x486 ), -- ѡ + придыхание
	["ќ"] = mw.ustring.char ( 0x479, 0x486, 0x301 ), -- ѹ + придыхание + акут
	["ћ"] = mw.ustring.char ( 0xa657, 0x486, 0x301 ), -- ia + придыхание + акут
	["џ"] = mw.ustring.char ( 0x47b, 0x486, 0x301 ), -- ѻ + придыхание + акут
	["Ў"] = mw.ustring.char ( 0x478, 0x486 ), -- Ѹ + придыхание
	["ў"] = mw.ustring.char ( 0x479, 0x486 ), -- ѹ + придыхание
	["Ј"] = mw.ustring.char ( 0x406, 0x486, 0x301 ), -- І + придыхание + акут
	["¤"] = mw.ustring.char ( 0x482 ), -- ҂
	["Ґ"] = mw.ustring.char ( 0x410, 0x486 ), -- А + придыхание
	["¦"] = mw.ustring.char ( 0x445, 0x483 ), -- х҃
	["§"] = mw.ustring.char ( 0x447, 0x483 ), -- ч҃
	["Ё"] = mw.ustring.char ( 0x463, 0x300 ), -- ѣ̀
	["©"] = mw.ustring.char ( 0x441, 0x483 ), -- с҃
	["®"] = mw.ustring.char ( 0x440, 0x2de3 ), -- р + титло-д
	["Ї"] = mw.ustring.char ( 0x406, 0x486 ), -- І + придыхание
	["°"] = mw.ustring.char ( 0x306 ), -- ̆ ?
	["±"] = mw.ustring.char ( 0xa657, 0x486, 0x300 ), -- ia + придыхание + гравис
	--["І"] = mw.ustring.char ( 0x406 ), -- І
	["і"] = mw.ustring.char ( 0x457 ), -- ї
	["ґ"] = mw.ustring.char ( 0x430, 0x486 ), -- а + придыхание
	["µ"] = mw.ustring.char ( 0x443 ), -- у
	["ё"] = mw.ustring.char ( 0x463, 0x301 ), -- ѣ́
	["№"] = mw.ustring.char ( 0x430, 0x483 ), -- а҃
	--["є"] = mw.ustring.char ( 0x454 ), -- є
	["ј"] = mw.ustring.char ( 0x456, 0x486, 0x301 ), -- і + придыхание + акут
	--["Ѕ"] = mw.ustring.char ( 0x405 ), -- Ѕ
	--["ѕ"] = mw.ustring.char ( 0x455 ), -- ѕ
	["ї"] = mw.ustring.char ( 0x456, 0x486 ), -- і + придыхание

	["У"] = mw.ustring.char ( 0xa64a ), -- круглое У
	["Э"] = mw.ustring.char ( 0x462 ), -- Ѣ
	["Я"] = mw.ustring.char ( 0xa656 ), -- IA
	
	["у"] = mw.ustring.char ( 0xa64b ), -- круглое у
	["э"] = mw.ustring.char ( 0x463 ), -- ѣ
	["я"] = mw.ustring.char ( 0xa657 ), -- ia
	
}

function p.unicode ( frame )
	
	local str = frame.args[1]
	if str == nil or str == "" then return str end
	str = mw.ustring.gsub ( str, ".", map)
	return str
	
end

return p