Minecraft Wiki

除另有声明,转载时均必须注明出处若簡繁轉換出錯,請以遊戲內為準请勇于扩充与修正内容有兴趣逛逛我们的微博沟通交流,欢迎到社区专页需要协助,请在告示板留言

了解更多

Minecraft Wiki
Advertisement
Minecraft Wiki沙盒

条目模板模块


欢迎来到中文Minecraft Wiki的公共沙盒。您可以在此页面上进行测试性编辑,但我们仍然建议在此处进行有建设性的编辑或翻译较短的条目。要编辑此页面,请点击上方的“编辑”铅笔按钮,或点击此处。在进行更改后,您可以点击编辑框下面的“显示预览”按钮来预览您的编辑,然后在相同位置点击“保存页面”按钮来保存编辑。

请注意,对此页面的更改不会被长期保留,因为此页面仅供测试编辑或翻译较短的条目之用。您也可以创建此页面的子页面(例如,Module:Sandbox/测试)来进行长期的项目,但它们仍然会在社区认定其过期后被删除。任何不具建设性的内容随时都可能会被清理。另外,如果您已注册账号,可以在自己的个人页面下创建您的个人沙盒,并且不用担心您的编辑会被清理。

您在编辑包括本页面在内的所有Wiki页面时都必须遵守相关的Wiki条例格式指导书面汉语指导等规范指导,否则您的编辑会被回退,您也可能会遭到警告甚至封禁处理。若有任何疑问,请到讨论页社区专页提出。若需要联系管理员,请到管理员告示板提出请求。


所有子页面:

若上述页面信息不准确,请点击此处刷新页面。

local p = {}

function p.main(f)
	local args = require('Module:Arguments').getArgs(f)

	-- set default values
	args.labelside = args.labelside or 'top'
	args.default = args.default or 1
    args.label1 = args.label1 or args.label
    args.tab1 = args.tab1 or args.tab

	-- create body node, add classes and styles
	local html = mw.html.create('div')
		:addClass('tabs tab-label-' .. args.labelside)
		:cssText(args.style)
	if args.autowidth then
		html:addClass('autowidth')
	end
	if args.float then
		html:addClass('float' .. args.float)
	end

	-- get child nodes
	local labels, content = createTabs(args)

	-- depending on label position, insert child nodes
	if args.labelside == 'top' or args.labelside == 'left' then
		html
			:node(labels)
			:tag('div')
				:addClass('tab-divider')
				:cssText(args.dividerstyle)
				:done()
			:node(content)
	else
		html
			:node(content)
			:tag('div')
				:addClass('tab-divider')
				:cssText(args.dividerstyle)
				:done()
			:node(labels)
	end

	return tostring(html)
end

function createTabs(args)
	-- create wrapper node, add classes and styles
	local tabLabel = mw.html.create('div')
		:addClass('tab-labels')
		:cssText(args.labelcontainerstyle)
	if args.reverselabel then
		tabLabel:addClass('tab-label-reverse')
	end
	local tabContent = mw.html.create('div')
		:addClass('tab-content')
		:cssText(args.contentcontainerstyle)

	-- check labelX and tabX existence, add to table, sort out table
	local tabCount = {}
	for k, v in pairs(args) do
		if type(k) == 'string' then
			local label, num = k:match('(label)(%d+)$')
			if v ~= '' and label and args['tab' .. num] then
				table.insert(tabCount, tonumber(num))
			end
		end
	end
	table.sort(tabCount)

	-- create label node and tab node, add classes and styles, insert to wrapper node
	for _, v in ipairs(tabCount) do
		local labelNode = mw.html.create('div')
			:addClass('tab-label-text')
			:cssText(args.labelstyle)
			:wikitext(args['label' .. v])
		local tabNode = mw.html.create('div')
			:addClass('tab-content-text')
			:cssText(args.tabstyle)
			:wikitext(args['tab' .. v])
		if tonumber(args.default) == v then
			labelNode:addClass('selected')
			tabNode:addClass('selected')
		end
		tabLabel:node(labelNode)
		tabContent:node(tabNode)
	end

	return tabLabel, tabContent
end

return p
Advertisement