Module:Person weight

in Wikipedia, die vrye ensiklopedie

Dokumentasie vir hierdie module kan geskep word by: Module:Person weight/doc

-- This module implements [[Template:Infobox person/weight]]

local p = {}

local function clean_weight(s)
	s = mw.ustring.gsub(s, 'kilogram', 'kg')
	s = mw.ustring.gsub(s, 'kgs', 'kg')
	s = mw.ustring.gsub(s, 'kg[%.,]', 'kg')
	s = mw.ustring.gsub(s, '%[%[kg%]%]s', '[[Kilogram|kg]]')
	return s
end

local function isnumber(s)
	if s then
		s = mw.ustring.gsub(s, '%+%s*%d+%s*/%s*%d+%s*$', '')
		s = mw.ustring.gsub(s, '%s*[–%-]%s*', '')
		return tonumber(s)
	end
	return nil
end

local function get_convert_weight_args(s)
	return clean_weight(s or '') -- basic unit cleaning
end

function convert_weight(frame, args)
	local str = get_convert_weight_args(args[1])

	if type(targs) == 'table' then
		return frame:expandTemplate{ title = 'convert', args = targs} .. str
	else
		return str
	end
end

function p.weight(frame)
	return convert_weight(frame, frame.args[1] and frame.args or frame:getParent().args)
end

return p