Модуль:Title transformations: различия между версиями
Материал из FetbukWiki
https://ru.wikipedia.org/wiki/>QBA-bot м (Изменил уровень защиты Модуль:Title transformations: критический шаблон или модуль (добавление защиты от переименований) ([Редактирование=только администраторы] (бессрочно) [Переименование=только администраторы] (бессрочно))) |
м (1 версия импортирована) |
(нет различий)
|
Текущая версия от 22:53, 9 марта 2022
Для документации этого модуля может быть создана страница Модуль:Title transformations/doc
-- Этот модуль реализует {{заголовок}}
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