Jump to content

Module:Anchor/sandbox

From Wikipedia, the free encyclopedia
This is an old revision of this page, as edited by Makyen (talk | contribs) at 22:00, 13 February 2014 (Move entity to within each inner span. This is to maintain compatibility with IE8. IE8 does not scroll the window to the correct position if the span with the ID does not have an entity.). The present address (URL) is a permanent link to this revision, which may differ significantly from the current revision.
-- This module implements {{anchor}}.

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

local p = {}

function p.main(frame)
	-- Get the positional arguments from #invoke, remove any nil values,
	-- and pass them to p._main.
	local args = getArgs(frame)
	local argArray = tableTools.compressSparseArray(args)
	return p._main(unpack(argArray))
end

function p._main(...)
	-- Generate the list of anchors.
	local anchors = {...}
	local ret = {}
	ret[#ret + 1] = '<span style="position: relative; top: -48px;z-index:-1;">'
	for _, anchor in ipairs(anchors) do
		ret[#ret + 1] = '<span id="' .. anchor .. '">&#8203;</span>'
	end
	ret[#ret + 1] = '</span>'
	return table.concat(ret)
end

return p