Module:Script-IS: Difference between revisions
Jump to navigation
Jump to search
(added entire combo support) |
No edit summary |
||
Line 42: | Line 42: | ||
for index, input in ipairs(inputs) do | for index, input in ipairs(inputs) do | ||
local button = string.sub(input, -1, -1) | local button = string.sub(input, -1, -1) | ||
local clr = getColor(button) | |||
local | |||
local start = "<span style=\"font-weight:bold;color:" | local start = "<span style=\"font-weight:bold;color:" | ||
local mid = ";\">" | local mid = ";\">" | ||
local endstr = "</span>" | local endstr = "</span>" | ||
local cterm = start .. | local cterm = start .. clr .. mid .. input .. endstr | ||
inputs[index] = cterm | inputs[index] = cterm | ||
end | end | ||
Line 67: | Line 53: | ||
return ret | return ret | ||
end | |||
local function getColor(btn) | |||
--recognized buttons | |||
switch = { | |||
["L"] = "#81D5FE", | |||
["M"] = "#FEFE20", | |||
["H"] = "#FE8E71", | |||
["S"] = "#F3A4FE", | |||
["G"] = "#F3A4FE", | |||
["X"] = "#808080" | |||
} | |||
local color = switch[btn] | |||
if (color==nil) then | |||
color = "#000000" | |||
end | |||
return color | |||
end | end | ||
return p | return p |
Revision as of 06:59, 27 May 2023
Documentation for this module may be created at Module:Script-IS/doc
local p = {}
--custom script for the IS wiki, feel free to make a copy of it or take any part of the code for other wikis
--split multiple properties passed as a single param to a template call and return the converted property text
function p.multiprop(frame)
local str = frame.args[1]
local sep = ","
local t={}
--split properties
for str in string.gmatch(str, "([^"..sep.."]+)") do
table.insert(t, str)
end
--get the string done
for index, prop in ipairs(t) do
if prop:sub(1,1) == "%s" then
prop = prop:sub(2,-1)
end
expanded = frame:expandTemplate{ title="Property-IS", args={prop,"IGNOREPROPERTYERROR"}}
t[index] = expanded
end
ret = table.concat(t,", ")
return ret
end
--color code and format game inputs
--supports entire combos as arguments
function p.gameInput(frame)
local str = frame.args[1]
local sep = " "
local inputs = {}
--split combo terms
for str in string.gmatch(str, "([^"..sep.."]+)") do
table.insert(inputs, str)
end
for index, input in ipairs(inputs) do
local button = string.sub(input, -1, -1)
local clr = getColor(button)
local start = "<span style=\"font-weight:bold;color:"
local mid = ";\">"
local endstr = "</span>"
local cterm = start .. clr .. mid .. input .. endstr
inputs[index] = cterm
end
local ret = table.concat(inputs, " ")
return ret
end
local function getColor(btn)
--recognized buttons
switch = {
["L"] = "#81D5FE",
["M"] = "#FEFE20",
["H"] = "#FE8E71",
["S"] = "#F3A4FE",
["G"] = "#F3A4FE",
["X"] = "#808080"
}
local color = switch[btn]
if (color==nil) then
color = "#000000"
end
return color
end
return p