查看“模块:LoadData”的源代码
←
模块:LoadData
跳到导航
跳到搜索
因为以下原因,您没有权限编辑本页:
您请求的操作仅限属于该用户组的用户执行:
用户
您可以查看和复制此页面的源代码。
local p = {} -- Finds the next key key <= or >= the given i. -- operator is ±1 local function findItemRange(data, i, operator) local bestIndex = nil i = i * operator for k, v in pairs(data) do local kop = type(k) == 'number' and k * operator if kop and kop <= i and (bestIndex == nil or kop > bestIndex * operator) then bestIndex = k end end if bestIndex then return data[bestIndex] else return nil end end local function load(datamodule, frame) local args = frame.args local data = mw.loadData(datamodule) for i = 1, 20 do if args[i] then data = data[tonumber(args[i]) or args[i]] elseif args[i .. ' lteq'] then data = findItemRange(data, tonumber(args[i .. ' lteq']), 1) elseif args[i .. ' gteq'] then data = findItemRange(data, tonumber(args[i .. ' gteq']), -1) else break end end if data == nil then return args['if_nil'] -- not a required argument, OK to return nil here. end if type(data) == 'table' then -- Put the table into another table because the return value of loadData -- is a "fake" table that only has certain metamethods. local realdata = {} for k, v in pairs(data) do realdata[k] = v end data = realdata else data = { data } end if args['template'] then return mw.text.unstripNoWiki(args['template']):format(unpack(data)) elseif args['preprocess'] then return frame:preprocess(mw.text.unstripNoWiki(args['preprocess']):format(unpack(data))) else return table.concat(data) end end return setmetatable({}, { __index = function(t, k) return function(frame) return load('Module:' .. k, frame) end end })
本页使用的模板:
模块:LoadData/doc
(
查看源代码
)
返回
模块:LoadData
。
导航菜单
个人工具
登录
命名空间
模块
讨论
English
查看
阅读
查看源代码
查看历史
更多
导航
首页
最近更改
随机页面
MediaWiki帮助
工具
链入页面
相关更改
特殊页面
页面信息