Difference between revisions of "Module:Anchor/sandbox"

From blackwiki
Jump to navigation Jump to search
blackwiki>Renamed user awfwvowjvwrvnwio
(Copying from Module:Anchor.)
blackwiki>Renamed user awfwvowjvwrvnwio
(Writing my version of the module (only uses Module:Arguments))
Line 2: Line 2:
  
 
local getArgs = require('Module:Arguments').getArgs
 
local getArgs = require('Module:Arguments').getArgs
local tableTools = require('Module:TableTools')
 
  
 
local p = {}
 
local p = {}
  
 
function p.main(frame)
 
function p.main(frame)
-- Get the positional arguments from #invoke, remove any nil values,
+
-- Faster method implemented by Luis150902
-- and pass them to p._main.
+
-- Step 1. Get the arguments.
 
local args = getArgs(frame)
 
local args = getArgs(frame)
local argArray = tableTools.compressSparseArray(args)
+
-- Step 2. Create a local variable to store the anchors,
return p._main(unpack(argArray))
+
--   initialised to the empty string.
end
+
local ret = ""
 
+
-- Step 3. Create a iterator variable, initialised to 1.
function p._main(...)
+
local i = 1
-- Generate the list of anchors.
+
-- Step 4. While there exists a positional argument referenced by
local anchors = {...}
+
--  the iterator variable, do the following:
local ret = {}
+
    while not args[i] == nil do
for _, anchor in ipairs(anchors) do
+
    -- (a) Add a empty span whose id is the value of the argument
ret[#ret + 1] = '<span id="' .. anchor .. '"></span>'
+
    --  to the local variable storing the anchors;
end
+
        ret = ret .. "<span id=\"" .. args[i] .. "></span>"
return table.concat(ret)
+
        -- (b) Increment the iterator variable.
 +
        i = i + 1
 +
    end
 +
    -- Step 5. Return the value of the local variable storing the anchors.
 +
    return ret
 
end
 
end
  
 
return p
 
return p

Revision as of 11:42, 23 December 2016

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

-- This module implements {{anchor}}.

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

local p = {}

function p.main(frame)
	-- Faster method implemented by Luis150902
	-- Step 1. Get the arguments.
	local args = getArgs(frame)
	-- Step 2. Create a local variable to store the anchors,
	--   initialised to the empty string.
	local ret = ""
	-- Step 3. Create a iterator variable, initialised to 1.
	local i = 1
	-- Step 4. While there exists a positional argument referenced by
	--   the iterator variable, do the following:
    while not args[i] == nil do
    	-- (a) Add a empty span whose id is the value of the argument
    	--   to the local variable storing the anchors;
        ret = ret .. "<span id=\"" .. args[i] .. "></span>"
        -- (b) Increment the iterator variable.
        i = i + 1
    end
    -- Step 5. Return the value of the local variable storing the anchors.
    return ret
end

return p