Module:Deprecated archive
Appearance
| This module is currently under extended confirmed protection. Extended confirmed protection prevents edits from all unregistered editors and registered users with fewer than 30 days tenure and 500 edits. The policy on community use specifies that extended confirmed protection can be applied to combat disruption, if semi-protection has proven to be ineffective. Extended confirmed protection may also be applied to enforce arbitration sanctions. Please discuss any changes on the talk page; you may submit an edit request to ask for uncontroversial changes supported by consensus. |
Usage
Implements {{Deprecated archive}}.
{{#invoke:Deprecated archive|function_name}}
| This module has not been added to any categories. Please help out by adding categories to it so that it can be listed with similar modules. |
--[[
Simple shell for {{Deprecated archive}}.
The template renders a plain label followed by a visible marker indicating that
the original archive link was removed.
]]
require('strict')
local p = {}
local tracking_category = '[[Category:Deprecated archive template links]]'
local positional_parameter_error =
'<span style="font-size:100%" class="error citation-comment">(Positional parameters ignored)</span>'
local function trim(value)
if value == nil then
return ''
end
return mw.text.trim(tostring(value))
end
local function is_set(value)
return trim(value) ~= ''
end
local function get_args(frame)
local args = {}
local parent = frame and frame:getParent()
if parent then
for key, value in pairs(parent.args) do
if is_set(value) then
args[key] = value
end
end
end
if frame then
for key, value in pairs(frame.args) do
if is_set(value) then
args[key] = value
end
end
end
return args
end
local function removed_link_marker()
return '<sup>[[[WP:ATODAY|link removed]]]</sup>'
end
local function removed_link_label(label)
if trim(label) == '' then
return removed_link_marker()
end
label = mw.text.decode(label, true)
return '<span style="text-decoration: underline dashed #ccc;">' ..
mw.text.nowiki(label) ..
'</span>' .. removed_link_marker()
end
local function has_positional_parameters(args)
for key, _ in pairs(args) do
if type(key) == 'number' then
return true
end
end
return false
end
function p._main(args)
local archive = trim(args.url)
local label = trim(args.title)
local positional_error = has_positional_parameters(args) and positional_parameter_error or ''
-- Shell parameters for future maintenance tooling; intentionally not rendered.
local _ = { archive = archive }
return removed_link_label(label) .. positional_error .. tracking_category
end
function p.main(frame)
return p._main(get_args(frame))
end
return p