Module:Prime limit navigation

From Xenharmonic Wiki
Jump to navigation Jump to search

Documentation transcluded from /doc
Note: Do not invoke this module directly; use the corresponding template instead: Template:Prime limit navigation.

Generates the navigation bar for prime limit pages.


local p = {}

local PRIME_LIST = {2, 3, 5, 7, 11, 13, 17, 19, 23, 29, 31, 37, 41, 43, 47, 53, 59, 61, 67, 71, 73, 79, 83, 89, 97}

local function table_index(t, v)
	for i, ti in ipairs (t) do
		if v == ti then
			return i
		end
	end
	return nil
end

function p.prime_limit_navigation(frame)
	local i = table_index(PRIME_LIST, tonumber (frame.args['limit']))
	local entry_prev, entry_curr, entry_next, out_elem = "", "", "", ""
	if PRIME_LIST[i] then
		entry_curr = "[[" .. PRIME_LIST[i] .. "-limit]]"
		if PRIME_LIST[i - 1] then
			entry_prev = "<span style=\"font-size: 0.8em;\">[[" .. PRIME_LIST[i-1] .. "-limit|'''&larr;''' " .. PRIME_LIST[i-1] .. "-limit]]</span>&nbsp;&nbsp;"
		else
			entry_prev = ""
		end
		if PRIME_LIST[ i+ 1] then
			entry_next = "&nbsp;&nbsp;<span style=\"font-size: 0.8em;\">[[" .. PRIME_LIST[i+1] .. "-limit|" .. PRIME_LIST[i+1] .. "-limit '''&rarr;''']]</span>"
		else
			entry_next = ""
		end
	end
	
	out_elem = "<div class=\"toccolours\" style=\"float: right; text-align: center;\">\n" ..
	"<div style=\"margin: auto auto auto auto;\">'''[[Prime limit]]'''</div>\n" ..
	"<hr />\n" ..
	entry_prev .. entry_curr .. entry_next .. "\n" ..
	"</div>"
	
	return out_elem
end

return p;