More actions
Documentation for this module may be created at Module:Repeat/doc
local utils = {}
function utils.big(frame)
local elm = frame.args[1] or frame:getParent().args[1]
local arg2 = frame.args[2] or frame:getParent().args[2]
local x = tonumber(arg2)
for i=1,x do
elm = "<big>" .. elm .. "</big>"
end
return elm
end
function utils.same(frame)
local elm = frame.args[1] or frame:getParent().args[1]
local arg2 = frame.args[2] or frame:getParent().args[2]
local x = tonumber(arg2)
local elm2 = elm
for i=2,x do
elm2 = elm2 .. elm
end
return elm2
end
function utils.gradient(frame)
local count1 = 2
local count2 = 2
local tab1 = frame.args[2]
local tab2 = frame:getParent().args[2]
local direction = frame.args[1] or frame:getParent().args[2]
local arglist
local argcount
local range
while tab1 ~= nil do
tab1 = frame.args[count1]
count1 = count1 + 1
end
while tab2 ~= nil do
tab2 = frame:getParent().args[count2]
count2 = count2 + 1
end
if count1 >= count2 then
arglist = frame.args
argcount = count1 - 2
else
arglist = frame:getParent().args
argcount = count2 - 2
end
range = arglist[2] .. ", "
for i=2,(argcount-1) do
local x = string.format("%.1f",100 * ((i-1)/(argcount-1))).. "% "
range = range .. arglist[i] .. " ".. x .. ", "
range = range .. arglist[i + 1] .. " " .. x .. ", "
end
range = range .. arglist[argcount] .. " 100%"
return "linear-gradient(to "..direction..", ".. range ..") no-repeat"
end
function utils.parentGradient(frame)
local count = 1
local args = frame:getParent().args
local direction = args["direction"]
local param = args[1]
while param ~= nil do
count = count + 1
param = args[count]
end
local range = args[1] .. ", "
for i=1,(count-2) do
local x = string.format("%.1f",100 * ((i)/(count-1))).. "% "
range = range .. args[i] .. " ".. x .. ", "
range = range .. args[i + 1] .. " " .. x .. ", "
end
range = range .. args[count-1] .. " 100%"
return "linear-gradient(to "..direction..", ".. range ..") no-repeat"
end
function utils.shadow(frame)
local color = frame.args[1] or frame:getParent().args[1] or "#000"
local x = {1,-1,-1,1,0,1,0,-1}
local y = {1,1,-1,-1,-1,0,1,0}
local tab = {}
for i=1,8 do
tab[i] = tostring(x[i]) .. "px " .. tostring(y[i]) .. "px " .. color
end
return table.concat(tab,",")
end
return utils