修复脚本
全站通知:

模块:Tab

来自鸣潮WIKI_BWIKI_哔哩哔哩
跳到导航 跳到搜索

此模块的文档可以在模块:Tab/doc创建

local p = {}

function p.tab(frame)
	
	-- local args = (frame == mw.getCurrentFrame() and frame.args) or frame
	if frame ~= mw.getCurrentFrame() then
		-- 调试用
		args = frame
		frame = mw.getCurrentFrame()
	else if frame:getParent() ~= nil then
			args = frame:getParent().args
		else
			args = frame.args
		end
	end
	--mw.log(table.concat(args,"\n"))
	
	local index = 1
	local tabIndex = 1
	local tabName = {}
	local tabContent = {}
	local tabId = {}
	local fold = false
	
	if args["折叠"] ~= nil then
		fold = true
		tabName[tabIndex] = "[折叠]"
		tabContent[tabIndex] = ""
		tabIndex = tabIndex + 1
	end
	
	while args[index] ~= nil do
		tabName[tabIndex] = frame:preprocess(args[index])
		tabContent[tabIndex] = frame:preprocess(args[index+1])
		tabIndex = tabIndex + 1
		index = index + 2
	end
	
	local result = {}
	table.insert(result, [[<div style="display:none">]])
	for i = 1, index-1 do
		if args[i] ~= nil then
			table.insert(result, args[i]..[[<br>]])
		else
			table.insert(result, [[args(]]..i..[[)is nil<br>]])
		end
	end
	table.insert(result, [[</div>]])
	if tabIndex == 2 and fold or tabIndex == 1 then
		return 'Error: No tab parsed.'
	end
	table.insert(result, [[<div class="TabContainer"><ul>]].."\n")
	table.insert(result, [[<li class="tab_li active">]]..tabName[1]..[[</li>]].."\n")
	for i = 2, tabIndex-1 do
		table.insert(result, [[<li class="tab_li">]]..tabName[i]..[[</li>]].."\n")
	end
	table.insert(result, [[</ul>]].."\n")
	table.insert(result, [[<div class="tab_con active">]]..tabContent[1]..[[</div>]].."\n")
	for i = 2, tabIndex-1 do
		table.insert(result, [[<div class="tab_con">]]..tabContent[i]..[[</div>]].."\n")
	end
	table.insert(result, [[</div>]].."\n")
	--mw.log(table.concat(result))
	return table.concat(result)
end
 
-- function genId()
-- 	-- return 'tab-' .. os.clock() * 1e9
--     local seed={'e','1','2','3','4','5','6','7','8','9','a','b','c','d','e','f'}
--     local tb={}
--     for i=1,12 do
--         table.insert(tb,seed[math.random(1,16)])
--     end
--     local sid=table.concat(tb)
--     return string.format('tab-%s-%s-%s',
--     	os.clock() * 1e5,
--         string.sub(sid,1,6),
--         string.sub(sid,7,12)
--     )
-- end
 
return p