Module:Infobox interval region: Difference between revisions

No edit summary
m Cleanup and style
 
(24 intermediate revisions by one other user not shown)
Line 4: Line 4:
local u = require("Module:Utils")
local u = require("Module:Utils")
local infobox = require("Module:Infobox")
local infobox = require("Module:Infobox")
local rat = require("Module:Rational")
local yesno = require("Module:Yesno")
local yesno = require("Module:Yesno")


Line 19: Line 20:
local centslowerStrict = frame.args["centsLower"]
local centslowerStrict = frame.args["centsLower"]
local centsupperStrict = frame.args["centsUpper"]
local centsupperStrict = frame.args["centsUpper"]
local subregions = frame.args["subregions"]
local superregions = frame.args["superregions"]
local prevRegion = frame.args["prevRegion"]
local nextRegion = frame.args["nextRegion"]
local equave = frame.args["equave"]
local equave = frame.args["equave"]
local ji3 = frame.args["ji3"]
local ji3 = frame.args["ji3"]
Line 25: Line 30:
local ji11 = frame.args["ji11"]
local ji11 = frame.args["ji11"]
local ji13 = frame.args["ji13"]
local ji13 = frame.args["ji13"]
local jiPre = frame.args["ji"]
local ji = {}
for note in jiPre:gmatch("%d*/%d*") do
table.insert(ji, rat.parse(note))
end
local jihigh = frame.args["jiHigh"]
local jihigh = frame.args["jiHigh"]
local moses = frame.args["MOSes"]
local moses = frame.args["MOSes"]
Line 30: Line 41:
local data = {}
local data = {}
table.insert(data, {
table.insert(data, {
"Name",
"Name",
name
name
})
})
 
if centslower == nil or centslower == "" then
if centslower == nil or centslower == "" then
Line 46: Line 54:
table.insert(data, {
table.insert(data, {
"Lower bound",
"Lower bound",
centslower .. "¢ - " .. centslowerStrict .. "¢"
centslower .. "¢ " .. centslowerStrict .. "¢"
})
})
end
end
Line 58: Line 66:
table.insert(data, {
table.insert(data, {
"Upper bound",
"Upper bound",
centsupperStrict .. "¢ - " .. centsupper .. "¢"
centsupperStrict .. "¢ " .. centsupper .. "¢"
})
})
end
end
if moses ~= nil and moses ~= "" then
table.insert(data, {
"Generated [[MOS]]es",
moses
})
end
table.insert(data, {
table.insert(data, {
string.format("<div style=\"margin-top: 0.6em;\"><b>%s</b></div>", "[[JI]] intervals")
string.format("<div style=\"margin-top: 0.6em;\"><b>%s</b></div>", "Example [[JI]] intervals")
})
})
local jidata = ""
if ji3 ~= nil and ji3 ~= "" then
local q = 0
table.insert(data, {
for k, v in pairs(ji) do
"[[3-limit]]",
if q == 1 then
ji3
jidata = jidata .. "<br>"
})
end
jidata = jidata .. "[[" .. rat.as_ratio(v) .. "]] (" .. math.floor(rat.cents(v)*10 + 0.5)/10 .. "¢)"
q = 1
end
end
if ji5 ~= nil and ji5 ~= "" then
table.insert(data, {
"Intervals",
jidata
})
table.insert(data, {
string.format("<div style=\"margin-top: 0.6em;\"><b>%s</b></div>", "Related regions")
})
if complement ~= nil and complement ~= "" then
table.insert(data, {
table.insert(data, {
"[[5-limit]]",
"[[Complement]]",
ji5
complement
})
})
end
end
if ji7 ~= nil and ji7 ~= "" then
if subregions ~= nil and subregions ~= "" then
table.insert(data, {
table.insert(data, {
"[[7-limit]]",
"Subregions",
ji7
subregions
})
})
end
end
if ji11 ~= nil and ji11 ~= "" then
if superregions ~= nil and superregions ~= "" then
table.insert(data, {
table.insert(data, {
"[[11-limit]]",
"Superregion(s)",
ji11
superregions
})
})
end
end
if ji13 ~= nil and ji13 ~= "" then
local args = {
table.insert(data, {
["Adjacent Links"] = { "←&nbsp;"..(prevRegion or ""), (nextRegion or "").."&nbsp;" },
"[[13-limit]]",
["Title"] = "Interval&nbsp;region",
ji13
["Rows"] = data,
})
}
end
 
if jihigh ~= nil and jihigh ~= "" then
local result = infobox._infobox(args)
table.insert(data, {
"Other just intervals",
jihigh
})
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 or equave == "" then
table.insert(data, {
"[[Equave]]",
"[[" .. equave .. "]]"
})
else
table.insert(data, {
"[[Equave]]",
"[[2/1]]"
})
end
local result = infobox.build(
  "Interval&nbsp;region",
data
)
return frame:preprocess(debugg == true and "<pre>" .. result .. "</pre>" or result)
return frame:preprocess(debugg == true and "<pre>" .. result .. "</pre>" or result)