Модуль:Check for unknown parameters: различия между версиями

м
5 версий импортировано: Шаблон Ampbox и товарищи Википедия
/>Iniquity
(для тестов)
м (5 версий импортировано: Шаблон Ampbox и товарищи Википедия)
 
(не показано 5 промежуточных версий 4 участников)
Строка 35: Строка 35:
end
end
if isnotempty(preview) then  
if isnotempty(preview) then  
preview = '<div class="hatnote" style="color:red"><strong>Warning:</strong> ' .. preview .. ' (this message is shown only in preview).</div>'
preview = '<div class="hatnote" style="color:red"><strong>Предупреждение:</strong> ' .. preview .. ' (это сообщение видно только при предпросмотре страницы).</div>'
elseif preview == nil then
elseif preview == nil then
preview = unknown
preview = unknown
Строка 82: Строка 82:


return table.concat(res)
return table.concat(res)
end
function p.generate (frame)
local res = '{{#invoke:check for unknown parameters|check\n' ..
'|unknown=' .. frame.args['unknown'] .. '\n'
local checkerparams = {'ignoreblank', 'preview', 'showblankpositional'}
for _, v in pairs(checkerparams) do
if frame.args[v] then
res = res .. '|' .. v .. '=' .. frame.args[v] .. '\n'
end
end
local templatenamespace = frame.args[1]
local templatetitle = frame.args[2]
local pagepointer = mw.title.new(templatetitle, templatenamespace) -- именно такой порядок!
local text = pagepointer.getContent(pagepointer)
local params = {}
for param in string.gmatch(text, '\{\{\{([^\|\}]*)') do
params[#params+1] = mw.text.trim(param)
end
table.sort(params)
for k, v in pairs(params) do
if k == 1 or v ~= params[k-1] then
res = res .. '|' .. v
end
end
res = res .. '}}'
return res
end
end


return p
return p