模块:Utils:修订间差异
来自星露谷物语扩展百科
更多操作
删除的内容 添加的内容
预备通用库 |
创建页面 |
||
| 第1行: | 第1行: | ||
local |
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 |
|||
| ⚫ | |||
2025年9月2日 (二) 19:04的版本
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
return Self