Module:Infobox interval region
Documentation for this module may be created at Module:Infobox interval region/doc
-- EXTREMELY WIP
local p = {}
local u = require("Module:Utils")
local infobox = require("Module:Infobox")
local rat = require("Module:Rational")
local yesno = require("Module:Yesno")
function p.concatenate_tables(t1, t2)
for i=1, #t2 do
t1[#t1 + 1] = t2[i]
end
end
function p.infobox_IR(frame)
local name = frame.args["regionname"]
local complement = frame.args["complement"]
local centslower = frame.args["centsLowerWide"]
local centsupper = frame.args["centsUpperWide"]
local centslowerStrict = frame.args["centsLower"]
local centsupperStrict = frame.args["centsUpper"]
local equave = frame.args["equave"]
local ji3 = frame.args["ji3"]
local ji5 = frame.args["ji5"]
local ji7 = frame.args["ji7"]
local ji11 = frame.args["ji11"]
local ji13 = frame.args["ji13"]
local ji = load("return" .. frame.args["ji"])
local jihigh = frame.args["jiHigh"]
local moses = frame.args["MOSes"]
local data = {}
table.insert(data, {
"Name",
name
})
if centslower == nil or centslower == "" then
table.insert(data, {
"Lower bound",
centslowerStrict .. "¢"
})
else
table.insert(data, {
"Lower bound",
centslower .. "¢ - " .. centslowerStrict .. "¢"
})
end
if centsupper == nil or centsupper == "" then
table.insert(data, {
"Upper bound",
centsupperStrict .. "¢"
})
else
table.insert(data, {
"Upper bound",
centsupperStrict .. "¢ - " .. centsupper .. "¢"
})
end
table.insert(data, {
string.format("<div style=\"margin-top: 0.6em;\"><b>%s</b></div>", "[[JI]] intervals")
})
local jidata = ""
for k,v in pairs(ji) do
jidata = jidata .. "<br> [[" .. v .. "]] (" .. rat.cents(rat.parse(v)) .. "¢)"
end
table.insert(data, {
string.format("<div style=\"margin-top: 0.6em;\"><b>%s</b></div>", "Scale info")
})
if moses ~= nil and moses ~= "" then
table.insert(data, {
"[[MOS]]es",
moses
})
end
if equave ~= nil and equave ~= "" then
table.insert(data, {
"[[Equave]]",
"[[" .. equave .. "]]"
})
else
table.insert(data, {
"[[Equave]]",
"[[2/1]]"
})
end
local result = infobox.build(
"Interval region",
data
)
return frame:preprocess(debugg == true and "<pre>" .. result .. "</pre>" or result)
end
return p