Module:MOS scalesig: Difference between revisions

Ganaram inukshuk (talk | contribs)
missed a variable
ArrowHead294 (talk | contribs)
mNo edit summary
 
(9 intermediate revisions by 3 users not shown)
Line 1: Line 1:
local p = {}
local getArgs = require("Module:Arguments").getArgs
local mos = require("Module:MOS")
local mos = require("Module:MOS")
local yesno = require("Module:Yesno")
local yesno = require("Module:Yesno")
local getArgs = require("Module:Arguments").getArgs
local p = {}


-- Function to format a string into a mos scalesig, with nonbreaking spaces.
-- "Main" function; calls appropriate mos-string functions
-- Options are:
-- - is_long - Whether to use "xL ys<p/q>" or "xL ys (p/q-equivalent)". Only
--  applies for nonoctave mosses, as a scalesig without an equave is assumed to
--  be 2/1-equivalent.
-- - is_link - Whether the scalesig is a link to its wiki page.
function p._mos_scalesig(input_mos, is_link, is_long)
function p._mos_scalesig(input_mos, is_link, is_long)
local is_link = yesno(is_link, false)
local is_link = yesno(is_link, false) -- Should the the scalesig be a link?
local is_long = yesno(is_long, false)
local is_long = yesno(is_long, false) -- Should the scalesig be in the long form "xL ys (p/q-equivalent)"?
if is_link then
return (is_link == true
return is_long and mos.as_long_link(input_mos) or mos.as_link(input_mos)
and (is_long and mos.as_long_link(input_mos) or mos.as_link(input_mos))
else
or (is_long and mos.as_long_string(input_mos) or mos.as_string(input_mos)))
return is_long and mos.as_long_string(input_mos) or mos.as_string(input_mos)
end
end
end


Line 28: Line 22:
local is_link = yesno(args["link"], false)
local is_link = yesno(args["link"], false)
local is_long = yesno(args["long"], false)
local is_long = yesno(args["long"], false)
local debugg = yesno(args["debug"])
local result = p._mos_scalesig(input_mos, is_link, is_long)
-- Debugger option
if debugg == true then
result = "<syntaxhighlight lang=\"wikitext\">" .. result .. "</syntaxhighlight>"
end
return p._mos_scalesig(input_mos, is_link, is_long)
return frame:preprocess(result)
end
end


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