Module:Infobox AFDO: Difference between revisions
Jump to navigation
Jump to search
Undo revision 184877 by ArrowHead294 (talk). The debug mode is used in several places on the wiki where categories should be disabled Tag: Undo |
m Bugfix |
||
| (2 intermediate revisions by one other user not shown) | |||
| Line 1: | Line 1: | ||
local p = {} | local p = {} | ||
local getArgs = require("Module:Arguments").getArgs | |||
local infobox = require("Module:Infobox") | |||
local u = require("Module:Utils") | local u = require("Module:Utils") | ||
local yesno = require("Module:Yesno") | local yesno = require("Module:Yesno") | ||
function p.infobox_AFDO(frame) | function p.infobox_AFDO(frame) | ||
local args = getArgs(frame) | |||
-- debug mode will disable the categories | -- debug mode will disable the categories | ||
local debug_mode = yesno(frame.args["debug"]) | local debug_mode = yesno(frame.args["debug"] or args["debug"], false) | ||
local wtext = yesno(frame.args["wtext"] or args["wtext"]) | |||
local categories = "" | local categories = "" | ||
| Line 32: | Line 36: | ||
}) | }) | ||
if(dualfifth) then | if (dualfifth) then | ||
table.insert(infobox_data, { | table.insert(infobox_data, { | ||
"Dual sharp fifth", | "Dual sharp fifth", | ||
| Line 54: | Line 58: | ||
local result = infobox.build( | local result = infobox.build( | ||
"[[ | string.format("[[%safdo]]", steps), | ||
infobox_data, | infobox_data, | ||
"[[ | string.format("[[%safdo|← %safdo]]", steps - 1, steps - 1), | ||
"[[ | string.format("[[%safdo|%safdo →]]", steps + 1, steps + 1) | ||
) | ) | ||
if not debug_mode then | if not debug_mode then | ||
result = result .. categories | result = result .. categories | ||
end | |||
if wtext then | |||
result = "<syntaxhighlight lang=\"wikitext\">" .. result .. "</syntaxhighlight>" | |||
end | end | ||
Latest revision as of 14:56, 15 December 2025
- This module should not be invoked directly; use its corresponding template instead: Template:Infobox AFDO.
Generates an infobox providing information about a given arithmetic frequency division of the octave.
| Introspection summary for Module:Infobox AFDO | ||||||||||||||||||||||
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
|
| |||||||||||||||||||||
No function descriptions were provided. The Lua code may have further information.
local p = {}
local getArgs = require("Module:Arguments").getArgs
local infobox = require("Module:Infobox")
local u = require("Module:Utils")
local yesno = require("Module:Yesno")
function p.infobox_AFDO(frame)
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 dualfifth = stepnum % 2 == 1
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 = {}
table.insert(infobox_data, {
"Prime factorization",
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(
string.format("[[%safdo]]", steps),
infobox_data,
string.format("[[%safdo|← %safdo]]", steps - 1, steps - 1),
string.format("[[%safdo|%safdo →]]", steps + 1, steps + 1)
)
if not debug_mode then
result = result .. categories
end
if wtext then
result = "<syntaxhighlight lang=\"wikitext\">" .. result .. "</syntaxhighlight>"
end
return frame:preprocess(result)
end
return p