Module:Sandbox/Szqecs/Kaohsiung

local p = {}

function p.l(frame) local f = frame.args -- 'f' for 'frame' local system = f[1] local t_system = mw.loadData('Module:Sandbox/Szqecs/' .. system .. '/table') -- 't' for 'table of data for ...' require('Module:Sandbox/Szqecs/' .. system .. '/functions') local t_output ={} local a = {} for i=1,10 do		if f[i] then a[i] = f[i] end end

if r_count_func then rows_count = r_count_func(unpack(a)) else rows_count = 1 end for i = 1, rows_count do		if interpret then interpret(unpack(a)) end local t_line = t_system[line] local i_final = t_line['n'] -- 'i' for 'index' local color = t_line['color'] local l_link = t_line['link'] -- 'l' for 'line' local function div(x, y) -- Text format shortcut if x == 'i' then -- 'i' for 'italic' return ' ' .. y .. ' '		elseif x == 's' then -- 's' for 'smaller and italic' return ' ' .. y .. ' '		end end if index > 1 then left = s_link(t_line[index-1]) -- 's' for 'station' else left = "Terminus" end if index < i_final then right = s_link(t_line[index+1]) else right = "Terminus" end if index > 2 then left_toward = div('s','toward ' .. s_link(t_line[1])) elseif index == 1 then left_toward = '' elseif index == 2 then left_toward = div('s','Terminus') end if index < i_final - 1 then right_toward = div('s','toward ' .. s_link(t_line[i_final])) elseif index == i_final - 1 then right_toward = div('s','Terminus') elseif index == i_final then right_toward = '' end local s = { -- Style shortcuts ['w'] = 'style="width: 30%; '		,['c'] = 'style="text-align: center; ' ,['br'] = 'border: ' ,['t'] = 'border-top: ' ,['bb'] = 'border-bottom: ' ,['L'] = 'border-left: ' ,['r'] = 'border-right: ' ,['n'] = 'none; ' ,['0'] = '0px none; ' ,['1'] = '1px solid #aaa; ' }	local style = { ['table'] = 'align="center" style="margin:0.5em auto; font-size:95% clear:both; '			.. s['t'] .. s['0']			.. 'border-collapse: separate;" cellspacing="0" cellpadding="-1"' ,['header leftcell'] = s['w'] .. s['br'] .. s['1'] .. s['L'] .. s['n'] .. s['bb'] .. s['n'] .. '"| '		,['header midcell'] = 'colspan="3" style="' .. s['br'] .. s['n'] .. s['t'] .. s['1'] .. '"| '		,['header rightcell'] = s['w']			.. s['br'] .. s['1']			.. s['r'] .. s['n']			.. s['bb'] .. s['n']			.. '"| ' ,['body leftcell'] = s['c'] .. s['L'] .. s['0'] .. s['bb'] .. s['0'] .. s['r'] .. s['1'] .. s['t'] .. s['1'] .. '"| '		,['body banner'] = s['c']			.. s['L'] .. s['0']			.. s['bb'] .. s['0']			.. s['r'] .. s['0']			.. s['t'] .. s['1']			.. 'width: 8px; background-color: '		,['body midcell'] = s['c']			.. s['bb'] .. s['0']			.. '"| ' ,['body rightcell'] = s['c'] .. s['L'] .. s['1'] .. s['bb'] .. s['0'] .. s['r'] .. s['0'] .. s['t'] .. s['1'] .. '"| '	}	local row = {		['start'] = '{| class="wikitable" ' .. style['table']		,['header'] = '\n|-'			.. '\n! ' .. style['header leftcell'] .. 'Preceding station'			.. '\n! ' .. style['header midcell'] .. '\[\[Kaohsiung Rapid Transit System\]\]'			.. '\n! ' .. style['header rightcell'] .. 'Following station'		,['body'] = '\n|-'			.. '\n| ' .. style['body leftcell'] .. left .. left_toward			.. '\n| ' .. style['body banner'] .. color .. '"|' .. '\n| ' .. style['body midcell'] .. l_link .. '\n| ' .. style['body banner'] .. color .. '"|'			.. '\n| ' .. style['body rightcell'] .. right .. right_toward		,['end'] = '\n|}'	}	option = {		['all'] = row['start'] .. row['header'] .. row['body'] .. row['end']		,['top'] = row['start'] .. row['header'] .. row['body']		,['mid'] = row['body']		,['bottom'] = row['body'] .. row['end']		,['header mid'] = row['header'] .. row['body']		,['header bottom'] = row['header'] .. row['body'] .. row['end']	}	t_output[i] = option[position]	end	return table.concat(t_output, '\n') end

return p