Difference between revisions of "Module:Check for deprecated parameters"
MyWikiBiz, Author Your Legacy — Saturday October 25, 2025
Jump to navigationJump to search (Pywikibot 6.4.0) |
(No difference)
|
Latest revision as of 20:56, 15 July 2021
Template:Module rating Template:High-use Template:Lua Module:Check for deprecated parameters may be appended to a template to check for uses of deprecated parameters. It will place the page in a specific category, and display a preview message, when it finds deprecated parameter uses.
Note: due to the nature of deprecations, this module will often have no templates implementing it.
Usage
{{#invoke:check for deprecated parameters|check
|category=[[Category:<category_name>|_VALUE_]]
| old_param1 = new_param1
| old_param2 = new_param2
| ....
| old_paramN = new_paramN
}}
See also
- Category:Deprecated parameters
- Module:Check for unknown parameters
- Module:Check for clobbered parameters – module that checks for conflicting parameters
-- This module may be used to compare the arguments passed to the parent
-- with a list of arguments, returning a specified result if an argument is
-- on the list
local p = {}
local function trim(s)
return s:match('^%s*(.-)%s*$')
end
local function isnotempty(s)
return s and trim(s) ~= ''
end
function p.check (frame)
-- create the table of deprecated values and their matching new value
local args = frame.args
local dep_values = {}
for k, v in pairs(args) do
if k == 'ignoreblank' or k == 'preview' or k == 'deprecated' then else
dep_values[k] = v
end
end
-- loop over the parent args and see if any are deprecated
local values = {}
local ignoreblank = isnotempty(frame.args['ignoreblank'])
local pargs = frame:getParent().args
for k, v in pairs(pargs) do
if ignoreblank then
if dep_values[k] and v~='' then
table.insert(values, k)
end
else
if dep_values[k] then
table.insert(values, k)
end
end
end
-- add results to the output tables
local res = {}
if #values > 0 then
local preview = frame.args['preview'] or
'Page using [['..frame:getParent():getTitle()..']] with deprecated parameter _VALUE_'
if isnotempty(preview) then
preview = require('Module:If preview')._warning({
preview
})
end
-- Kind of dangerous to trust that this is never nil, but I guess it's
-- preferable to display that the use of the module is broken rather than
-- have some sort of tracking category for pages which have an unknown
-- parent tracking template.
local category = frame.args['category']
for k, v in pairs(values) do
local c = category:gsub('_VALUE_', v)
table.insert(res, c)
if v == '' then
-- Fix odd bug for | = which gets stripped to the empty string
-- and breaks category links
v = ' '
end
local p = preview:gsub(
'_VALUE_',
'"'..v..'". Replace with "'..dep_values[v]..'".'
)
table.insert(res, p )
end
end
return table.concat(res)
end
return p