Module:MOS scalesig: Difference between revisions
Jump to navigation
Jump to search
ArrowHead294 (talk | contribs) mNo edit summary |
ArrowHead294 (talk | contribs) mNo edit summary |
||
Line 8: | Line 8: | ||
local is_long = yesno(is_long, false) | local is_long = yesno(is_long, false) | ||
return (is_link == true | |||
and (is_long and mos.as_long_link(input_mos) or mos.as_link(input_mos)) | |||
or (is_long and mos.as_long_string(input_mos) or mos.as_string(input_mos))) | |||
end | end | ||
Line 27: | Line 25: | ||
function p.tester() | function p.tester() | ||
local input_mos = mos.new(5,2) | local input_mos = mos.new(5, 2) | ||
return p._mos_scalesig(input_mos, true, true) | return p._mos_scalesig(input_mos, true, true) | ||
end | end | ||
return p | return p |
Revision as of 13:19, 12 March 2025
Note: Do not invoke this module directly; use the corresponding template instead: Template:MOS scalesig.
This module formats a string into a mos scale signature, with non-breaking spaces. Scale signatures can optionally be formatted as a link to the scale's wiki page.
To include this module in other modules, uselocal mos_scalesig = require("Module:MOS scalesig")._mos_scalesig
.
local mos = require("Module:MOS")
local yesno = require("Module:Yesno")
local getArgs = require("Module:Arguments").getArgs
local p = {}
function p._mos_scalesig(input_mos, is_link, is_long)
local is_link = yesno(is_link, false)
local is_long = yesno(is_long, false)
return (is_link == true
and (is_long and mos.as_long_link(input_mos) or mos.as_link(input_mos))
or (is_long and mos.as_long_string(input_mos) or mos.as_string(input_mos)))
end
-- Wrapper function
function p.mos_scalesig(frame)
local args = getArgs(frame)
local input_mos = mos.parse(args["scalesig"])
local is_link = yesno(args["link"], false)
local is_long = yesno(args["long"], false)
return p._mos_scalesig(input_mos, is_link, is_long)
end
function p.tester()
local input_mos = mos.new(5, 2)
return p._mos_scalesig(input_mos, true, true)
end
return p