打开/关闭搜索
搜索
打开/关闭菜单
1.1K
4.5K
75
18.1K
Cookie☆Wiki
导航
首页
最近更改
随机页面
帮助
沙盒
特殊页面
上传文件
常用
曲奇简介
用语列表
人物一览
曲奇团体
曲奇年表
本篇列表
榜单列表
专辑列表
创作
音MAD
曲奇静画
曲奇实况
曲奇素材
BB剧场
漫画
同人游戏
曲奇实况
中华曲奇
本篇列表
人物列表
搬运者列表
汉化组列表
友情链接
Cookie☆贴吧
真夏夜的银梦贴吧
中文音MAD维基
潮学维基
银饼视频搜索站
中文曲奇维基Fandom站[已弃用]
通知
打开/关闭个人菜单
未登录
未登录用户的IP地址会在进行任意编辑后公开展示。
user-interface-preferences
个人工具
创建账号
登录
查看“模块:Infobox/item/multidata”的源代码
来自Cookie☆Wiki
查看
阅读
查看源代码
查看历史
associated-pages
模块
讨论
更多操作
←
模块:Infobox/item/multidata
因为以下原因,您没有权限编辑该页面:
您请求的操作仅限属于该用户组的用户执行:
用户
您可以查看和复制此页面的源代码。
local p = {} -- 获取每一格的背景颜色, 规则为: -- 在奇数行: 深、浅交错; 在偶数行: 浅、深交错 function p.getBackgroundColor(i, perRow) local isEvenColumn = ((math.floor((i-1)/perRow)%2)==0) local delta = 0 if not isEvenColumn then delta = 1 end if (((i-1)%perRow)+delta) % 2 == 1 then return nil end return '#e5ded6' end -- 构建一个数据项 function p.makeDataItem(frame, label, data, bgcolor) return frame:expandTemplate{ title = 'Infobox/item/data', args = { label = label, data = data, -- width = widthPercent, bgcolor = bgcolor } } end -- 构建信息框中多行多列的数据项 function p.make() local frame = mw.getCurrentFrame() local parent = frame:getParent() local itemsPerRow = tonumber(parent.args['row-items']) if itemsPerRow == nil then error('"row-items" is not a number') end -- 将非空的未命名参数 (数据项) 的编号存入 unnamed 表中 local count = 0 local unnamed = {} for k, v in pairs(parent.args) do if tonumber(k) ~= nil and v ~= nil and string.gsub(v, '%s+', '') ~= '' then table.insert(unnamed, k) count = count + 1 end end if count == 0 then return '' end local result = '' if true then result = result .. '<div style="display: flex; flex-wrap: wrap; align-items: baseline">' local i = 1 while true do if i > count then break end result = result .. p.makeDataItem(frame, parent.args['label' .. unnamed[i]], parent.args[unnamed[i]], p.getBackgroundColor(i, 65535)) i = i + 1 end result = result .. '</div>' return result end -- 把所有数据项拼起来 -- local widthPercent = string.format('%.2f', 100/itemsPerRow) .. '%' local majorPart = math.floor(count / itemsPerRow) * itemsPerRow local i = 1 while (true) do -- if i > majorPart then break end if i > count then result = result .. '</div>' break elseif i % itemsPerRow == 1 then if i ~= 1 then result = result .. '</div>' end result = result .. '<div style="display: flex">' end result = result .. p.makeDataItem(frame, parent.args['label' .. unnamed[i]], parent.args[unnamed[i]], p.getBackgroundColor(i, itemsPerRow)) i = i + 1 end return result end return p
该页面使用的模板:
模块:Infobox/item/multidata/doc
(
查看源代码
)
返回
模块:Infobox/item/multidata
。