Module:Infobox AFDO: Difference between revisions

CompactStar (talk | contribs)
No edit summary
m Bugfix
 
(25 intermediate revisions by 4 users not shown)
Line 1: Line 1:
local p = {}
local p = {}
local u = require('Module:Utils')
local getArgs = require("Module:Arguments").getArgs
local infobox = require('Module:Infobox')
local infobox = require("Module:Infobox")
local u = require("Module:Utils")
local yesno = require("Module:Yesno")
 
function p.infobox_AFDO(frame)
function p.infobox_AFDO(frame)
local steps = frame.args['steps']
local args = getArgs(frame)
-- debug mode will disable the categories
local debug_mode = yesno(frame.args["debug"] or args["debug"], false)
local wtext = yesno(frame.args["wtext"] or args["wtext"])
local categories = ""
local steps = frame.args["steps"]
local stepnum = tonumber(steps)
local stepnum = tonumber(steps)
local dualfifth = stepnum % 2 == 1
local dualfifth = stepnum % 2 == 1
local fifth = math.ceil(steps/2)
local fifth = steps+math.ceil(steps/2)
local special_properties = ""
categories = categories .. "[[Category:AFDO|" .. string.rep("#", string.len (stepnum)) .. "]]"
-- prime test
local prime = ""
if u.is_prime(stepnum) then
prime = " (prime)"
-- if rat.eq(et.equave, 2) then
categories = categories .. "[[Category:Prime AFDO|" .. string.rep("#", string.len (stepnum)) .. "]]"
-- end
end
local infobox_data = {}
local infobox_data = {}
table.insert(infobox_data, {
table.insert(infobox_data, {
'Prime factorization',
"Prime factorization",
u._prime_factorization(stepnum)
u._prime_factorization(stepnum) .. prime
})
})
    if (dualfifth) then
    table.insert(infobox_data, {
"Dual sharp fifth",
fifth .. "/" .. steps .. " (" .. math.floor(math.log(fifth / steps) / math.log(2) * 1200 * 1000) / 1000 .. "c)"
})   
table.insert(infobox_data, {
"Dual flat fifth",
(fifth-1) .. "/" .. steps .. " (" .. math.floor(math.log((fifth - 1) / steps) / math.log(2) * 1200 * 1000) / 1000 .. "c)"
})
    else
table.insert(infobox_data, {
"Fifth",
fifth .. "/" .. steps .. " (" .. math.floor(math.log(fifth / steps) / math.log(2) * 1200 * 1000) / 1000 .. "c)"
})
    end
    if (special_properties ~= "") then
  table.insert(infobox_data, {"Special properties", special_properties})
  end


local result = infobox.build(
local result = infobox.build(
'<-<small>&nbsp;[[' .. (steps - 1).. 'afdo]]&nbsp;</small>' .. '[[' .. steps .. 'afdo]]' .. '<small>&nbsp;[[' .. (steps + 1).. 'afdo]]&nbsp;-></small>',
string.format("[[%safdo]]", steps),
infobox_data
infobox_data,
)
string.format("[[%safdo|&larr;&nbsp;%safdo]]", steps - 1, steps - 1),
string.format("[[%safdo|%safdo&nbsp;&rarr;]]", steps + 1, steps + 1)
)
if not debug_mode then
result = result .. categories
end
if wtext then
result = "<syntaxhighlight lang=\"wikitext\">" .. result .. "</syntaxhighlight>"
end
return result
return frame:preprocess(result)
end
end


return p
return p