Модуль:Прыклад з найменьнямі парамэтраў
Выгляд
Дакумэнтацыю да гэтага модуля можна стварыць у Модуль:Прыклад з найменьнямі парамэтраў/Дакумэнтацыя
-- Гэты модуль выкарыстоўвае шаблён {{Прыклад з найменьнямі парамэтраў}}.
local p = {}
local function makeParam(s)
local lb = '{'
local rb = '}'
return lb:rep(3) .. s .. rb:rep(3)
end
local function italicize(s)
return "''" .. s .. "''"
end
local function plain(s)
return s
end
function p._main(args, frame)
-- Знайсьці, як мы хочам фарматаваць аргумэнты шаблёну.
local formatFunc
if args['_вывад'] == 'курсіў' or args['_вывад'] == 'italic' then
formatFunc = italicize
elseif args['_вывад'] == 'просты' or args['_вывад'] == 'plain' then
formatFunc = plain
else
formatFunc = makeParam
end
-- Будуем табліцу з аргумэнтаў шаблёну.
local targs = {}
for k, v in pairs(args) do
if type(k) == 'number' then
targs[v] = formatFunc(v)
elseif not k:find('^_') then
targs[k] = v
end
end
targs['безкат'] = 'так';
targs['катэгорыі'] = 'не';
targs['дэма'] = 'так';
-- Знаходзім назву шаблёну.
local template
if args['_шаблён'] then
template = args['_шаблён']
else
local currentTitle = mw.title.getCurrentTitle()
if currentTitle.prefixedText:find('/пясочніца$') then
template = currentTitle.prefixedText
else
template = currentTitle.basePageTitle.prefixedText
end
end
-- Выклікаем шаблён з аргумэнтамі.
frame = frame or mw.getCurrentFrame()
local success, result = pcall(
frame.expandTemplate,
frame,
{title = template, args = targs}
)
if success then
return result
else
return ''
end
end
function p.main(frame)
local args = require('Модуль:Аргумэнты').getArgs(frame, {
wrappers = 'Шаблён:Прыклад з найменьнямі парамэтраў'
})
return p._main(args, frame)
end
return p