跳转到内容

模組:HideInSkin

维基百科,自由的百科全书
文档图示 模块文档[创建]
local p = {}
local getArgs = require('Module:Arguments').getArgs
local yesno = require('Module:Yesno')

local allow_skins = {
	'vector', -- = vector-legacy + vector-202
	'vector-legacy',
	'vector-2022',
	'minerva',
	'monobook',
	'timeless',
}
local allow_skin_alias = {
	['vector2010'] = 'vector-legacy',
	['vector-2010'] = 'vector-legacy',
	['vector2022'] = 'vector-2022'
}

function p._main(args)
	local skin_is_added = {}
	local has_class = false
	local html = mw.html.create(args.wrapperTag or 'div')
	for _, skin in ipairs(allow_skins) do
		if yesno(args[skin]) and not skin_is_added[skin] then
			has_class = true
			skin_is_added[skin] = skin .. '-hide'
			html:addClass(skin .. '-hide')
		end
	end
	for alias, skin in pairs(allow_skin_alias) do
		if yesno(args[skin]) and not skin_is_added[skin] then
			has_class = true
			skin_is_added[skin] = skin .. '-hide'
			html:addClass(skin .. '-hide')
		end
	end
	if not has_class and not args.ignoreNoSkin then
		return tostring(args[1])
	end
	return tostring(
		html
			:wikitext(args[1])
			:done()
	)
end

function p.main(frame)
	local args = getArgs(frame, {
		trim = true,
		removeBlanks = true,
		parentFirst = true
	})
	return p._main(args)
end

return p