Module:Infobox ferroviaire

De WikiPerche

La documentation pour ce module peut être créée à Module:Infobox ferroviaire/doc

local capiunto = require 'capiunto'

local p = {}

-- Renvoie la valeur nettoyée, ou nil si absente/vide
local function clean(v)
	if v == nil then return nil end
	v = mw.text.trim(tostring(v))
	if v == '' then return nil end
	return v
end

-- Ajoute une ligne seulement si la valeur existe ; renvoie toujours l'infobox
local function addRow(box, label, value)
	value = clean(value)
	if value then
		box:addRow(label, value)
	end
	return box
end

function p.main(frame)
	local args = frame:getParent().args

	local headerStyle = 'background-color:' .. (clean(args.headerstyle) or 'green') .. ';'
	local titleStyle  = 'background-color:' .. (clean(args.titlestyle) or 'green') .. ';'

	local box = capiunto.create{
		title = clean(args.title),
		titleStyle = titleStyle,
		headerStyle = headerStyle,
	}

	addRow(box, 'Numéro officiel', args.numeroofficiel)
	addRow(box, 'Propriétaire', args.proprietaire)

	box:addHeader('Historique')
	addRow(box, 'Mise en service', args.miseenservice)
	addRow(box, 'Fermeture', args.fermeture)
	addRow(box, 'Déclassement', args.declassement)
	addRow(box, 'Concessionnaire original', args.concessionnaireoriginal)

	box:addHeader('Caractéristiques techniques')
	addRow(box, 'Longueur', args.longueur)
	addRow(box, 'Ecartement', args.ecartement)
	addRow(box, 'Electrification', args.electrification)
	addRow(box, 'Nombre de voies', args.nbvoies)
	addRow(box, 'Pente maximale', args.pentemax)

	return box
end

return p