▶️
Planeshift.
The documentation for this module can be found at Template:Calculate.
You may be forwarded to another wiki language, in case a translation is not available.
Tests
Lua error in package.lua at line 80: module 'Module:Error' not found.
Dependencies
- Module:Error
- Module:Arguments
local error = require( 'Module:Error' ).main
local getArgs = require( 'Module:Arguments' ).main
local p = {}
function p.main( frame )
local args = getArgs()
return p._main( args )
end
function p._main( args )
if args[1] then
if args['v1'] then
local output = {}
local level = 1
local v1 = string.gsub( args['v1'], '%%', '%%%%' )
for value in mw.text.gsplit( v1, '/', plain ) do
local calc = string.gsub( args[1], 'v1', value )
local n = 2
while args['v' .. n] do
local temp_value = mw.text.split( string.gsub( args['v' .. n], '%%', '%%%%' ), '/', plain )
calc = string.gsub( calc, 'v' .. n, temp_value[level] )
n, level = n + 1, level + 1
if level > 4 then level = 1 end
end
if args[2] then
table.insert( output, p.expr( '(' .. calc .. ')*100' ) .. '%' )
else
table.insert( output, p.expr( calc ) )
end
end
return table.concat( output, '/' )
else
return p.expr( args[1] )
end
else
return error( 'Check your input.' )
end
end
function p.expr( calc )
return mw.getCurrentFrame():callParserFunction{ name = '#expr', args = string.gsub( calc, '%%', '/100' ) }
end
return p