Module:Listeria
Jump to navigation
Jump to search
File:Test Template Info-Icon - Version (2).svg Module documentation[create] [purge]
require[[strict]]
local libraryUtil = require('libraryUtil')
local checkType = libraryUtil.checkType
local p = {}
p.show_tabbed_data = function (frame)
local mArguments = require('Module:Arguments')
local args = mArguments.getArgs(frame)
return p._show_tabbed_data(args)
end
p._show_tabbed_data = function (args)
checkType('_show_tabbed_data', 1, args, 'table', true)
args = args or {}
local page = mw.title.new(args.page or '') or mw.title.getCurrentTitle()
local lang = page.pageLang:getCode() or "en" -- This should be generated automatically, but I don't know how it is exposed to Lua
local wiki = mw.wikibase.getGlobalSiteId() or "enwiki" -- This should be generated automatically, but I don't know how it is exposed to Lua
local tab_file = "Listeria/" .. wiki .. "/" .. tostring(page) .. ".tab"
local ret = "Using: [[" .. tostring(page) .. "]]" .. " as file [[c:Data:" .. tab_file .. "]]\n"
local tab = mw.ext.data.get(tab_file,lang)
if type(tab) ~= 'table' then
error("Could not load data from [[c:Data:"..tab_file.."]]")
end
ret = ret .. "{| class=\"wikitable sortable jquery-tablesorter\"\n"
for colnum,col in pairs(tab.schema.fields) do
if colnum > 1 then
local header = col.title
if header == nil then
header = col.name
end
ret = ret .. "! " .. header .. "\n"
end
end
for rownum,row in pairs(tab.data) do
ret = ret .. "|-\n"
for colnum,cell in pairs(row) do
if colnum > 1 then
ret = ret .. "| " .. cell .. "\n"
end
end
end
ret = ret .. "\n|}\n"
return ret
end
return p