mNo edit summary |
mNo edit summary |
||
Line 19: | Line 19: | ||
local toShow = Row.toShow(value) | local toShow = Row.toShow(value) | ||
if toShow then path = path .. '|' .. toShow end | |||
valueNode:wikitext('[[' .. path | valueNode:wikitext('[[' .. path .. ']]') | ||
else | else | ||
valueNode:wikitext(value) | valueNode:wikitext(value) | ||
Line 44: | Line 46: | ||
function Row.toShow(str) | function Row.toShow(str) | ||
if mw.title.new(str) then return | if mw.title.new(str) then return nil end | ||
local toShow = mw.text.split(str, '/') | local toShow = mw.text.split(str, '/') | ||
Revision as of 19:39, 10 October 2023
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