This module is used to execute the template {{Crosscolor}}, please go to the template page to read about the specific usage.
-- Co-creator: User:サンムル
local p = {}
function p._main(args,toggle)
local texts = {}
local colors = {}
for k, v in pairs(args) do
if type(k) == 'string' then --If it's a string, then it matches a string starting with "c"
local index = k:match "^c(%d+)$"
if index then colors[tonumber(index)] = v end
else --It's a number
texts[k] = v
end
end
colors[0] = colors[#colors] -- Output the divisor field when the remainder is equal to 0
--Rendering section
local root = mw.html.create 'span'
for i, v in ipairs(texts) do
root:tag 'span'
:wikitext(v)
:css {color = colors[i%#colors],
["data-color"] = toggle and color}
:addClass(toggle and 'colorToggleBlock')
end
return root
end
function p.main ( frame )
local wrappers = { ['Template:Crosscolor'] = true, ['Template:交叉顏色護眼版'] = true }
local toggle = frame.args["toggle"]
local parent = frame:getParent()
if parent and wrappers[parent:getTitle()] then
frame = parent
end
local args = frame.args
return p._main(args,toggle)
end
return p