Documentation for this module may be created at Module:Infobox/Widget/Row/doc
local Row = {}
function Row.make(rowName, value, link, prefix)
local container = mw.html.create('div')
:addClass('ib-row')
local name = mw.html.create('div')
:addClass('ib-rowName')
:wikitext(rowName .. ': ')
local valueNode = mw.html.create('div')
-- If value is table
if type(value) ~= 'string' then
return container:node(name):node(value)
end
if link ~= nil then
local path = value
if prefix ~= nil then path = prefix .. path end
local toShow = Row.toShow(value)
if toShow then path = path .. '|' .. toShow end
valueNode:wikitext('[[' .. path .. ']]')
else
valueNode:wikitext(value)
end
return container:node(name):node(valueNode)
end
function Row.person(rowName, value, flag)
local container = mw.html.create('div')
:addClass('ib-row')
local name = mw.html.create('div')
:addClass('ib-rowName')
:wikitext(rowName .. ': ')
local valueNode = mw.html.create('div')
local toShow = Row.toShow(value)
valueNode:wikitext(flag):wikitext('[[' .. value .. '|' .. toShow .. ']]')
return container:node(name):node(valueNode)
end
function Row.toShow(str)
if mw.title.new(str) then return nil end
local toShow = mw.text.split(str, '/')
if #toShow > 1 then
toShow = toShow[2]
else
toShow = toShow[1]
end
return toShow
end
return Row