Модуль: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 == 'со строчной'...») |
Импортёр (обсуждение | вклад) м (1 версия импортирована) |
(нет различий)
|
Текущая версия от 12:19, 2 мая 2024
Этот модуль реализует {{Заголовок}}.
-- Этот модуль реализует {{Заголовок}}
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