Module:Data and Module:Data/sandbox: Difference between pages
(Difference between pages)
imported>Jackmcbarn Make this work when called with wikitext's fake tables |
imported>MSGJ simp? |
||
| Line 3: | Line 3: | ||
function mt.__index(t, k) | function mt.__index(t, k) | ||
return function(frame) | return function(frame) | ||
local data = mw.loadData(k) | local success, data = pcall(mw.loadData, k) | ||
if not success then | |||
for | success, data = pcall(mw.loadJsonData, k) | ||
if not success then | |||
error("'" .. k .. "' is not a valid data page") | |||
end | |||
end | |||
for i, v in ipairs(frame.args) do | |||
local ty = type(data) | local ty = type(data) | ||
if ty ~= 'table' then | if ty ~= 'table' then | ||
| Line 18: | Line 23: | ||
end | end | ||
end | end | ||
data = data[v] | local nextdata = data[v] | ||
if nextdata == nil and tonumber(v) then | |||
data = data[tonumber(v)] | |||
else | |||
data = nextdata | |||
end | |||
end | end | ||
return data | return data | ||