Module:Anchor/sandbox
This is the module sandbox page for Module:Anchor (diff). See also the companion subpage for test cases (run). |
This Lua module is used on approximately 50,000 pages and changes may be widely noticed. Test changes in the module's /sandbox or /testcases subpages. Consider discussing changes on the talk page before implementing them.
Transclusion count updated automatically (see documentation). |
This module is subject to page protection. It is a highly visible module in use by a very large number of pages, or is substituted very frequently. Because vandalism or mistakes would affect many pages, and even trivial editing might cause substantial load on the servers, it is protected from editing. |
This module is used in system messages. Changes to it can cause immediate changes to the Wikipedia user interface. To avoid large-scale disruption, any changes should first be tested in this module's /sandbox or /testcases subpage, or in your own user space. The tested changes can then be added in one single edit to this module. Please discuss any changes on the talk page before implementing them. |
This module implements {{anchor}}. Please see the Template:Anchor/doc page for documentation.
-- This module implements {{anchor}}.
local p = {}
function p.main(frame)
-- Algorithm:
-- Step 1. Create a local variable to store the anchors,
-- initialised to the empty string.
local ret = ""
-- Step 2. Create a iterator variable, initialised to 1.
local i = 1
-- Step 3. While there exists a positional argument referenced by
-- the iterator variable, do the following:
while not (frame.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="' .. frame.args[i] .. '"></span>'
-- (b) Increment the iterator variable.
i = i + 1
end
-- Step 4. Return the value of the local variable storing the anchors.
return ret
end
return p