Module:Infobox/Widget/Row: Difference between revisions

From TwogPedia
mNo edit summary
mNo edit summary
 
(3 intermediate revisions by the same user not shown)
Line 17: Line 17:
         local path = value  
         local path = value  
         if prefix ~= nil then path = prefix .. path end
         if prefix ~= nil then path = prefix .. path end
       
        local toShow = Row.toShow(value)
        if toShow then path = path .. '|' .. toShow end
       
valueNode:wikitext('[[' .. path .. '|' .. value .. ']]')
valueNode:wikitext('[[' .. path .. '|' .. value .. ']]')
else  
else  
Line 23: Line 28:
return container:node(name):node(valueNode)
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
end




return Row
return Row

Latest revision as of 19:49, 24 December 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 .. '|' .. value .. ']]')
	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