Module:Routelist bottom
| Beta | This module is rated as beta, and is ready for widespread use. It is still new and should be used with some caution to ensure the results are as expected. | 
Template:Lua Template:Uses TemplateStyles
Usage edit source
{{#invoke:Routelist bottom|function_name}}
local p = {}
local types = mw.loadData("Module:Road data/RJL types")
local row
local function parameterParser(args)
	local keysParam = args.keys
	if not(keysParam) then return {} end
	local keys = mw.text.split(keysParam, ",")
	table.sort(keys)
	return keys
end
local function createLegend(key)
	local legend = row:tag('div')
		:addClass('routelist-bottom-legend hlist')
		:tag('ul')
	for k,v in ipairs(key) do
		local type = types[v]
		if type then
			legend
				:tag('li')
					:tag('span')
						:css('background-color', type.color)
						:wikitext("    ")
						:done()
					:wikitext("  ")
					:wikitext(type.routelist)
		end
	end
end
function p._bottom(args)
	local root = mw.html.create('tr'):addClass('sortbottom')
	row = root:tag('td')
	row:attr('colspan', '9')
		:addClass('routelist-bottom')
		-- we would prefer to add the TemplateStyles before the class is declared
		-- but that's not really feasible in this particular table context
		:wikitext(mw.getCurrentFrame():extensionTag{
			name = 'templatestyles', args = { src = 'Module:Routelist bottom/styles.css' }
		})
	local conversion
	if (args.conv or 'no') == 'yes' then
		conversion = "1.000 mi = 1.609 km; 1.000 km = 0.621 mi<br>"
	end
	row:wikitext(conversion)
	
	local key = parameterParser(args)
	if key[1] then createLegend(key) end
	
	if #row.nodes == 0 then
		return '|-\n|}'
	else
		return tostring(root) .. '\n|-\n|}'
	end
end
function p.bottom(frame)
	return p._bottom(require('Module:Arguments').getArgs(frame))
end
return p