Module:Sandbox: Difference between revisions
Jump to navigation
Jump to search
No edit summary |
No edit summary |
||
Line 2: | Line 2: | ||
local getArgs | local getArgs | ||
--------------------------------------------------------------------- | |||
-- Argument processing | |||
--------------------------------------------------------------------- | |||
local function makeInvokeFunc(funcName) | local function makeInvokeFunc(funcName) | ||
return function (frame) | return function (frame) | ||
Line 12: | Line 15: | ||
end | end | ||
p. | --------------------------------------------------------------------- | ||
-- Implements {{item range average}} | |||
--------------------------------------------------------------------- | |||
p.itemRangeAverage = makeInvokeFunc('_itemRangeAverage') | |||
function p._itemRangeAverage(args) | |||
local prop = args[1] | |||
return prop | |||
end | |||
function p. | --------------------------------------------------------------------- | ||
-- Implements {{itemsize}} | |||
--------------------------------------------------------------------- | |||
p.itemsize = makeInvokeFunc('_itemsize') | |||
function p._itemsize(args) | |||
local size = args[1] or '1x_' | local size = args[1] or '1x_' | ||
local grid = args[2] or 78 | local grid = args[2] or 78 |
Revision as of 20:31, 24 July 2014
This page is not an actual Scribunto module. It exists to provide editors a place to create experimental modules.
Naming your modules
To keep things tidy, please use the following format to name your experimental modules:
Module:Sandbox/Your username/Module name
Cleaning up unused modules
Experimental modules may be deleted by admins upon request or after a long period of inactivity.
List of modules in this area
For a list of the experimental modules under Module:Sandbox, see Special:PrefixIndex/Module:Sandbox/.
The above documentation is transcluded from Module:Sandbox/doc.
Editors can experiment in this module's sandbox and testcases pages.
Subpages of this module.
Editors can experiment in this module's sandbox and testcases pages.
Subpages of this module.
local p = {}
local getArgs
---------------------------------------------------------------------
-- Argument processing
---------------------------------------------------------------------
local function makeInvokeFunc(funcName)
return function (frame)
if not getArgs then
getArgs = require('Module:Arguments').getArgs
end
local args = getArgs(frame)
return p[funcName](args)
end
end
---------------------------------------------------------------------
-- Implements {{item range average}}
---------------------------------------------------------------------
p.itemRangeAverage = makeInvokeFunc('_itemRangeAverage')
function p._itemRangeAverage(args)
local prop = args[1]
return prop
end
---------------------------------------------------------------------
-- Implements {{itemsize}}
---------------------------------------------------------------------
p.itemsize = makeInvokeFunc('_itemsize')
function p._itemsize(args)
local size = args[1] or '1x_'
local grid = args[2] or 78
local dim = mw.text.split(size, 'x', true)
if dim[1] == '_' then
if dim[2] == '_' then
dim[1] = grid
else
dim[1] = ''
end
else
dim[1] = dim[1] * grid
end
if dim[2] == '_' then
dim[2] = ''
else
dim[2] = 'x' .. dim[2] * grid
end
return dim[1] .. dim[2] .. 'px'
end
return p