模組:香港巴士
外观
![]() | 此模块被引用於約2,900個頁面。 為了避免造成大規模的影響,所有對此模块的編輯應先於沙盒或測試樣例上測試。 測試後無誤的版本可以一次性地加入此模块中,但是修改前請務必於討論頁發起討論。 模板引用數量會自動更新。 |
子模組
- Module:香港巴士/hki:港島巴士
- Module:香港巴士/klnt:九龍及新界巴士
- Module:香港巴士/crh:過海隧道巴士
- Module:香港巴士/lantau:大嶼山巴士
- Module:香港巴士/aex:機場快綫穿梭巴士
-- placeholder for subpage, will be written later
-- rewrite {{九龍新界巴士簡單列表}} etc. into module to reduce load
local getArgs = require('Module:Arguments').getArgs
local alldata = {
klnt = require('Module:香港巴士/klnt');
hki = require('Module:香港巴士/hki');
crh = require('Module:香港巴士/crh');
lantau = require('Module:香港巴士/lantau');
aex = require('Module:香港巴士/aex')
}
local comp = {
kmb = "九龍巴士"; city = "城巴";
newworld = "新巴"; mtr = "港鐵巴士";
lantau = "新大嶼山巴士"; mtrshut = "港鐵接駁巴士";
crh = "過海隧道巴士"; longwin = "龍運巴士";
disney = "迪士尼樂園巴士"; ltshut = "大嶼山北部穿梭巴士";
airshut = "機場快綫穿梭巴士";
}
local p = {}
local dir = {'↺','→','⇄','→<br/>←','↺<br/>←','→<br/>↺'}
function split(inputstr, sep)
if sep == nil then
sep = "%s"
end
local t={}
for str in string.gmatch(inputstr, "([^"..sep.."]+)") do
table.insert(t, str)
end
return t
end
function p.main(frame)
local args = getArgs(frame)
return p._main(args)
end
function p._main(args)
local grp = ''
if args.l == "klnt" or args.l == "九龍" or args.l == "新界" or args.l == "九龍新界" then grp = "klnt"
elseif args.l == "hki" or args.l == "港島" or args.l == "香港島" then grp = "hki"
elseif args.l == "crh" or args.l == "過海" then grp = "crh"
elseif args.l == "lantau" or args.l == "大嶼山" then grp = "lantau"
elseif args.l == "aex" or args.l == "機場" then grp = "aex"
end
local data = alldata[grp]
local out = ""
-- Main module code goes here.
-- return args
for i = 1, 100, 1 do
if not(args[i]) then break end
local special = string.find('' .. args[i], "_s")
local route = split(args[i], "_s")[1]
local spi = split(args[i], "_s")[2]
if spi == nil then spi = "" end
out = out .. '\n|-\n| style="text-align: right; padding-right: 10px" | [['
if data[route] then
out = out .. comp[data[route].company] .. route
if string.match(route, "^%d$") then out = out .. "號" end
if data[route].company == "mtr" or data[route].company == "mtrshut"
or data[route].company == "airshut" then out = out .. "綫"
else out = out .. "線" end
out = out .. "|" .. route .. "]]"
out = out .. '\n| style="text-align: right; white-space: nowrap" | '
if special then
out = out .. data[route]['special' .. spi .. '_endpoint1']
.. '\n| style="text-align: center; padding: 0px 8px 0px 8px" |'
.. dir[data[route]['special' .. spi .. '_direction']+1]
.. '\n| style="white-space: nowrap" |'
.. data[route]['special' .. spi .. '_endpoint2']
.. '\n| style="padding-left: 10px" |'
.. data[route]['special' .. spi .. '_status']
else
out = out .. data[route]['endpoint1']
.. '\n| style="text-align: center; padding: 0px 8px 0px 8px" |'
.. dir[data[route]['direction']+1]
.. '\n| style="white-space: nowrap" |'
.. data[route]['endpoint2']
.. '\n| style="padding-left: 10px" |'
.. data[route]['status']
end
else
out = out .. '\n| colspan="3" style="text-align: center" | (沒有資料)'
end
end
return out
end
return p