Jump to content

Module:Tennis events nav

Permanently protected module
From Wikipedia, the free encyclopedia
This is an old revision of this page, as edited by Izkala (talk | contribs) at 20:17, 18 June 2015 (This module implements Template:Infobox tennis tournament event/events.). The present address (URL) is a permanent link to this revision, which may differ significantly from the current revision.
(diff) ← Previous revision | Latest revision (diff) | Newer revision → (diff)

-- This module implements [[Template:Infobox tennis tournament event/events]].
-- [SublimeLinter luacheck-globals:mw]

local p = {}
local getBuffer, print, _ = require('Module:OutputBuffer')()

local STYLES = {
	["singlesdoubles"] = {[=[|-
| [[{prefix} {year} {tournament} – Singles|singles]]
| [[{prefix} {year} {tournament} – Singles|doubles]]]=]},
		["1"] = "singlesdoubles",
		["men"] = "singlesdoubles",
		["mens"] = "singlesdoubles",
		["women"] = "singlesdoubles",
		["womens"] = "singlesdoubles",
	["risingstarsinvitational"] = {[=[|-
| [[{prefix} {year} {tournament} – Singles|singles]]
| [[{prefix} {year} {tournament} – Singles|doubles]]
|-
| colspan="2" | [[{prefix} {year} {tournament} – Rising Stars Invitational|Rising Stars]]]=]},
	["boysgirlssingles"] = {[=[|-
! scope="col" style="text-align: right;" | Singles
| [[{prefix} {year} {tournament} – Men's Singles|men]]
| [[{prefix} {year} {tournament} – Women's Singles|women]]
| [[{prefix} {year} {tournament} – Boys' Singles|men]]
| [[{prefix} {year} {tournament} – Girls' Singles|women]]
|-
! scope="col" style="text-align: right;" | Doubles
| [[{prefix} {year} {tournament} – Men's Doubles|men]]
| [[{prefix} {year} {tournament} – Women's Doubles|women]]]=]},
		["miamimasters"] = "boysgirlssingles",
	["mixeddoubles"] = {[=[|-
! scope="col" style="text-align: right;" | Singles
| [[{prefix} {year} {tournament} – Men's Singles|men]]
| [[{prefix} {year} {tournament} – Women's Singles|women]]
|-
! scope="col" style="text-align: right;" | Doubles
| [[{prefix} {year} {tournament} – Men's Doubles|men]]
| [[{prefix} {year} {tournament} – Women's Doubles|women]]
| [[{prefix} {year} {tournament} – Mixed Doubles|mixed]]]=]},
	[""] = {[=[|-
! scope="col" style="text-align: right;" | Singles
| [[{prefix} {year} {tournament} – Men's Singles|men]]
| [[{prefix} {year} {tournament} – Women's Singles|women]]
|-
! scope="col" style="text-align: right;" | Doubles
| [[{prefix} {year} {tournament} – Men's Doubles|men]]
| [[{prefix} {year} {tournament} – Women's Doubles|women]]]=]}}

local function pullItem(value, default)
	value = value and string.gsub(value, "%A", "")
	if type(STYLES[value]) == "string" then
		value = STYLES[STYLES[value]]
	end
	if STYLES[value] then
		return STYLES[value][1]
	else
		return STYLES[default][1]
	end
end

function p._main(args)
	print('{| style="border-spacing: 0.3em 0; margin: auto; ' ..
		  'text-align: center;"')
	print(string.gsub(pullItem(args.type, ""), "{(%a+)}",
		{prefix = args.prefix or "", year = args[1], tournament = args[2]}))
	print("|}")
	return getBuffer("\n")
end

function p.main(frame)
	local args = require("Module:Arguments").getArgs(frame)
	return p._main(args)
end

return p