Editing Module:TNT
Jump to navigation
Jump to search
The edit can be undone. Please check the comparison below to verify that this is what you want to do, and then publish the changes below to finish undoing the edit.
Latest revision | Your text | ||
Line 20: | Line 20: | ||
-- | -- | ||
-- {{#invoke:TNT | msg | -- {{#invoke:TNT | msg | ||
-- | I18n/Template:Graphs.tab <!-- https://commons. | -- | 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. | -- 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 | 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 ' | -- Obsolete function that adds a 'commons:' prefix to the first param. | ||
-- "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 | 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 | for _, row in pairs(data.data) do | ||
local newVal = {} | local newVal = {} | ||
local name = nil | local name = nil | ||
for pos, | for pos, val in pairs(row) do | ||
local columnName = names[pos] | |||
if columnName == 'name' then | if columnName == 'name' then | ||
name = | name = val | ||
else | else | ||
newVal[columnName] = | 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( | error('Missing JsonConfig extension; Cannot load https://commons.miraheze.org/wiki/Data:' .. dataset) | ||
Cannot load https://commons. | |||
end | end | ||
Line 176: | 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 ' | return 'commons:Data:' .. mw.text.trim(dataset or '') | ||
end | end | ||