Jump to content

Module:Routelist bottom/sandbox: Difference between revisions

From Wikipedia, the free encyclopedia
Content deleted Content added
sync
let's see how much I've broken
 
Line 2: Line 2:


local types = mw.loadData("Module:Road data/RJL types")
local types = mw.loadData("Module:Road data/RJL types")

local row


local function parameterParser(args)
local function parameterParser(args)
Line 13: Line 11:
end
end


local function createLegend(key)
local function createLegend(key, html_object)
local legend = row:tag('div')
local listargs = {
:addClass('routelist-bottom-legend hlist')
class = 'routelist-bottom-legend'
}
:tag('ul')
for k,v in ipairs(key) do
for _,v in ipairs(key) do
local type = types[v]
local type = types[v]
if type then
if type then
table.insert(
legend
:tag('li')
listargs,
'<span style="background-color: ' .. type.color ..
:tag('span')
'">&nbsp;&nbsp;&nbsp;&nbsp;</span>&nbsp; ' .. type.routelist
:css('background-color', type.color)
)
:wikitext("&nbsp;&nbsp;&nbsp;&nbsp;")
:done()
:wikitext("&nbsp; ")
:wikitext(type.routelist)
end
end
end
end
html_object:wikitext(require('Module:List').horizontal(listargs))
end
end


Line 50: Line 48:
local key = parameterParser(args)
local key = parameterParser(args)
if key[1] then createLegend(key) end
if key[1] then createLegend(key, row) end
if #row.nodes == 0 then
if #row.nodes == 0 then

Latest revision as of 03:21, 27 December 2022

local p = {}

local types = mw.loadData("Module:Road data/RJL types")

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, html_object)
	local listargs = {
		class = 'routelist-bottom-legend'
	}
	
	for _,v in ipairs(key) do
		local type = types[v]
		if type then
			table.insert(
				listargs,
				'<span style="background-color: ' .. type.color ..
				'">&nbsp;&nbsp;&nbsp;&nbsp;</span>&nbsp; ' .. type.routelist
			)
		end
	end
	
	html_object:wikitext(require('Module:List').horizontal(listargs))
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&nbsp;mi = 1.609&nbsp;km; 1.000&nbsp;km = 0.621&nbsp;mi<br>"
	end
	row:wikitext(conversion)
	
	local key = parameterParser(args)
	if key[1] then createLegend(key, row) 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