全站通知:
模块:Helper
刷
历
编
跳到导航
跳到搜索
local Self = {}
function Self.LazyLoad(moduleName, toLowerCase)
toLowerCase = toLowerCase or false
local loaded = nil
local function doLoad()
if loaded == nil then
loaded = mw.loadData(moduleName)
if toLowerCase then
local lowerCaseLoaded = {}
for key, value in pairs(loaded) do
lowerCaseLoaded[string.lower(key)] = value
end
loaded = lowerCaseLoaded
end
end
return loaded
end
local meta = {}
meta.__index = function(_table, key)
return doLoad()[key]
end
meta.__pairs = function(_table)
return pairs(doLoad())
end
meta.__ipairs = function(_table)
return ipairs(doLoad())
end
local ret = {}
setmetatable(ret, meta)
return ret
end
function Self.ExpandTemplate(title, args)
return mw.getCurrentFrame():expandTemplate{
title = title,
args = args
}
end
function Self.ExpandTemplateDebug(title, args)
local ret = "{{" .. title
i = 1
while args[i] ~= nil do
ret = ret .. "|" .. args[i]
i = i + 1
end
for k, v in pairs(args) do
if type(k) ~= "number" or k > i then
ret = ret .. "|" .. k .. "=" .. tostring(v)
end
end
return ret .. "}}"
end
return Self