Модуль:Title transformations
Этот модуль реализует {{заголовок}}.
-- Этот модуль реализует {{заголовок}}
local p = {}
function p._main(args, frame, title)
args = args or {}
frame = frame or mw.getCurrentFrame()
title = title or mw.title.getCurrentTitle()
local italics, italicsAll, lowerCase = false, false, false
for k, v in pairs(args) do
if type(k) == 'number' then
if v == 'со строчной буквы' or v == 'с маленькой буквы' or v == 'со строчной' or v == 'с маленькой' then
lowerCase = true
end
if v == 'курсивом' then
italics = true
italicsAll = false
end
if v == 'курсивом весь' then
italicsAll = true
italics = false
end
end
end
local result = title.text
if lowerCase then
result = mw.language.getContentLanguage():lcfirst(result)
end
if italics or italicsAll then
local prefix, parentheses = mw.ustring.match(result, '^(.+) (%([^%(%)]+%))$')
if prefix and parentheses and italicsAll == false then
result = string.format("<i>%s</i> %s", prefix, parentheses)
else
result = string.format("<i>%s</i>", result)
end
end
if title.namespace ~= 0 then
result = title.nsText:gsub('_', ' ') .. ':' .. result
end
if args['заголовок'] then
return result
else
return frame:callParserFunction('DISPLAYTITLE', result, 'noerror')
end
end
function p.main(frame)
local args = require('Module:Arguments').getArgs(frame, {
wrappers = 'Шаблон:Заголовок'
})
local title
if args['заголовок'] then
title = mw.title.new(args['заголовок'])
end
return p._main(args, frame, title)
end
return p