Module:TNT: Difference between revisions

Jump to navigation Jump to search
metawikimedia>ExE Boss
3 revisions imported from mw:Module:TNT
No edit summary
Line 20: Line 20:
--
--
--    {{#invoke:TNT | msg
--    {{#invoke:TNT | msg
--    | I18n/Template:Graphs.tab  <!-- https://commons.wikimedia.org/wiki/Data:I18n/Template:Graphs.tab -->
--    | I18n/Template:Graphs.tab  <!-- https://commons.miraheze.org/wiki/Data:I18n/Template:Graphs.tab -->
--    | source-table              <!-- uses a translation message with id = "source-table" -->
--    | source-table              <!-- uses a translation message with id = "source-table" -->
--    | param1 }}                <!-- optional parameter -->
--    | param1 }}                <!-- optional parameter -->
Line 30: Line 30:
--
--
--    {{#invoke:TNT | doc | Graph:Lines }}
--    {{#invoke:TNT | doc | Graph:Lines }}
--        uses https://commons.wikimedia.org/wiki/Data:Templatedata/Graph:Lines.tab
--        uses https://commons.miraheze.org/wiki/Data:Templatedata/Graph:Lines.tab
--        if the current page is Template:Graph:Lines/doc
--        if the current page is Template:Graph:Lines/doc
--
--
Line 50: Line 50:
id = mw.text.trim(v)
id = mw.text.trim(v)
elseif type(k) == 'number' then
elseif type(k) == 'number' then
params[k - 2] = mw.text.trim(v)
table.insert(params, mw.text.trim(v))
elseif k == 'lang' and v ~= '_' then
elseif k == 'lang' and v ~= '_' then
lang = mw.text.trim(v)
lang = mw.text.trim(v)
Line 80: Line 80:
end
end


-- Obsolete function that adds a 'c:' prefix to the first param.
-- Obsolete function that adds a 'commons:' prefix to the first param.
-- "Sandbox/Sample.tab" -> 'c:Data:Sandbox/Sample.tab'
-- "Sandbox/Sample.tab" -> 'commons:Data:Sandbox/Sample.tab'
function p.link(frame)
function p.link(frame)
return link(frame.args[1])
return link(frame.args[1])
Line 96: Line 96:
local data = loadData(dataset)
local data = loadData(dataset)
local names = {}
local names = {}
for _, field in ipairs(data.schema.fields) do
for _, field in pairs(data.schema.fields) do
table.insert(names, field.name)
table.insert(names, field.name)
end
end
Line 102: Line 102:
local params = {}
local params = {}
local paramOrder = {}
local paramOrder = {}
for _, row in ipairs(data.data) do
for _, row in pairs(data.data) do
local newVal = {}
local newVal = {}
local name = nil
local name = nil
for pos, columnName in ipairs(names) do
for pos, val in pairs(row) do
local columnName = names[pos]
if columnName == 'name' then
if columnName == 'name' then
name = row[pos]
name = val
else
else
newVal[columnName] = row[pos]
newVal[columnName] = val
end
end
end
end
Line 156: Line 157:
-- Give helpful error to thirdparties who try and copy this module.
-- Give helpful error to thirdparties who try and copy this module.
if not mw.ext or not mw.ext.data or not mw.ext.data.get then
if not mw.ext or not mw.ext.data or not mw.ext.data.get then
error('Missing JsonConfig extension; Cannot load https://commons.wikimedia.org/wiki/Data:' .. dataset)
error('Missing JsonConfig extension; Cannot load https://commons.miraheze.org/wiki/Data:' .. dataset)
end
end


Line 174: Line 175:
-- Given a dataset name, convert it to a title with the 'commons:data:' prefix
-- Given a dataset name, convert it to a title with the 'commons:data:' prefix
link = function(dataset)
link = function(dataset)
return 'c:Data:' .. mw.text.trim(dataset or '')
return 'commons:Data:' .. mw.text.trim(dataset or '')
end
end