Module:Interprovincial highway: Difference between revisions

Content deleted Content added
Module for the future Template:Interprovincial highway
 
Add types
Line 1:
require('strict')
 
local p = {}
local getArgs = require('Module:Arguments').getArgs
local parserModule = require('Module:Road data/parser')
local parser = parserModule.parser
Line 15:
local shield = parser(parserArgs, 'shieldmain') or parser(parserArgs, 'shield') or ''
local label = (routeLoc ~= currProvince and (routeLoc .. ' ') or '') .. label
local label = .. (parser(parserArgs, 'name') or parser(parserArgs, 'abbr') or '')
label = (routeLoc ~= currProvince and (routeLoc .. ' ') or '') .. label
 
local link = parser(parserArgs, 'link')
local alt = label .. ' marker'
Line 37 ⟶ 35:
end
 
function p.route(frame)
local function makeNav(prefix, label, currProvince, args)
return makeRoute(
frame.args[1],
frame.args.type,
frame.args.province,
frame.args.current_province or frame.args.province
)
end
 
function p.nav(frame)
local prefix = frame.args[1],
local label = frame.args.label,
local currProvince = frame.args.current_province,
local templateArgs = frame:getParent().args
 
local index = 1
local out = ''
repeat
local route = argstemplateArgs[prefix .. index]
or (index == 1 and argstemplateArgs[prefix] or '')
 
local routeType = args[prefix .. index .. '_type'] or (index == 1 and args[prefix .. '_type'] or '')
local routeLocrouteType = argstemplateArgs[prefix .. index .. '_province_type'] or (index == 1 and args[prefix .. '_province'] or '')
local routeType = args[prefix .. index .. '_type'] or (index == 1 and argstemplateArgs[prefix .. '_type'] or '')
 
local routeLoc = templateArgs[prefix .. index .. '_province']
or (index == 1 and templateArgs[prefix .. '_province'] or '')
if index ~= 1 then
Line 53 ⟶ 70:
index = index + 1
until not argstemplateArgs[prefix .. index]
return label .. ' ' .. (index - 1 > 1 and 'routes' or 'route') .. '<br>' .. out
end
 
function p.type(frame)
local p = {}
local data = mw.loadData('Module:Sandbox/BrandonXLF/Module:Interprovincial highway/data')
 
function return pdata.route(types[frame).args[1]]
return makeRoute(
frame.args[1],
frame.args.type,
frame.args.province,
frame.args.current_province or frame.args.province
)
end
 
function p.navsupported(frame)
local data = mw.loadData('Module:Sandbox/BrandonXLF/Module:Interprovincial highway/data')
return makeNav(
local post = 'Types retrieved from [[Module:Interprovincial highway/data]] ('
frame.args[1],
.. frame:expandTemplate{ title = 'edit', args = { 'Module:Interprovincial highway/data' } } .. ').'
frame.args.label,
 
frame.args.current_province,
local tableEl = mw.html.create('table'):addClass('wikitable')
getArgs(frame, { parentOnly = true })
)
local headerRow = tableEl:tag('tr')
headerRow:tag('th'):wikitext('Value')
headerRow:tag('th'):wikitext('Title')
 
for name, title in pairs(data.types) do
local row = tableEl:tag('tr')
row:tag('td'):tag('code'):wikitext(name)
row:tag('td'):wikitext(title)
end
 
return tostring(tableEl) .. post
end