Module:Deprecated archive

--[[
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>&#91;[[WP:ATODAY|link removed]]&#93;</sup>'
end

local function removed_link_label(label)
	if trim(label) == '' then
		return removed_link_marker()
	end

	-- Deliberately pass the title through as wikitext; bot-side safety checks
	-- happen before this module receives generated template parameters.
	return '<span style="text-decoration: underline dashed #ccc;">' ..
		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

Content Disclaimer

Informasi ini disarikan dari Wikipedia dan disajikan kembali untuk tujuan edukasi. Konten tersedia di bawah lisensi CC BY-SA 3.0. Kami tidak bertanggung jawab atas ketidakakuratan data yang bersumber dari kontribusi publik tersebut.

  1. The information displayed on this website is sourced in part or in whole from Wikipedia and has been adapted for the purpose of restating it. We strive to provide accurate and relevant information, however:
  2. There is no guarantee of absolute accuracy. Wikipedia is an open, collaborative project that can be edited by anyone, so information is subject to change.
  3. It is not intended to constitute professional advice. The content displayed is for informational and educational purposes only. For important decisions (e.g., medical, legal, or financial), please consult a professional.
  4. Content copyright. Wikipedia is licensed under the Creative Commons Attribution-ShareAlike License (CC BY-SA). This means that content may be reused with appropriate attribution and shared under a similar license.
  5. Responsible use. Any risk arising from the use of information from this website is entirely the responsibility of the user.