Модуль:PagenameAccent
Перейти к навигации
Перейти к поиску
Документация
См. также этот модуль на английском языке: Module:PagenameAccent. В нём может содержаться более полная или подробная информация.
Документация для этого модуля отсутствует. Создайте её.
local trim = mw.text.trim
local vowels_dict = {
["а"] = true,
["А"] = true,
["е"] = true,
["Е"] = true,
["ё"] = true,
["Ë"] = true,
["и"] = true,
["И"] = true,
["о"] = true,
["О"] = true,
["у"] = true,
["У"] = true,
["ы"] = true,
["Ы"] = true,
["э"] = true,
["Э"] = true,
["ю"] = true,
["Ю"] = true,
["я"] = true,
["Я"] = true,
}
local accents = {
["а"] = "а́",
["е"] = "е́",
["и"] = "и́",
["о"] = "о́",
["у"] = "у́",
["ы"] = "ы́",
["э"] = "э́",
["ю"] = "ю́",
["я"] = "я́",
}
return {
go = function(frame)
local text = frame.args.text
local vowels = {}
for _,v in pairs(mw.text.split(frame.args[1], ',')) do
vowels[tonumber(trim(v))] = true
end
local counter = 0
local result = ''
for _,v in ipairs(mw.text.split(text, '')) do
if vowels_dict[v] then counter = counter + 1 end
if vowels[counter] then
result = result .. (accents[v] or v)
else
result = result .. v
end
end
return result
end,
}