七日内新公告:全站维护公告
  • 你好~!欢迎来到萌娘百科镜像站!如需查看或编辑,请联系本站管理员注册账号。
  • 本镜像站和其他萌娘百科的镜像站无关,请注意分别。

Module:Legend

贴贴♀百科,万娘皆可贴的百科全书!转载请标注来源页面的网页链接,并声明引自贴贴百科。内容不可商用。
跳到导航 跳到搜索
Template-info.svg 模块文档  [创建] [刷新]
local util_args = require('Module:ArgsUtil')
local util_text = require('Module:TextUtil')

local ORDER = {
	'upwith3bye', 'upwith2bye', 'semifinals', 'upwithbye', 'proceed', 'up', 'stayup', 'stay', 'staydown', 'down', 'drop', 'autorelegate', 'clinch-up', 'clinch-down', 'boldtext', 'incomplete', 'specialqualify'
}

local p = {}
local h = {}
function p.main(frame)
	local args = util_args.merge(true)
	local th = mw.html.create()
	p._main(th, args)
	return th
end

function p._main(th, args)
	local outerdiv = th:tag('div')
		:wikitext(args.display or 'Standings')
		:css({position = 'relative'})
	local div = outerdiv:tag('div')
		:addClass('table-header-rightcontent')
		:addClass('popup-button')
		:addClass('legend-icon')
		:addClass('popup-content-outer')
			
	local tbl = div:tag('div')
		:addClass('popup-content-inner popup-content-inner-pretty legend-table toggle-section-hidden')
		:css({
			['margin-left'] = (((args.legendwidth or 8) - 250) / 2) .. 'px',
			width = '250px'
		 })
		:tag('table')
			:addClass('legend-table')
	
	h.printLegendTable(tbl, args, util_text.splitOrNil(args.legendorder) or ORDER)
	return outerdiv
end

function h.printLegendTable(tbl, args, order)
	h.printTableHeader(tbl)
	for _, v in ipairs(order) do
		h.printLegendRow(tbl, v, args[v], args[v .. 'css'])
	end
end

function h.printTableHeader(tbl)
	local tr = tbl:tag('tr')
	tr:tag('th')
		:addClass('legend-header')
		:wikitext('Legend')
end

function h.printLegendRow(tbl, class, display, css)
	if not display then return end
	local tr = tbl:tag('tr')
	tr:tag('td')
		:addClass('standings-' .. class)
		:cssText(css)
		:wikitext(display)
end

return p