Module:Jctbtm

local p = {}

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

local columns = { -- Constants for how many columns different list types should have.

default = 6, -- default

exit = 7, -- default + exit number

old = 8, -- default + exit number + old exit number

}

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 = 'jct-bottom-legend'

}

for _,v in ipairs(key) do

local type = types[v]

if type then

table.insert(

listargs,

'      ' ..

type.jctbtm .. ''

)

end

end

html_object:wikitext(require('Module:List').horizontal(listargs))

end

function p._jctbtm(args)

local root = mw.html.create()

local cols = args.col or columns[args[1]] or columns.default

row = root

:tag('tr')

:tag('td')

:attr('colspan', cols)

:addClass('jct-bottom notheme')

:wikitext(mw.getCurrentFrame():extensionTag{

name = 'templatestyles', args = { src = 'Module:Jctbtm/styles.css' }

})

if (args.conv or 'yes') == 'yes' then

row:wikitext("1.000 mi = 1.609 km; 1.000 km = 0.621 mi
")

end

local key = parameterParser(args)

if key[1] then createLegend(key, row) end

local keyParam = args.key

if keyParam then -- This is a deprecated parameter

local page = mw.title.getCurrentTitle()

local pagename = page.prefixedText

row:wikitext(string.format("# %s", pagename))

end

row:wikitext(args.notes or args.key) -- If additional notes are provided, display them.

if #row.nodes == 0 then

return '|-\n|}'

else

return tostring(root) .. '\n|-\n|}'

end

end

function p.jctbtm(frame)

return p._jctbtm(require('Module:Arguments').getArgs(frame))

end

return p