Difference between revisions of "Module:Anchor/sandbox"

From blackwiki
Jump to navigation Jump to search
blackwiki>Makyen
(put z-index:-1; in first span. IE appears to be treating the template differently than the testcase. This is one difference.)
blackwiki>Makyen
(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.)
Line 20: Line 20:
 
ret[#ret + 1] = '<span style="position: relative; top: -48px;z-index:-1;">'
 
ret[#ret + 1] = '<span style="position: relative; top: -48px;z-index:-1;">'
 
for _, anchor in ipairs(anchors) do
 
for _, anchor in ipairs(anchors) do
ret[#ret + 1] = '<span id="' .. anchor .. '"></span>'
+
ret[#ret + 1] = '<span id="' .. anchor .. '">&#8203;</span>'
 
end
 
end
ret[#ret + 1] = '&#8203;</span>'
+
ret[#ret + 1] = '</span>'
 
return table.concat(ret)
 
return table.concat(ret)
 
end
 
end
  
 
return p
 
return p

Revision as of 22:00, 13 February 2014

Documentation for this module may be created at Module:Anchor/sandbox/doc

-- 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