Module:Infobox/Widget/Row

From TwogPedia
Revision as of 19:39, 10 October 2023 by Couchor (talk | contribs)

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