跳转到内容
主菜单
主菜单
移至侧栏
隐藏
导航
首页
最近更改
随机页面
学习园地
新人须知
教程整合
NEW!!!
主题编号使用指导
论坛百科
SS分区介绍
论坛设定
论坛文化
传奇殿堂
SS大事年表
SS大学图书馆
维基事务
基本规则
新手指南——技术
新手指南——内容
wiki语法手册
规范全集
搜索
搜索
外观
登录
个人工具
登录
查看“︁模块:收纳表”︁的源代码
模块
讨论
English
阅读
查看源代码
查看历史
工具
工具
移至侧栏
隐藏
操作
阅读
查看源代码
查看历史
常规
链入页面
相关更改
特殊页面
页面信息
外观
移至侧栏
隐藏
←
模块:收纳表
因为以下原因,您没有权限编辑该页面:
您请求的操作仅限属于该用户组的用户执行:
用户
您可以查看和复制此页面的源代码。
--各个可在模版中使用的的参数的用途,如 --(参数名)(=某值,代表预设值,nil代表空的值): (用途) --大小写有区别! --[[ selectHeight = nil: 选择栏的高度,如100px。若有设置而内容太长挤不进去,则右方会多一个滚动条 textHeight = nil: 内容框的高度,如10em。同上。 selectWidth = nil: 选择栏的宽度,如50%。若有设置而内容太长挤不进去,则下方会多一个滚动条 textWidth = nil: 内容框的宽度,如75ch。同上。 splitCount = 5: 决定每行有几个物件 textDisplay = top: 内容相对于选择栏的位置,可输入 top(内容在选择栏上) down(内容在选择栏下) left(内容在选择栏左,此时selectWidth会被设置成20%、textWidth被设成60%、textHeight, selectHeight皆被设成400px) right(内容在选择栏右,同上) --]] local p = {} --处理可选择人名 local function renderSelect(tabIndices, args) local splitCount = tonumber(args['splitCount']) local tabs_pages = mw.html.create('div') :addClass('tabs_pages') :css('display', 'grid') :css('margin', '2.5%') :css('gap', '6px') :css('grid-template-columns', string.rep('1fr ', splitCount)) if args['textDisplay'] == 'left' or args['textDisplay'] == 'right' then tabs_pages :css('display', 'inline-grid') :css('height', '400px') :css('width', '20%') end if args['selectHeight'] ~= nil then tabs_pages :css('height', args['selectHeight']) :css('overflow-y', 'auto') end if args['selectWidth'] ~= nil then tabs_pages :css('width', args['selectWidth']) :css('overflow-x', 'auto') end for _, tabIndex in ipairs(tabIndices) do tabs_pages:tag('div') :addClass('tab') :css('margin', '0') :css('font-weight', '700') :wikitext(args['tab' .. tabIndex]) end return tostring(tabs_pages) end --处理感言内容 local function renderContent(tabIndices, args) local tabs_contents = mw.html.create('div') :addClass('tabs-contents') if args['textDisplay'] == 'left' or args['textDisplay'] == 'right' then tabs_contents :css('display', 'inline-grid') :css('height', '400px') :css('width', '60%') end if args['textHeight'] ~= nil then tabs_contents :css('height', args['textHeight']) :css('overflow-y', 'auto') end if args['textWidth'] ~= nil then tabs_contents :css('width', args['textWidth']) :css('overflow-x', 'auto') end for _, tabIndex in ipairs(tabIndices) do tabs_contents:tag('div') :addClass('tab-c') :wikitext(args['content' .. tabIndex]) end return tostring(tabs_contents) end function p.selectTable(frame) local args = {splitCount=5} local tabIndices = {} --获取页面传来的参数,而非模板本身的参数 local parent_args = frame:getParent().args; --将获取的参数传给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, _ 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') if args['textDisplay'] == 'down' or args['textDisplay'] == 'left' then mainDiv:node(renderContent(tabIndices, args)) mainDiv:node(renderSelect(tabIndices, args)) else mainDiv:node(renderSelect(tabIndices, args)) mainDiv:node(renderContent(tabIndices, args)) end return tostring(mainDiv) end return p
该页面使用的模板:
模块:收纳表/doc
(
查看源代码
)
返回
模块:收纳表
。