Module:Adjacent stations: Difference between revisions

Content deleted Content added
m prevent duplication of frame call
m arbitrary parameter numbering
Line 88:
local t = {}
for i = 1, (args.nums[#args.linenums] or 1) do
localif _line = data[i][args.linesystem[i]] then
header = table.concat({'\n|-',
'\n!', style['header leftcell'], 'Preceding station',
lineTitle[i] = _line['line title']
'\n!', style['header midcell'], data[i]['system title'],
colour[i] = _line.colour
'\n!', style['header rightcell'], 'Following station'})
note[i] = args.note[i] or ''
table.insert(t, table.concat({header,)
if type(_line['left terminus']) == 'string' then
_leftTerminus = _line['left terminus']
elseif type(_line['left terminus']) == 'table' then
_leftTerminus = _line['left terminus'][args.TypeL[i] or 1]
end
if type(_line['right terminus']) == 'string' then
_rightTerminus = _line['right terminus']
elseif type(_line['right terminus']) == 'table' then
_rightTerminus = _line['right terminus'][args.TypeR[i] or 1]
end
if not args.leftline[i] then
local _line = data[i][args.line[i]]
left[i] = "''Terminus''"
leftTerminuslineTitle[i] = _line['line title']
colour[i] = _line.colour
elseif args.left[i] == _leftTerminus then
leftnote[i] = _line['station link'](args.leftnote[i]) or ''
leftTerminus[i] = subFormat('Terminus')
if type(_line['left terminus']) == 'string' then
else
left[i] _leftTerminus = _line['stationleft linkterminus'](args.left[i])
ifelseif args.onewayLtype(_line[i'left terminus']) == true'table' then
_leftTerminus = _line['left terminus'][args.TypeL[i] or 1]
leftTerminus[i] = subFormat('One-way operation')
end
if type(_line['right terminus']) == 'string' then
_rightTerminus = _line['right terminus']
elseif type(_line['leftright terminus']) == 'table' then
_leftTerminus _rightTerminus = _line['leftright terminus'][args.TypeLTypeR[i] or 1]
end
note[i] if =not args.noteleft[i] or ''then
left[i] = "''Terminus''"
leftTerminus[i] = ''
elseif args.left[i] == _leftTerminus then
right left[i] = _line['station link'](args.rightleft[i])
leftTerminus[i] = subFormat('Terminus')
else
leftTerminusleft[i] = subFormat('towards ' .. _line['station link'](_leftTerminus)args.left[i])
if args.onewayRonewayL[i] == true then
leftTerminus[i] = subFormat('One-way operation')
else
leftTerminus[i] = subFormat('towards ' .. _line['station link'](_leftTerminus))
end
end
end
if not args.systemright[i] then
if not args. right[i] then= "''Terminus''"
right rightTerminus[i] = "''Terminus''"
elseif args.right[i] == _rightTerminus then
rightTerminus[i] = ''
elseif args. right[i] == _rightTerminus_line['station thenlink'](args.right[i])
rightTerminus[i] = subFormat('Terminus')
right[i] = _line['station link'](args.right[i])
rightTerminus[i] = subFormat('Terminus')
else
right[i] = _line['station link'](args.right[i])
if args.onewayR[i] == true then
rightTerminus[i] = subFormat('One-way operation')
else
rightTerminusright[i] = subFormat('towards ' .. _line['station link'](_rightTerminus)args.right[i])
if args.onewayR[i] == true then
rightTerminus[i] = subFormat('TerminusOne-way operation')
else
rightTerminus[i] = subFormat('towards ' .. _line['station link'](_rightTerminus))
end
end
table.insert(t, table.concat({'\n|-',
'\n|', style['body leftcell'], left[i], leftTerminus[i],
'\n|', style['body banner'], colour[i], '"| ',
'\n|', style['body midcell'], lineTitle[i], '<div style="font-size: smaller">', note[i], '</div>' ,
'\n|', style['body banner'], colour[i], '"|&nbsp;',
'\n|', style['body rightcell'], right[i] , rightTerminus[i]
}))
end
if args.system[i] then
header = table.concat({'\n|-',
'\n!', style['header leftcell'], 'Preceding station',
'\n!', style['header midcell'], data[i]['system title'],
'\n!', style['header rightcell'], 'Following station'})
else
header = ''
end
table.insert(t, table.concat({header,
'\n|-',
'\n|', style['body leftcell'], left[i], leftTerminus[i],
'\n|', style['body banner'], colour[i], '"|&nbsp;',
'\n|', style['body midcell'], lineTitle[i], '<div style="font-size: smaller">', note[i], '</div>' ,
'\n|', style['body banner'], colour[i], '"|&nbsp;',
'\n|', style['body rightcell'], right[i] , rightTerminus[i]
}))
end
Line 164 ⟶ 162:
function p.main(frame)
local args = {
['system']nums = {},
['line']system = {},
['left']line = {},
['right']left = {},
['TypeL']right = {},
['TypeR']TypeL = {},
['note']TypeR = {},
['onewayL']note = {},
['onewayR']onewayL = {},
['circular']onewayR = {},
['circularL']circular = {},
['circularR']circularL = {},
circularR = {}
}
local _args = frame:getParent().args
Line 190 ⟶ 189:
if a == 'system' then
args.system[b] = v
table.insert(args.nums, b)
elseif a == 'line' then
args.line[b] = v
table.insert(args.nums, b)
elseif a == 'left' then
args.left[b] = v
Line 218 ⟶ 219:
end
end
table.sort(args.nums)
local data = {}
for i = 1, (args.nums[#args.linenums] or 1) do
if args.system[i] then
data[i] = require('Module:L-rail/' .. args.system[i])