模块:收纳表:修订间差异
跳到导航
跳到搜索
小无编辑摘要 |
小无编辑摘要 |
||
第7行: | 第7行: | ||
local tabs_pages = mw.html.create('div') | local tabs_pages = mw.html.create('div') | ||
:addClass('tabs_pages') | :addClass('tabs_pages') | ||
:css('display | :css('display', 'grid') | ||
:css('grid-template-columns', string.rep('1fr ', splitCount)) | :css('grid-template-columns', string.rep('1fr ', splitCount)) | ||
2022年6月7日 (二) 13:39的版本
此模块的文档可以在模块:收纳表/doc创建
local p = {} --处理可选择人名 function renderSelect(tabIndices, args) local splitCount = tonumber(args['splitCount']) local tabs_pages = mw.html.create('div') :addClass('tabs_pages') :css('display', 'grid') :css('grid-template-columns', string.rep('1fr ', splitCount)) for i, tabIndex in ipairs(tabIndices) do tabs_pages:tag('div') :addClass('tab') :css('margin', '0') :css('padding', '0') :css('font-weight', '700') :wikitext(args['tab' .. tabIndex]) end return tostring(tabs_pages) end --处理感言内容 function renderContent(tabIndices, args) local tabs_contents = mw.html.create('div') :addClass('tabs-contents') for i, tabIndex in ipairs(tabIndices) do tabs_contents:tag('div') :addClass('tab-c') :wikitext(args['content' .. tabIndex]) end return tostring(tabs_contents) end function p.testimonials(frame) local args, tabIndices = {}, {} --获取页面传来的参数,而非模板本身的参数 local parent_args = frame:getParent().args; --可自定义每行几人,预设5 if args['splitCount'] == nil then args['splitCount'] = 5 end --将获取的参数传给args for k, v in pairs(parent_args) do if v ~= 'nil' then args[k] = v end --避免空的参数 end --|tab(x) 的数字可能非123...,可能是012...、037...等 --用于处理上述情况 for k, v in pairs(args) do local tabIndex = ('' .. k):match('^tab(%d+)$') if tabIndex then table.insert(tabIndices, tonumber(tabIndex)) end end table.sort(tabIndices) --处理勋章 local mainDiv = mw.html.create('div') :addClass('tabs-container') mainDiv:node(renderSelect(tabIndices, args)) mainDiv:node(renderContent(tabIndices, args)) return tostring(mainDiv) end return p