|
|
| (10 intermediate revisions by 2 users not shown) |
| Line 1: |
Line 1: |
| local ordinal = require("Module:Ordinal")._ordinal | | local getArgs = require("Module:Arguments").getArgs |
| local yesno = require("Module:yesno") | | local yesno = require("Module:Yesno") |
| | |
| local p = {} | | local p = {} |
|
| |
|
| | -- Main function called by navigation box templates |
| function p._navbar(name, mode, text, namespace) | | function p._navbar(name, mode, text, namespace) |
| mode = mode or "" | | mode = mode or "" |
| Line 10: |
Line 12: |
| local p_name = string.format("%s:%s", namespace, name) | | local p_name = string.format("%s:%s", namespace, name) |
| local p_talk_name = string.format("%s talk:%s", namespace, name) | | local p_talk_name = string.format("%s talk:%s", namespace, name) |
| local p_edit_name = "special:editpage/" .. p_name | | local p_edit_name = "Special:EditPage/" .. p_name |
| local s = " • " | | local s = " • " |
| | local links = (mode == mini and {"V", "T", "E"} or {"View", "Talk", "Edit"}) |
| | | |
| return "<span style=\"font-size: 0.75em; font-weight: normal; font-style: normal;\">" | | return string.format("<span style=\"font-size: 0.75em; font-weight: normal; font-style: normal;\">%s[[%s|%s]]%s[[%s|%s]]%s[[%s|%s]]</span>", |
| .. text
| | text, p_name, links[1], s, p_talk_name, links[2], s, p_edit_name, links[3]) |
| .. string.format(mode == "mini" and "[[%s|V]]%s[[%s|T]]%s[[%s|E]]" or "[[%s|View]]%s[[%s|Talk]]%s[[%s|Edit]]",
| |
| p_name, s, p_talk_name, s, p_edit_name)
| |
| .. "</span>"
| |
| end | | end |
|
| |
|
| | -- Wrapper function for [[Template:Navbar]] |
| function p.navbar(frame) | | function p.navbar(frame) |
| | local args = getArgs(frame) |
| local name = frame.args["name"] | | local name = frame.args["name"] |
| local namespace = frame.args["namespace"] | | local namespace = frame.args["namespace"] |
| local mode = frame.args["mode"] | | local mode = frame.args["mode"] |
| local text = frame.args["text"] | | local text = frame.args["text"] |
| | local wtext = yesno(frame.args["wtext"] or args["wtext"]) |
| | local result = p._navbar(name, mode, text, namespace) |
| | | |
| return p._navbar(name, mode, text, namespace) | | -- Debugger option |
| end
| | if wtext then |
| | | result = "<syntaxhighlight lang=\"wikitext\">" .. result .. "</syntaxhighlight>" |
| function p.lumatone_map(frame)
| |
| local arpn = frame:preprocess("{{ARTICLEROOTPAGENAME}}")
| |
| local debugg = yesno(frame.args["debug"])
| |
| local a = arpn:match("(%d+)%s*[Ee][Dd][2Oo]")
| |
| local x = tonumber(frame.args["edo"]) or tonumber(a)
| |
| local thresh = 5
| |
|
| |
| local idxn1 = x - 1
| |
| local idxn2 = x - 2
| |
| local idxn3 = x - 3
| |
| local idx1 = x + 1
| |
| local idx2 = x + 2
| |
| local idx3 = x + 3
| |
|
| |
| local result = "<br />{{Navbox"
| |
| .. "|name=Navbox Lumatone"
| |
| .. "|Title=[[Lumatone|Lumatone mappings]]"
| |
| .. "|Data 1={{centre|"
| |
|
| |
| if x >= thresh + 4 then | |
| result = result .. "'''←''' " | |
| end
| |
|
| |
| if x >= thresh + 3 then
| |
| result = result .. string.format("[[Lumatone mapping for %sedo|%sedo]] • ", idxn3, idxn3)
| |
| end
| |
|
| |
| if x >= thresh + 2 then
| |
| result = result .. string.format("[[Lumatone mapping for %sedo|%sedo]] • ", idxn2, idxn2)
| |
| end
| |
|
| |
| if x >= thresh + 1 then
| |
| result = result .. string.format("[[Lumatone mapping for %sedo|%sedo]] • ", idxn1, idxn1)
| |
| end
| |
|
| |
| result = result .. string.format("'''Lumatone mapping for %sedo''' • "
| |
| .. "[[Lumatone mapping for %sedo|%sedo]] • "
| |
| .. "[[Lumatone mapping for %sedo|%sedo]] • "
| |
| .. "[[Lumatone mapping for %sedo|%sedo]] '''→'''}}"
| |
| .. "}}", x, idx1, idx1, idx2, idx2, idx3, idx3)
| |
| | |
| return frame:preprocess(debugg == true and "<pre>" .. result .. "</pre>" or result)
| |
| end
| |
| | |
| function p.frac_octave(frame)
| |
| local arpn = frame:preprocess("{{ARTICLEROOTPAGENAME}}")
| |
| local debugg = yesno(frame.args["debug"])
| |
| local a = arpn:match("(%d+)%a+[%s%-]*")
| |
| local x = tonumber(frame.args["f"]) or tonumber(a)
| |
| local thresh = 2
| |
|
| |
| local idxn1 = ordinal(x - 1)
| |
| local idxn2 = ordinal(x - 2)
| |
| local idxn3 = ordinal(x - 3)
| |
| local idxn4 = ordinal(x - 4)
| |
| local idx1 = ordinal(x + 1)
| |
| local idx2 = ordinal(x + 2)
| |
| local idx3 = ordinal(x + 3)
| |
| local idx4 = ordinal(x + 4)
| |
|
| |
| local result = "<br />{{Navbox"
| |
| .. "| name=Navbox fractional-octave"
| |
| .. "| Title=[[Fractional-octave temperaments]]"
| |
| .. "| Data 1={{centre|"
| |
|
| |
| if x >= thresh + 4 then
| |
| result = result .. "'''←''' "
| |
| end
| |
|
| |
| if x >= thresh + 3 then
| |
| result = result .. string.format("[[%s-octave temperaments|%s]] • ", idxn4, idxn4)
| |
| end
| |
|
| |
| if x >= thresh + 2 then
| |
| result = result .. string.format("[[%s-octave temperaments|%s]] • ", idxn3, idxn3)
| |
| end
| |
|
| |
| if x >= thresh + 1 then
| |
| result = result .. string.format("[[%s-octave temperaments|%s]] • ", idxn2, idxn2)
| |
| end | | end |
| | | |
| if x >= thresh then
| | return frame:preprocess(result) |
| result = result .. string.format("[[%s-octave temperaments|%s]] • ", idxn1, idxn1)
| |
| end
| |
|
| |
| result = result .. string.format("'''%s-octave''' • "
| |
| .. "[[%s-octave temperaments|%s]] • "
| |
| .. "[[%s-octave temperaments|%s]] • "
| |
| .. "[[%s-octave temperaments|%s]] • "
| |
| .. "[[%s-octave temperaments|%s]] '''→'''}}"
| |
| .. "}}", ordinal(x), idx1, idx1, idx2, idx2, idx3, idx3, idx4, idx4)
| |
| | |
| return frame:preprocess(debugg == true and "<pre>" .. result .. "</pre>" or result) | |
| end | | end |
|
| |
|
| return p | | return p |