Модуль:Title transformations
Для документации этого модуля может быть создана страница Модуль: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