Module:Anchor

    From Nonbinary Wiki
    Revision as of 06:14, 20 December 2013 by m>Mr. Stradivarius (Protected Module:Anchor: High-risk Lua module: 20,000 transclusions ([Edit=Allow only template editors and admins] (indefinite) [Move=Allow only template editors and admins] (indefinite)))

    Documentation for this module may be created at Module:Anchor/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 = {}
    	for _, anchor in ipairs(anchors) do
    		ret[#ret + 1] = '<span id="' .. anchor .. '"></span>'
    	end
    	return table.concat(ret)
    end
    
    return p