| Line 1: |
Line 1: |
| | local x = "%1 station (MTR)" | | local x = "%1 station (MTR)" |
| | local y = "%1 railway station" | | local y = "%1 railway station" |
| | + | |
| | + | local c = { |
| | + | EastRail = '53B7E8', |
| | + | WestRail = 'A3238F', |
| | + | KwunTong = '00AB4E', |
| | + | TsuenWan = 'ED1D24', |
| | + | Island = '007DC5', |
| | + | TseungKwanO = '7D499D', |
| | + | TungChung = 'F7943E', |
| | + | AirportExpress = '00888A', |
| | + | DisneylandResort = 'F173AC', |
| | + | SouthIsland = 'BAC429', |
| | + | TuenMa = '923011', |
| | + | SouthIslandWest = '9182C2', |
| | + | EastKowloon = 'D3C087', |
| | + | Northern = 'E0027A', |
| | + | MaOnShan = '923011', |
| | + | CentralRailLink = 'CCCCCC', |
| | + | GuangzhouKowloon = '824CA0', |
| | + | BeijingKowloon = '008000', |
| | + | ShanghaiKowloon = 'FFA500', |
| | + | LightRail = 'D3A809', |
| | + | NgongPing360 = '94989A', |
| | + | HighSpeedRail = 'BBB0A3', |
| | + | } |
| | + | |
| | + | -- Draw stacked bottom bars |
| | + | local function bottomBars(cols) |
| | + | local n = #cols |
| | + | if n == 0 then return "" end |
| | + | local total = n * 6 + 1 |
| | + | local images = {"linear-gradient(#11254A,#11254A)"} |
| | + | local sizes = {"100% calc(100% - "..total.."px)"} |
| | + | local pos = {"left top"} |
| | + | local off = 0 |
| | + | for _, hex in ipairs(cols) do |
| | + | off = off + 1 |
| | + | images[#images+1], sizes[#sizes+1], pos[#pos+1] = "linear-gradient(#"..hex..",#"..hex..")", "100% 5px", "left bottom "..off.."px" |
| | + | off = off + 5 |
| | + | end |
| | + | return "background-color:transparent; background-image:"..table.concat(images,",").."; background-size:"..table.concat(sizes,",").."; background-position:"..table.concat(pos,",").."; background-repeat:no-repeat; padding-bottom:calc(0.3em + "..total.."px);" |
| | + | end |
| | + | |
| | + | -- Convert input text to stacked bottom bars |
| | + | local function styleFromNames(styleText) |
| | + | local base = "font-size:125%; font-weight:bold; color:#FFFFFF; background-color:#11254A; padding:0.3em 4px; line-height:110%;" |
| | + | if not styleText or styleText == "" then return base end |
| | + | local cols = {} |
| | + | for part in styleText:gmatch("[^,]+") do |
| | + | local key = (part or ""):gsub("[^%w]", "") |
| | + | local hex = c[key] |
| | + | if not hex then return base end |
| | + | cols[#cols+1] = hex |
| | + | end |
| | + | local rev = {} |
| | + | for i = #cols, 1, -1 do |
| | + | rev[#rev+1] = cols[i] |
| | + | end |
| | + | return base .. bottomBars(rev) |
| | + | end |
| | | | |
| | local p = { | | local p = { |
| Line 7: |
Line 67: |
| | ["line icon format"] = "link", | | ["line icon format"] = "link", |
| | ["rail box format"] = "title", | | ["rail box format"] = "title", |
| − | ["name format"] = { | + | ["name format"] = setmetatable({}, { |
| − | "font-size: 160%; font-family:sans-serif; font-weight: bolder; color: #FFFFFF; background-color: #11254A; padding: 0.3em 4px; line-height: 110%"
| + | __index = function(_, key) |
| − | }, | + | return styleFromNames(key) |
| | + | end |
| | + | }), |
| | ["header background color"] = { | | ["header background color"] = { |
| | "11254A", | | "11254A", |
| − | }, | + | },["header text color"] = "FFFFFF", |
| | ["station format"] = { | | ["station format"] = { |
| | "%1 station", | | "%1 station", |
| Line 45: |
Line 107: |
| | ["Chater"] = "Central station (MTR)", | | ["Chater"] = "Central station (MTR)", |
| | ["Lai Wan"] = "Mei Foo station", | | ["Lai Wan"] = "Mei Foo station", |
| − | ["Waterloo"] = "Yau Ma Tei station" | + | ["Waterloo"] = "Yau Ma Tei station", |
| | + | |
| | + | ["Ngong Ping Terminal"] = "%1", |
| | + | |
| | }, | | }, |
| | ["lines"] = { | | ["lines"] = { |
| Line 53: |
Line 118: |
| | }, | | }, |
| | ["East Rail"] = { | | ["East Rail"] = { |
| − | ["color"] = "53B7E8", | + | ["color"] = c.EastRail, |
| | ["left terminus"] = "Admiralty", | | ["left terminus"] = "Admiralty", |
| | ["right terminus"] = {"Lo Wu", "Lok Ma Chau"}, | | ["right terminus"] = {"Lo Wu", "Lok Ma Chau"}, |
| | }, | | }, |
| | ["West Rail"] = { | | ["West Rail"] = { |
| − | ["color"] = "A3238F", | + | ["color"] = c.WestRail, |
| | ["left terminus"] = "Hung Hom", | | ["left terminus"] = "Hung Hom", |
| | ["right terminus"] = "Tuen Mun", | | ["right terminus"] = "Tuen Mun", |
| | }, | | }, |
| | ["Kwun Tong"] = { | | ["Kwun Tong"] = { |
| − | ["color"] = "00AB4E", | + | ["color"] = c.KwunTong, |
| | ["left terminus"] = "Whampoa", | | ["left terminus"] = "Whampoa", |
| | ["right terminus"] = "Tiu Keng Leng", | | ["right terminus"] = "Tiu Keng Leng", |
| | }, | | }, |
| | ["Tsuen Wan"] = { | | ["Tsuen Wan"] = { |
| − | ["color"] = "ED1D24", | + | ["color"] = c.TsuenWan, |
| | ["left terminus"] = "Central", | | ["left terminus"] = "Central", |
| | ["right terminus"] = "Tsuen Wan", | | ["right terminus"] = "Tsuen Wan", |
| Line 74: |
Line 139: |
| | ["Island"] = { | | ["Island"] = { |
| | ["title"] = "[[Island line (MTR)|Island line]]", | | ["title"] = "[[Island line (MTR)|Island line]]", |
| − | ["color"] = "007DC5", | + | ["color"] = c.Island, |
| | ["left terminus"] = "Kennedy Town", | | ["left terminus"] = "Kennedy Town", |
| | ["right terminus"] = "Chai Wan", | | ["right terminus"] = "Chai Wan", |
| | }, | | }, |
| | ["Tseung Kwan O"] = { | | ["Tseung Kwan O"] = { |
| − | ["color"] = "7D499D", | + | ["color"] = c.TseungKwanO, |
| | ["left terminus"] = "North Point", | | ["left terminus"] = "North Point", |
| | ["right terminus"] = "Po Lam", | | ["right terminus"] = "Po Lam", |
| Line 103: |
Line 168: |
| | }, | | }, |
| | ["Tung Chung"] = { | | ["Tung Chung"] = { |
| − | ["color"] = "F7943E", | + | ["color"] = c.TungChung, |
| | ["left terminus"] = "Hong Kong", | | ["left terminus"] = "Hong Kong", |
| | ["right terminus"] = "Tung Chung", | | ["right terminus"] = "Tung Chung", |
| Line 121: |
Line 186: |
| | ["Airport Express"] = { | | ["Airport Express"] = { |
| | ["title"] = "[[Airport Express (MTR)|Airport Express]]", | | ["title"] = "[[Airport Express (MTR)|Airport Express]]", |
| − | ["color"] = "00888A", | + | ["color"] = c.AirportExpress, |
| | ["left terminus"] = "Hong Kong", | | ["left terminus"] = "Hong Kong", |
| | ["icon"] = "[[File:AirportExpressMTR.svg|16px|link=Airport Express (MTR)]]", | | ["icon"] = "[[File:AirportExpressMTR.svg|16px|link=Airport Express (MTR)]]", |
| Line 127: |
Line 192: |
| | }, | | }, |
| | ["Disneyland Resort"] = { | | ["Disneyland Resort"] = { |
| − | ["color"] = "F173AC", | + | ["color"] = c.DisneylandResort, |
| | ["left terminus"] = "Sunny Bay", | | ["left terminus"] = "Sunny Bay", |
| | ["right terminus"] = "Disneyland Resort" | | ["right terminus"] = "Disneyland Resort" |
| | }, | | }, |
| | ["South Island"] = { | | ["South Island"] = { |
| − | ["color"] = "BAC429", | + | ["color"] = c.SouthIsland, |
| | ["left terminus"] = "Admiralty", | | ["left terminus"] = "Admiralty", |
| | ["right terminus"] = "South Horizons", | | ["right terminus"] = "South Horizons", |
| | }, | | }, |
| | ["Tuen Ma"] = { | | ["Tuen Ma"] = { |
| − | ["color"] = "923011", | + | ["color"] = c.TuenMa, |
| | ["left terminus"] = "Wu Kai Sha", | | ["left terminus"] = "Wu Kai Sha", |
| | ["right terminus"] = "Tuen Mun", | | ["right terminus"] = "Tuen Mun", |
| Line 151: |
Line 216: |
| | ["title"] = "[[South Island line (West)]]", | | ["title"] = "[[South Island line (West)]]", |
| | ["short name"] = "South Island (West)", | | ["short name"] = "South Island (West)", |
| − | ["color"] = "9182C2", | + | ["color"] = c.SouthIslandWest, |
| | ["left terminus"] = "HKU", | | ["left terminus"] = "HKU", |
| | ["right terminus"] = "Wong Chuk Hang" | | ["right terminus"] = "Wong Chuk Hang" |
| | }, | | }, |
| | ["East Kowloon"] = { | | ["East Kowloon"] = { |
| − | ["color"] = "D3C087", | + | ["color"] = c.EastKowloon, |
| | ["left terminus"] = "Diamond Hill", | | ["left terminus"] = "Diamond Hill", |
| | ["right terminus"] = "Po Lam" | | ["right terminus"] = "Po Lam" |
| Line 162: |
Line 227: |
| | ["Northern"] = { | | ["Northern"] = { |
| | ["title"] = "[[Northern Link (MTR)|Northern Link]]", | | ["title"] = "[[Northern Link (MTR)|Northern Link]]", |
| − | ["color"] = "E0027A", | + | ["color"] = c.Northern, |
| | ["left terminus"] = "Kam Sheung Road", | | ["left terminus"] = "Kam Sheung Road", |
| | ["right terminus"] = {"Lok Ma Chau", "Kwu Tung"} | | ["right terminus"] = {"Lok Ma Chau", "Kwu Tung"} |
| | }, | | }, |
| | ["Ma On Shan"] = { | | ["Ma On Shan"] = { |
| − | ["color"] = "923011", | + | ["color"] = c.MaOnShan, |
| | ["left terminus"] = "Wu Kai Sha", | | ["left terminus"] = "Wu Kai Sha", |
| | ["right terminus"] = "Tai Wai" | | ["right terminus"] = "Tai Wai" |
| Line 173: |
Line 238: |
| | ["Central Rail Link"] = { | | ["Central Rail Link"] = { |
| | ["title"] = "[[Central Rail Link]]", | | ["title"] = "[[Central Rail Link]]", |
| − | ["color"] = "CCCCCC", | + | ["color"] = c.CentralRailLink, |
| | ["left terminus"] = "Kam Sheung Road", | | ["left terminus"] = "Kam Sheung Road", |
| | ["right terminus"] = "Kowloon Tong" | | ["right terminus"] = "Kowloon Tong" |
| Line 180: |
Line 245: |
| | ["title"] = "[[Guangzhou–Kowloon through train]]", | | ["title"] = "[[Guangzhou–Kowloon through train]]", |
| | ["short name"] = "Guangzhou–Kowloon", | | ["short name"] = "Guangzhou–Kowloon", |
| − | ["color"] = "824CA0", | + | ["color"] = c.GuangzhouKowloon, |
| | ["left terminus"] = "Guangzhou East", | | ["left terminus"] = "Guangzhou East", |
| | ["right terminus"] = "Hung Hom" | | ["right terminus"] = "Hung Hom" |
| Line 187: |
Line 252: |
| | ["title"] = "[[Beijing–Kowloon through train]]", | | ["title"] = "[[Beijing–Kowloon through train]]", |
| | ["short name"] = "Beijing–Kowloon", | | ["short name"] = "Beijing–Kowloon", |
| − | ["color"] = "008000", | + | ["color"] = c.BeijingKowloon, |
| | ["left terminus"] = "Beijing West", | | ["left terminus"] = "Beijing West", |
| | ["right terminus"] = "Hung Hom" | | ["right terminus"] = "Hung Hom" |
| Line 194: |
Line 259: |
| | ["title"] = "[[Shanghai–Kowloon through train]]", | | ["title"] = "[[Shanghai–Kowloon through train]]", |
| | ["short name"] = "Shanghai–Kowloon", | | ["short name"] = "Shanghai–Kowloon", |
| − | ["color"] = "FFA500", | + | ["color"] = c.ShanghaiKowloon, |
| | ["left terminus"] = "Shanghai", | | ["left terminus"] = "Shanghai", |
| | ["right terminus"] = "Hung Hom" | | ["right terminus"] = "Hung Hom" |
| | }, | | }, |
| | ["Light Rail"] = { | | ["Light Rail"] = { |
| − | ["icon"] = "", | + | ["icon"] = "[[File:MTRlightrail.svg|16px|link=Light Rail (MTR)]]", |
| | ["title"] = "[[Light Rail (MTR)|Light Rail]]", | | ["title"] = "[[Light Rail (MTR)|Light Rail]]", |
| − | ["color"] = "D3A809" | + | ["color"] = c.LightRail |
| | }, | | }, |
| | ["Ngong Ping 360"] = { | | ["Ngong Ping 360"] = { |
| | + | ["icon"] = "[[File:MTRNgongPing360.svg|16px|link=Ngong Ping 360]]", |
| | ["title"] = "[[Ngong Ping 360]]", | | ["title"] = "[[Ngong Ping 360]]", |
| − | ["color"] = "94989A" | + | ["color"] = c.NgongPing360, |
| | + | ["left terminus"] = "Tung Chung Terminal", |
| | + | ["right terminus"] = "Ngong Ping Terminal", |
| | + | }, |
| | + | ["High Speed Rail"] = { |
| | + | ["icon"] = "[[File:MTRExpressRail.svg|16px|link=Hong Kong Express Rail Link]]", |
| | + | ["title"] = "[[Hong Kong Express Rail Link]]", |
| | + | ["color"] = c.HighSpeedRail |
| | } | | } |
| | }, | | }, |
| Line 336: |
Line 409: |
| | ["360"] = "Ngong Ping 360", | | ["360"] = "Ngong Ping 360", |
| | ["np360"] = "Ngong Ping 360", | | ["np360"] = "Ngong Ping 360", |
| − | ["ngp"] = "Ngong Ping 360" | + | ["ngp"] = "Ngong Ping 360", |
| | + | ["xrl"] = "High Speed Rail", |
| | + | ["guangshengang"] = "High Speed Rail", |
| | + | ["guangzhou-shenzhen-hong kong"] = "High Speed Rail" |
| | } | | } |
| | } | | } |
| | | | |
| | return p | | return p |