Module:Infobox regtemp

Revision as of 05:31, 19 October 2024 by Lériendil (talk | contribs) (copied from infobox AFDO)
(diff) ← Older revision | Latest revision (diff) | Newer revision → (diff)
Module documentation[view] [edit] [history] [purge]
This module should not be invoked directly; use its corresponding template instead: Template:Infobox regtemp.
Module:Infobox regtemp is a draft module. It is incomplete and may not be in active development. If possible, editors are encouraged to help with its development. In the meantime, editors should avoid using this module across the Xenharmonic Wiki, except for testing.

This module generates an infobox providing information about a given regular temperament.

Introspection summary for Module:Infobox regtemp 
Functions provided (1)
Line Function Params
5 infobox_RT (invokable) (frame)
Lua modules required (2)
Variable Module Functions used
infobox Module:Infobox build
u Module:Utils dependency not used

No function descriptions were provided. The Lua code may have further information.


local p = {}
local u = require("Module:Utils")
local infobox = require("Module:Infobox")

function p.infobox_RT(frame)
	
	-- no real math functionality... yet
	local name = frame.args["tempname"]
	
	local subgroup = frame.args["subgroup"]
	local basis = frame.args["commas"]
	
	local edo_first = frame.args["edo_first"]
	local edo1 = tonumber(edo_first)
	local edo_second = frame.args["edo_second"]
	local edo2 = tonumber(edo_second)
	
	local tuning = frame.args["tuning"]
	local genfrac = frame.args["genfrac"]
	local method = frame.args["method"]
	
	local mos = frame.args["mosses"]
	local ploidacot = frame.args["ploidacot"]
	local limit1 = frame.args["lim1"]
	local comp1 = frame.args["comp1"]
	local acc1 = frame.args["acc1"]
	local limit2 = frame.args["lim2"]
	local comp2 = frame.args["comp2"]
	local acc2 = frame.args["acc2"]
	
	local infobox_data = {}
	table.insert(infobox_data, {
		"Subgroups",
		subgroup
	})

	table.insert(infobox_data, {
		"Comma basis",
		commas
	})

	table.insert(infobox_data, {
		"Edo join",
		"[[" .. edo_first .. "edo|" .. edo_first .. "]] & [[" .. edo_second .. "edo|" .. edo_second .. "]]"
	})

	table.insert(infobox_data, {
		"MOS scales",
		mos
	})

	table.insert(infobox_data, {
		"Ploidacot",
		ploidacot
	})

	table.insert(infobox_data, {
		"Minmax error",
		"(" .. limit1 .. ") " .. acc1 .. "c; <br> (" .. limit2 .. ") " .. acc2 .. "c"
	})

	table.insert(infobox_data, {
		"Target scale size",
		"(" .. limit1 .. ") " .. comp1 .. " notes; <br> (" .. limit2 .. ") " .. comp2 .. " notes"
	})

	local result = infobox.build(
		name,
		infobox_data
	)
	
	return result
end

return p