Module:Deprecated archive
Appearance
--[[
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
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