Module:Sortkey

From blackwiki
Revision as of 01:43, 28 June 2018 by blackwiki>Johnuniq (Module:Arguments defaults to removing blank arguments but gives an error with string.find; for example List of rampage killers (Asia) uses {{hs|}})
Jump to navigation Jump to search

This module sanitizes and escapes sortkeys so that they can be used inside the data-sort-value attribute of HTML tags in combination with table sorting. Use it when you cannot be certain that the provided sortkey input is a correct sortkey.

Usage

{{#invoke:Sortkey|escape|sortkey to sanitize}}



local getArgs = require('Module:Arguments').getArgs

local p = {}

function p._encode(sortkey)
	-- Protect against sortkey nesting.
	-- Example: {{sort|{{dts|2013|07|07}}|{{dts|1990|12|01}}}}
	if string.find(sortkey, "sortkey") or string.find(sortkey, "data-sort-value") then
		return "";
	end
    return mw.text.encode(sortkey)
end

function p.encode(frame)
	local args = getArgs(frame);
	return p._encode(args[1] or "")
end

return p