"मोड्युल:Infobox road/color" का संशोधनहरू बिचको अन्तर
स्वरूप
Content deleted Content added
editprotected |
कुनै सम्पादन सारांश छैन |
||
(९ प्रयोगकर्ताहरू द्वारा गरिएको बीचको ३४ अवतरण देखाइएन) | |||
पङ्क्ति ४: | पङ्क्ति ४: | ||
function Country:new(obj) |
function Country:new(obj) |
||
obj = obj or {} |
|||
setmetatable(obj, self) |
|||
self.__index = self |
|||
return obj |
|||
end |
end |
||
function Country:color(args) |
function Country:color(args) |
||
local type = args.type |
|||
return self[type] or self.default |
|||
end |
end |
||
function Country:addTypesAsColor(types, color) |
function Country:addTypesAsColor(types, color) |
||
for i,type in pairs(types) do |
|||
self[type] = color |
|||
end |
|||
end |
end |
||
local colors = {} |
local colors = {} |
||
do |
do |
||
function colors:color(args) |
|||
local headerType = args.headerType |
|||
local countryArg = args.country |
|||
local headerTypeColor = self[headerType] |
|||
if headerTypeColor then return headerTypeColor end |
|||
local success, country = pcall(self.country, self, countryArg) |
|||
if not(success) then |
|||
return 'background:#cedff2;' |
|||
else |
|||
return country:color(args) |
|||
end |
|||
end |
|||
function colors:country(name) |
|||
local color = self[name] |
|||
if color then return color end |
|||
if name == 'CAN' then |
|||
local module = require(string.format("Module:Infobox road/color/%s", name)) |
|||
local module = require(string.format("Module:Infobox road/color/%s", name)) |
|||
return module.colors |
|||
return module.colors |
|||
end |
|||
else |
|||
error("Country not included", 0) |
|||
do -- Single-color countries |
|||
end |
|||
colors.BEL = Country:new{default = "background:#0071B3; color:#fff;"} |
|||
end |
|||
colors.BGD = Country:new{default = "background:#2C6700; color:white;"} |
|||
colors.CHN = Country:new{default = "background:#006A4D; color:white;"} |
|||
do -- Single-color countries |
|||
colors.EUR = Country:new{default = "background:#08842C; color:#fff;"} |
|||
colors.ARG = Country:new{default = "background:#006A4D; color:#fff;"} |
|||
colors.BEL = Country:new{default = "background:#005b8c; color:#fff;"} |
|||
colors.BGD = Country:new{default = "background:#2C6700; color:#fff;"} |
|||
colors.BOL = Country:new{default = "background:#006A4D; color:#fff;"} |
|||
colors.CHL = Country:new{default = "background:#006A4D; color:#fff;"} |
|||
colors.CHN = Country:new{default = "background:#006A4D; color:#fff;"} |
|||
colors.CRI = Country:new{default = "background:#006A4D; color:#fff;"} |
|||
colors.ECU = Country:new{default = "background:#006A4D; color:#fff;"} |
|||
end -- Single-color countries |
|||
colors.EST = Country:new{default = "background:#0079C1; color:#fff;"} |
|||
colors.EUR = Country:new{default = "background:#08842C; color:#fff;"} |
|||
do -- Multi-color countries |
|||
colors.IND = Country:new{default = "background:#128807; color:#fff;"} |
|||
do -- Albania |
|||
colors.JOR = Country:new{default = "background:#0079C1; color:#fff;"} |
|||
colors.HKG = Country:new{default = "background:#006A4D; color:#fff;"} |
|||
colors.ISL = Country:new{default = "background:#FFD200; border:2px solid #000;"} |
|||
colors.ALB = ALB |
|||
colors.MEX = Country:new{default = "background:#006A4D; color:#fff;"} |
|||
end -- Albania |
|||
colors.NPL = Country:new{default = "background:#00703C; color:#fff;"} |
|||
do -- Australia |
|||
colors.NZL = Country:new{default = "background:#006A4D; color:#fff;"} |
|||
colors.SWE = Country:new{default = "background:#003F87; color:#fff;"} |
|||
colors.URY = Country:new{default = "background:#006A4D; color:#fff;"} |
|||
AUS:addTypesAsColor({"highway", "city highway"}, "background:#E9F9D2;") |
|||
colors.VNM = Country:new{default = "background:#003399; color:#fff;"} |
|||
end -- Single-color countries |
|||
AUS:addTypesAsColor({"street"}, "background:#F9E2D2;") |
|||
AUS:addTypesAsColor({"track"}, "background:#fee8ab;") |
|||
do -- Multi-color countries |
|||
colors.AUS = AUS |
|||
do -- Albania |
|||
end -- Australia |
|||
local ALB = Country:new{default = "background:#00408B; color:#fff;"} |
|||
do -- Austria |
|||
ALB:addTypesAsColor({"A"}, "background:#08842C; color:#fff;") |
|||
colors.ALB = ALB |
|||
AUT:addTypesAsColor({"A", "S", "B"}, "background:#276FB7; color:#fff;") |
|||
end -- Albania |
|||
colors.AUT = AUT |
|||
do -- UAE |
|||
end -- Austria |
|||
local ARE = Country:new{default = "background:#008033; color:#fff;"} |
|||
do -- Bulgaria |
|||
ARE:addTypesAsColor({"E"}, "background:#0044aa; color:#fff;") |
|||
colors.ARE = ARE |
|||
BGR:addTypesAsColor({"A"}, "background:#006A4D; color:white;") |
|||
end -- UAE |
|||
colors.BGR = BGR |
|||
do -- Asian Highway Network |
|||
end -- Bulgaria |
|||
local ASIA = Country:new{default = "background:#fff; border:2px solid #000;"} |
|||
do -- Croatia |
|||
ASIA:addTypesAsColor({"AH"}, "background:#1e2c76; color:#fff;") |
|||
local HRV = Country:new{default = "background:#cedff2;"} |
|||
colors.ASIA = ASIA |
|||
HRV:addTypesAsColor({"E", "A"}, "background:#08842C; color:#fff;") |
|||
end -- Asian Highway Network |
|||
HRV:addTypesAsColor({"D"}, "background:#0066CC; color:#fff;") |
|||
do -- Australia |
|||
HRV:addTypesAsColor({"Z"}, "background:#FFCC33; color:black;") |
|||
local AUS = Country:new{default = "background:#3A7119; color:#FFE133;"} |
|||
colors.HRV = HRV |
|||
AUS:addTypesAsColor({"freeway"}, "background:#D2E2F9;") |
|||
end -- Croatia |
|||
AUS:addTypesAsColor({"highway", "city highway"}, "background:#E9F9D2;") |
|||
do -- Cyprus |
|||
AUS:addTypesAsColor({"road", "rural road"}, "background:#FFFFE0;") |
|||
local CYP = Country:new{default = "background:#003F87; color:#FFC000;"} |
|||
AUS:addTypesAsColor({"street"}, "background:#F9E2D2;") |
|||
AUS:addTypesAsColor({"track"}, "background:#fee8ab;") |
|||
colors.CYP = CYP |
|||
colors.AUS = AUS |
|||
end -- Cyprus |
|||
end -- Australia |
|||
do -- Czech Republic |
|||
do -- Austria |
|||
local CZE = Country:new{default = "background:#003F87; color:white;"} |
|||
local AUT = Country:new{default = "background:#fff; border:2px solid #000;"} |
|||
AUT:addTypesAsColor({"A", "S", "B"}, "background:#276FB7; color:#fff;") |
|||
colors.CZE = CZE |
|||
colors.AUT = AUT |
|||
end -- Czech Republic |
|||
end -- Austria |
|||
do -- France |
|||
do -- Bosnia and Herzegovina |
|||
local FRA = Country:new{default = "background:#fff; border:1px solid #000;"} |
|||
local BIH = Country:new{default = "background:#0B8F4B; color:#fff;"} |
|||
BIH:addTypesAsColor({"M", "B"}, "background:#0066CC; color:#fff;") |
|||
BIH:addTypesAsColor({"R"}, "background:#FFCC33; border:2px solid #000;") |
|||
colors.FRA = FRA |
|||
colors.BIH = BIH |
|||
end -- Bulgaria |
|||
do -- Bulgaria |
|||
local BGR = Country:new{default = "background:#003F87; color:#fff;"} |
|||
BGR:addTypesAsColor({"A"}, "background:#006A4D; color:#fff;") |
|||
colors.BGR = BGR |
|||
end -- Bulgaria |
|||
do -- Croatia |
|||
local HRV = Country:new{default = "background:#cedff2;"} |
|||
HRV:addTypesAsColor({"E", "A"}, "background:#08842C; color:#fff;") |
|||
HRV:addTypesAsColor({"D"}, "background:#0066CC; color:#fff;") |
|||
HRV:addTypesAsColor({"Z"}, "background:#FFCC33;") |
|||
colors.DEU = DEU |
|||
colors.HRV = HRV |
|||
end -- Germany |
|||
end -- Croatia |
|||
do -- Greece |
|||
do -- Cyprus |
|||
local GRC = Country:new{default = "background:#0079C1; color:#FFF;"} |
|||
local CYP = Country:new{default = "background:#003F87; color:#FFC000;"} |
|||
CYP:addTypesAsColor({"A"}, "background:#005024; color:#FFC000;") |
|||
colors.GRC = GRC |
|||
colors.CYP = CYP |
|||
end -- Greece |
|||
end -- Cyprus |
|||
do -- Hungary |
|||
do -- Czech Republic |
|||
local HUN = Country:new{default = "background:#006A4D; color:#fff;"} |
|||
local CZE = Country:new{default = "background:#003F87; color:#fff;"} |
|||
CZE:addTypesAsColor({"D", "R"}, "background:#006A4D; color:#fff;") |
|||
colors.HUN = HUN |
|||
colors.CZE = CZE |
|||
end -- Hungary |
|||
end -- Czech Republic |
|||
do -- Denmark |
|||
local IRL = Country:new{default = "background:#cedff2;"} |
|||
local DNK = Country:new{default = "background:#039; color:#fff;"} |
|||
DNK:addTypesAsColor({"E", "M"}, "background:#006A4D; color:#fff;") |
|||
DNK:addTypesAsColor({"S"}, "background:#fff; border:2px solid #af1e2d; color:#af1e2d;") |
|||
colors.DNK = DNK |
|||
end -- Denmark |
|||
do -- Finland |
|||
local FIN = Country:new{default = "background:#005eb8; color:#fff;"} |
|||
FIN:addTypesAsColor({"E"}, "background:#009775; color:#fff;") |
|||
colors.FIN = FIN |
|||
ITA:addTypesAsColor({"SS"}, "background:#003F87; color:#fff;") |
|||
end -- Finland |
|||
colors.ITA = ITA |
|||
do -- France |
|||
end -- Italy |
|||
local FRA = Country:new{default = "background:#fff; border:2px solid #000;"} |
|||
do -- Malaysia |
|||
FRA:addTypesAsColor({"A"}, "background:#0079C1; color:#fff;") |
|||
FRA:addTypesAsColor({"N"}, "background:#006A4D; color:#fff;") |
|||
FRA:addTypesAsColor({"E"}, "background:#28961e; color:#fff;") |
|||
colors.MYS = MYS |
|||
colors.FRA = FRA |
|||
end -- Malaysia |
|||
colors.MTQ = FRA |
|||
do -- Poland |
|||
colors.DZA = FRA |
|||
local POL = Country:new{default = "background:#006A4D; color:#fff;"} |
|||
end -- France |
|||
POL:addTypesAsColor({"A", "S"}, "background:#0079C1; color:#fff;") |
|||
do -- Georgia |
|||
colors.POL = POL |
|||
local GEO = Country:new{default = "background:#cedff2;"} |
|||
end --Poland |
|||
GEO:addTypesAsColor({"A", "International"}, "background:#039; color:#fff;") |
|||
do -- Slovakia |
|||
colors.GEO = GEO |
|||
local SVK = Country:new{default = "background:#0079C1; color:#fff;"} |
|||
end -- Georgia |
|||
SVK:addTypesAsColor({"D", "R"}, "background:#006A4D; color:#fff;") |
|||
do -- Germany |
|||
colors.SVK = SVK |
|||
local DEU = Country:new{default = "background:#cedff2;"} |
|||
end -- Slovakia |
|||
DEU:addTypesAsColor({"A", "Autobahn"}, "background:#003ABD; color:#fff;") |
|||
do -- South Africa |
|||
DEU:addTypesAsColor({"B", "Bundesstraße", "Bundesstrasse"}, "background:#FC3;") |
|||
local ZAF = Country:new{default = "background:#006A4D; color:#FFF;"} |
|||
DEU:addTypesAsColor({"E"}, "background:#08842C; color:#fff;") |
|||
DEU:addTypesAsColor({"Scenic"}, "background:#633A34; color:#fff;") |
|||
colors.ZAF = ZAF |
|||
colors.DEU = DEU |
|||
end -- South Africa |
|||
end -- Germany |
|||
do -- Spain |
|||
do -- Ghana |
|||
local GHA = Country:new{default = "background:#006A4D; color:#fff;"} |
|||
GHA:addTypesAsColor({"N"}, "background:#0079C1; color:#fff;") |
|||
colors.GHA = GHA |
|||
end -- Ghana |
|||
do -- Greece |
|||
local GRC = Country:new{default = "background:#0079C1; color:#fff;"} |
|||
GRC:addTypesAsColor({"A"}, "background:#006A4D; color:#fff;") |
|||
colors.GRC = GRC |
|||
end -- Greece |
|||
do -- Hungary |
|||
local HUN = Country:new{default = "background:#006A4D; color:#fff;"} |
|||
HUN:addTypesAsColor({"M"}, "background:#0079C1; color:#fff;") |
|||
colors.HUN = HUN |
|||
end -- Hungary |
|||
do -- |
do -- Iran |
||
local IRN = Country:new{default = "background:#cedff2;"} |
|||
IRN:addTypesAsColor({"freeway"}, "background:#0079C1; color:#fff;") |
|||
IRN:addTypesAsColor({"expressway", "road"}, "background:#00703C; color:#fff;") |
|||
colors.USA = USA |
|||
IRN:addTypesAsColor({"boulevard", "street"}, "background:#fff; color:#000;") |
|||
end -- United States |
|||
colors.IRN = IRN |
|||
end -- Multi-color countries |
|||
end -- Iran |
|||
do -- Republic of Ireland |
|||
local IRL = Country:new{default = "background:#cedff2;"} |
|||
IRL:addTypesAsColor({"M"}, "background:#0079C1; color:#fff;") |
|||
IRL:addTypesAsColor({"N"}, "background:#00703C; color:#FFD200;") |
|||
IRL:addTypesAsColor({"R"}, "background:#fff; border:2px solid #000;") |
|||
colors.IRL = IRL |
|||
end -- Republic of Ireland |
|||
do -- Isle of Man |
|||
local IMN = Country:new{default = "background:#fff; border:2px solid #000;"} |
|||
IMN:addTypesAsColor({"A", "Primary"}, "background:#00703C; color:#FFD200;") |
|||
colors.IMN = IMN |
|||
end -- Isle of Man |
|||
do -- Israel |
|||
local ISR = Country:new{default = "background:#007E00; color:#fff;"} |
|||
ISR:addTypesAsColor({"Fwy", "Freeway", "Dual"}, "background:#0000FE; color:#fff;") |
|||
colors.ISR = ISR |
|||
end -- Israel |
|||
do -- Italy |
|||
local ITA = Country:new{default = "background:#cedff2;"} |
|||
ITA:addTypesAsColor({"A"}, "background:#08842C; color:#fff;") |
|||
ITA:addTypesAsColor({"RA"}, "background:#08842C; color:#fff;") |
|||
ITA:addTypesAsColor({"SS"}, "background:#003F87; color:#fff;") |
|||
ITA:addTypesAsColor({"E"}, "background:#08842C; color:#fff;") |
|||
colors.ITA = ITA |
|||
end -- Italy |
|||
do -- Jamaica |
|||
local JAM = Country:new{default = "background:#00703C; color:#fff;"} |
|||
JAM:addTypesAsColor({"T"}, "background:#0079C1; color:#fff;") |
|||
colors.JAM = JAM |
|||
end -- Jamaica |
|||
do -- Kosovo |
|||
local KOS = Country:new{default = "background:#0066cc; color:#fff;"} |
|||
KOS:addTypesAsColor({"R"}, "background:#009933; color:#fff;") |
|||
KOS:addTypesAsColor({"E"}, "background:#08842C; color:#fff;") |
|||
colors.KOS = KOS |
|||
end -- Kosovo |
|||
do -- Netherlands |
|||
local NLD = Country:new{default = "background:#0079C1; color:#fff;"} |
|||
NLD:addTypesAsColor({"E"}, "background:#08842C; color:#fff;") |
|||
colors.NLD = NLD |
|||
end -- Netherlands |
|||
do -- Norway |
|||
local NOR = Country:new{default = "background:#F2A900;"} |
|||
NOR:addTypesAsColor({"E"}, "background:#00965E; color:#fff;") |
|||
colors.NOR = NOR |
|||
end -- Norway |
|||
do -- Northern Ireland |
|||
local NIR = Country:new{default = "background:#fff; border:2px solid #000;"} |
|||
NIR:addTypesAsColor({"M", "Motorway", "AM", "MNamed"}, "background:#0079C1; color:#fff;") |
|||
NIR:addTypesAsColor({"A", "Primary"}, "background:#00703C; color:#FFD200;") |
|||
colors.NIR = NIR |
|||
end -- Northern Ireland |
|||
do -- Malaysia |
|||
local MYS = Country:new{default = "background:#0079C1; color:#fff;"} |
|||
MYS:addTypesAsColor({"E"}, "background:#006A4D; color:#fff;") |
|||
colors.MYS = MYS |
|||
end -- Malaysia |
|||
do -- Morocco |
|||
local MAR = Country:new{default = "background:#fff; border:2px solid #000;"} |
|||
MAR:addTypesAsColor({"A"}, "background:#0079C1; color:#fff;") |
|||
MAR:addTypesAsColor({"Motorway"}, "background:#0079C1; color:#fff;") |
|||
colors.MAR = MAR |
|||
end -- Morocco |
|||
do -- Pakistan |
|||
local PAK = Country:new{default = "background:#0066cc; color:#fff;"} |
|||
PAK:addTypesAsColor({"M"}, "background:#22B14C; color:#fff;") |
|||
PAK:addTypesAsColor({"E"}, "background:#F5C31D; color:#000;") |
|||
colors.PAK = PAK |
|||
end -- Pakistan |
|||
do -- Philippines |
|||
local PHL = Country:new{default = "background:#093; color:#fff;"} |
|||
PHL:addTypesAsColor({"AH", "Asian Highway"}, "background:#1e2c76; color:#fff;") |
|||
colors.PHL = PHL |
|||
end -- Philippines |
|||
do -- Poland |
|||
local POL = Country:new{default = "background:#006A4D; color:#fff;"} |
|||
POL:addTypesAsColor({"A", "S"}, "background:#0079C1; color:#fff;") |
|||
colors.POL = POL |
|||
end --Poland |
|||
do -- Russia |
|||
local RUS = Country:new{default = "background:#0d69e1; color:#fff;"} |
|||
RUS:addTypesAsColor({"E"}, "background:#00a500; color:#fff;") |
|||
RUS:addTypesAsColor({"AH"}, "background:#00004e; color:#fff;") |
|||
colors.RUS = RUS |
|||
end --Russia |
|||
do -- Slovakia |
|||
local SVK = Country:new{default = "background:#0079C1; color:#fff;"} |
|||
SVK:addTypesAsColor({"D", "R"}, "background:#006A4D; color:#fff;") |
|||
colors.SVK = SVK |
|||
end -- Slovakia |
|||
do -- South Africa |
|||
local ZAF = Country:new{default = "background:#006A4D; color:#fff;"} |
|||
ZAF:addTypesAsColor({"M", "N"}, "background:#0079C1; color:#fff;") |
|||
colors.ZAF = ZAF |
|||
end -- South Africa |
|||
do -- Spain |
|||
local ESP = Country:new{default = "background:#E8E8E8;"} |
|||
ESP:addTypesAsColor({"E"}, "background:#13926C; color:#fff;") |
|||
ESP:addTypesAsColor({"A", "AP", "R", "Autovia", "Autovía", "Autopista", "autovia", "autovía", "autopista"}, "background:#19408B; color:#fff;") |
|||
ESP:addTypesAsColor({"N", "national", "nacional"}, "background:#bf0411; color:#fff;") |
|||
ESP:addTypesAsColor({"autonomica1", "autonómica1"}, "background:#E96310; color:#000;") |
|||
ESP:addTypesAsColor({"autonomica2", "autonómica2"}, "background:#5D3F0F; color:#fff;") |
|||
ESP:addTypesAsColor({"autonomica3", "autonómica3"}, "background:#F4B70D; color:#000;") |
|||
colors.ESP = ESP |
|||
end -- Spain |
|||
do -- Sri Lanka |
|||
local LKA = Country:new{default = "background:#006A4D; color:#fff;"} |
|||
LKA:addTypesAsColor({"E"}, "background:#0079C1; color:#fff;") |
|||
LKA:addTypesAsColor({"A"}, "background:#006A4D; color:#fff;") |
|||
colors.LKA = LKA |
|||
end -- Sri Lanka |
|||
do -- Switzerland |
|||
local CHE = Country:new{default = "background:#cedff2;"} |
|||
CHE:addTypesAsColor({"E"}, "background:#08842C; color:#fff;") |
|||
colors.CHE = CHE |
|||
end -- Switzerland |
|||
do -- Thailand |
|||
local THA = Country:new{default = "background:#006A4D; color:#fff;"} |
|||
THA:addTypesAsColor({"AH", "T"}, "background:#003F87; color:#fff;") |
|||
colors.THA = THA |
|||
end -- Thailand |
|||
do -- Turkey |
|||
local TUR = Country:new{default = "background:#006A4D; color:#fff;"} |
|||
TUR:addTypesAsColor({"state", "D"}, "background:#003F87; color:#fff;") |
|||
TUR:addTypesAsColor({"E"}, "background:#08842C; color:#fff;") |
|||
colors.TUR = TUR |
|||
end -- Turkey |
|||
do -- Ukraine |
|||
local UKR = Country:new{default = "background:#0000cc; color:#fff;"} |
|||
UKR:addTypesAsColor({"E"}, "background:#009900; color:#fff;") |
|||
colors.UKR = UKR |
|||
end -- Ukraine |
|||
do -- United Kingdom |
|||
local GBR = Country:new{default = "background:#fff; border:2px solid #000;"} |
|||
GBR:addTypesAsColor({"M", "Motorway", "AM", "MNamed"}, "background:#0079C1; color:#fff;") |
|||
GBR:addTypesAsColor({"A", "Primary"}, "background:#00703C; color:#FFD200;") |
|||
colors.GBR = GBR |
|||
end -- United Kingdom |
|||
do -- United States |
|||
local USA = Country:new{default = "background:#006A4D; color:#fff;"} |
|||
USA:addTypesAsColor({"FFH", "FR", "NER", "Rec", "RE", "Park", "Pkwy", "NSB", "NFSB", "FSB", "Scenic", "SB", "Post", "Postal"}, "background:#704214; color:#fff;") |
|||
colors.USA = USA |
|||
end -- United States |
|||
end -- Multi-color countries |
|||
do -- Built-in header types |
do -- Built-in header types |
||
colors["under construction"] = "background:#fc6;" |
|||
colors["const"] = "background:#fc6;" |
|||
colors["uc"] = "background:#fc6;" |
|||
colors["historic"] = "background:#704214; color:#fff;" |
|||
colors["historical"] = "background:#704214; color:#fff;" |
|||
colors["hist"] = "background:#704214; color:#fff;" |
|||
colors["scenic"] = "background:#704214; color:#fff;" |
|||
colors["decommissioned"] = "background:#AAA;" |
|||
colors["former"] = "background:#AAA;" |
|||
colors["motorway"] = "background:#003DA5; color:#fff;" --for Norway only |
|||
end -- Built-in header types |
|||
end -- Built-in header types |
|||
end |
end |
||
function p._color(args) |
function p._color(args) |
||
return colors:color(args) |
|||
end |
end |
||
function p.color(frame) |
function p.color(frame) |
||
local pframe = frame:getParent() |
|||
local config = frame.args -- the arguments passed BY the template, in the wikitext of the template itself |
|||
local args = pframe.args -- the arguments passed TO the template, in the wikitext that transcludes the template |
|||
local function emptyParam(param) |
|||
local empty = {[''] = true, ['¬'] = true} |
|||
if not(param) or empty[param] then |
|||
return nil |
|||
else |
|||
return param |
|||
end |
|||
end |
|||
local state = config.state or args.state |
|||
state = emptyParam(state) |
|||
local province = config.province or args.province |
|||
province = emptyParam(province) |
|||
local type = config.type or args.type |
|||
local subtype = config.subtype or args.subtype or nil |
|||
local headerType = args.header_type or config.header_type |
|||
headerType = emptyParam(headerType) |
|||
if headerType then |
|||
headerType = string.lower(headerType) |
|||
end |
|||
local countryArg = config.country or args.country |
|||
countryArg = emptyParam(countryArg) |
|||
local country = countryArg |
|||
if not(country) then |
|||
if colors[headerType] then |
|||
country = '' |
|||
else |
|||
local stateParam = state or province |
|||
if not(stateParam) then |
|||
country = '' |
|||
else |
|||
local countryMask = require "Module:Infobox road/meta/mask/country" |
|||
country = countryMask._country(stateParam, countryArg) |
|||
end |
|||
end |
|||
end |
|||
end |
|||
return p._color{country=country, state=state, province=province, type=type, subtype=subtype, headerType=headerType} |
|||
end |
end |
||
००:३५, १५ जुलाई २०२४को रुपमा हालको पुनरावलोकनहरू
local p = {}
Country = {}
function Country:new(obj)
obj = obj or {}
setmetatable(obj, self)
self.__index = self
return obj
end
function Country:color(args)
local type = args.type
return self[type] or self.default
end
function Country:addTypesAsColor(types, color)
for i,type in pairs(types) do
self[type] = color
end
end
local colors = {}
do
function colors:color(args)
local headerType = args.headerType
local countryArg = args.country
local headerTypeColor = self[headerType]
if headerTypeColor then return headerTypeColor end
local success, country = pcall(self.country, self, countryArg)
if not(success) then
return 'background:#cedff2;'
else
return country:color(args)
end
end
function colors:country(name)
local color = self[name]
if color then return color end
if name == 'CAN' then
local module = require(string.format("Module:Infobox road/color/%s", name))
return module.colors
else
error("Country not included", 0)
end
end
do -- Single-color countries
colors.ARG = Country:new{default = "background:#006A4D; color:#fff;"}
colors.BEL = Country:new{default = "background:#005b8c; color:#fff;"}
colors.BGD = Country:new{default = "background:#2C6700; color:#fff;"}
colors.BOL = Country:new{default = "background:#006A4D; color:#fff;"}
colors.CHL = Country:new{default = "background:#006A4D; color:#fff;"}
colors.CHN = Country:new{default = "background:#006A4D; color:#fff;"}
colors.CRI = Country:new{default = "background:#006A4D; color:#fff;"}
colors.ECU = Country:new{default = "background:#006A4D; color:#fff;"}
colors.EST = Country:new{default = "background:#0079C1; color:#fff;"}
colors.EUR = Country:new{default = "background:#08842C; color:#fff;"}
colors.IND = Country:new{default = "background:#128807; color:#fff;"}
colors.JOR = Country:new{default = "background:#0079C1; color:#fff;"}
colors.HKG = Country:new{default = "background:#006A4D; color:#fff;"}
colors.ISL = Country:new{default = "background:#FFD200; border:2px solid #000;"}
colors.MEX = Country:new{default = "background:#006A4D; color:#fff;"}
colors.NPL = Country:new{default = "background:#00703C; color:#fff;"}
colors.NZL = Country:new{default = "background:#006A4D; color:#fff;"}
colors.SWE = Country:new{default = "background:#003F87; color:#fff;"}
colors.URY = Country:new{default = "background:#006A4D; color:#fff;"}
colors.VNM = Country:new{default = "background:#003399; color:#fff;"}
end -- Single-color countries
do -- Multi-color countries
do -- Albania
local ALB = Country:new{default = "background:#00408B; color:#fff;"}
ALB:addTypesAsColor({"A"}, "background:#08842C; color:#fff;")
colors.ALB = ALB
end -- Albania
do -- UAE
local ARE = Country:new{default = "background:#008033; color:#fff;"}
ARE:addTypesAsColor({"E"}, "background:#0044aa; color:#fff;")
colors.ARE = ARE
end -- UAE
do -- Asian Highway Network
local ASIA = Country:new{default = "background:#fff; border:2px solid #000;"}
ASIA:addTypesAsColor({"AH"}, "background:#1e2c76; color:#fff;")
colors.ASIA = ASIA
end -- Asian Highway Network
do -- Australia
local AUS = Country:new{default = "background:#3A7119; color:#FFE133;"}
AUS:addTypesAsColor({"freeway"}, "background:#D2E2F9;")
AUS:addTypesAsColor({"highway", "city highway"}, "background:#E9F9D2;")
AUS:addTypesAsColor({"road", "rural road"}, "background:#FFFFE0;")
AUS:addTypesAsColor({"street"}, "background:#F9E2D2;")
AUS:addTypesAsColor({"track"}, "background:#fee8ab;")
colors.AUS = AUS
end -- Australia
do -- Austria
local AUT = Country:new{default = "background:#fff; border:2px solid #000;"}
AUT:addTypesAsColor({"A", "S", "B"}, "background:#276FB7; color:#fff;")
colors.AUT = AUT
end -- Austria
do -- Bosnia and Herzegovina
local BIH = Country:new{default = "background:#0B8F4B; color:#fff;"}
BIH:addTypesAsColor({"M", "B"}, "background:#0066CC; color:#fff;")
BIH:addTypesAsColor({"R"}, "background:#FFCC33; border:2px solid #000;")
colors.BIH = BIH
end -- Bulgaria
do -- Bulgaria
local BGR = Country:new{default = "background:#003F87; color:#fff;"}
BGR:addTypesAsColor({"A"}, "background:#006A4D; color:#fff;")
colors.BGR = BGR
end -- Bulgaria
do -- Croatia
local HRV = Country:new{default = "background:#cedff2;"}
HRV:addTypesAsColor({"E", "A"}, "background:#08842C; color:#fff;")
HRV:addTypesAsColor({"D"}, "background:#0066CC; color:#fff;")
HRV:addTypesAsColor({"Z"}, "background:#FFCC33;")
colors.HRV = HRV
end -- Croatia
do -- Cyprus
local CYP = Country:new{default = "background:#003F87; color:#FFC000;"}
CYP:addTypesAsColor({"A"}, "background:#005024; color:#FFC000;")
colors.CYP = CYP
end -- Cyprus
do -- Czech Republic
local CZE = Country:new{default = "background:#003F87; color:#fff;"}
CZE:addTypesAsColor({"D", "R"}, "background:#006A4D; color:#fff;")
colors.CZE = CZE
end -- Czech Republic
do -- Denmark
local DNK = Country:new{default = "background:#039; color:#fff;"}
DNK:addTypesAsColor({"E", "M"}, "background:#006A4D; color:#fff;")
DNK:addTypesAsColor({"S"}, "background:#fff; border:2px solid #af1e2d; color:#af1e2d;")
colors.DNK = DNK
end -- Denmark
do -- Finland
local FIN = Country:new{default = "background:#005eb8; color:#fff;"}
FIN:addTypesAsColor({"E"}, "background:#009775; color:#fff;")
colors.FIN = FIN
end -- Finland
do -- France
local FRA = Country:new{default = "background:#fff; border:2px solid #000;"}
FRA:addTypesAsColor({"A"}, "background:#0079C1; color:#fff;")
FRA:addTypesAsColor({"N"}, "background:#006A4D; color:#fff;")
FRA:addTypesAsColor({"E"}, "background:#28961e; color:#fff;")
colors.FRA = FRA
colors.MTQ = FRA
colors.DZA = FRA
end -- France
do -- Georgia
local GEO = Country:new{default = "background:#cedff2;"}
GEO:addTypesAsColor({"A", "International"}, "background:#039; color:#fff;")
colors.GEO = GEO
end -- Georgia
do -- Germany
local DEU = Country:new{default = "background:#cedff2;"}
DEU:addTypesAsColor({"A", "Autobahn"}, "background:#003ABD; color:#fff;")
DEU:addTypesAsColor({"B", "Bundesstraße", "Bundesstrasse"}, "background:#FC3;")
DEU:addTypesAsColor({"E"}, "background:#08842C; color:#fff;")
DEU:addTypesAsColor({"Scenic"}, "background:#633A34; color:#fff;")
colors.DEU = DEU
end -- Germany
do -- Ghana
local GHA = Country:new{default = "background:#006A4D; color:#fff;"}
GHA:addTypesAsColor({"N"}, "background:#0079C1; color:#fff;")
colors.GHA = GHA
end -- Ghana
do -- Greece
local GRC = Country:new{default = "background:#0079C1; color:#fff;"}
GRC:addTypesAsColor({"A"}, "background:#006A4D; color:#fff;")
colors.GRC = GRC
end -- Greece
do -- Hungary
local HUN = Country:new{default = "background:#006A4D; color:#fff;"}
HUN:addTypesAsColor({"M"}, "background:#0079C1; color:#fff;")
colors.HUN = HUN
end -- Hungary
do -- Iran
local IRN = Country:new{default = "background:#cedff2;"}
IRN:addTypesAsColor({"freeway"}, "background:#0079C1; color:#fff;")
IRN:addTypesAsColor({"expressway", "road"}, "background:#00703C; color:#fff;")
IRN:addTypesAsColor({"boulevard", "street"}, "background:#fff; color:#000;")
colors.IRN = IRN
end -- Iran
do -- Republic of Ireland
local IRL = Country:new{default = "background:#cedff2;"}
IRL:addTypesAsColor({"M"}, "background:#0079C1; color:#fff;")
IRL:addTypesAsColor({"N"}, "background:#00703C; color:#FFD200;")
IRL:addTypesAsColor({"R"}, "background:#fff; border:2px solid #000;")
colors.IRL = IRL
end -- Republic of Ireland
do -- Isle of Man
local IMN = Country:new{default = "background:#fff; border:2px solid #000;"}
IMN:addTypesAsColor({"A", "Primary"}, "background:#00703C; color:#FFD200;")
colors.IMN = IMN
end -- Isle of Man
do -- Israel
local ISR = Country:new{default = "background:#007E00; color:#fff;"}
ISR:addTypesAsColor({"Fwy", "Freeway", "Dual"}, "background:#0000FE; color:#fff;")
colors.ISR = ISR
end -- Israel
do -- Italy
local ITA = Country:new{default = "background:#cedff2;"}
ITA:addTypesAsColor({"A"}, "background:#08842C; color:#fff;")
ITA:addTypesAsColor({"RA"}, "background:#08842C; color:#fff;")
ITA:addTypesAsColor({"SS"}, "background:#003F87; color:#fff;")
ITA:addTypesAsColor({"E"}, "background:#08842C; color:#fff;")
colors.ITA = ITA
end -- Italy
do -- Jamaica
local JAM = Country:new{default = "background:#00703C; color:#fff;"}
JAM:addTypesAsColor({"T"}, "background:#0079C1; color:#fff;")
colors.JAM = JAM
end -- Jamaica
do -- Kosovo
local KOS = Country:new{default = "background:#0066cc; color:#fff;"}
KOS:addTypesAsColor({"R"}, "background:#009933; color:#fff;")
KOS:addTypesAsColor({"E"}, "background:#08842C; color:#fff;")
colors.KOS = KOS
end -- Kosovo
do -- Netherlands
local NLD = Country:new{default = "background:#0079C1; color:#fff;"}
NLD:addTypesAsColor({"E"}, "background:#08842C; color:#fff;")
colors.NLD = NLD
end -- Netherlands
do -- Norway
local NOR = Country:new{default = "background:#F2A900;"}
NOR:addTypesAsColor({"E"}, "background:#00965E; color:#fff;")
colors.NOR = NOR
end -- Norway
do -- Northern Ireland
local NIR = Country:new{default = "background:#fff; border:2px solid #000;"}
NIR:addTypesAsColor({"M", "Motorway", "AM", "MNamed"}, "background:#0079C1; color:#fff;")
NIR:addTypesAsColor({"A", "Primary"}, "background:#00703C; color:#FFD200;")
colors.NIR = NIR
end -- Northern Ireland
do -- Malaysia
local MYS = Country:new{default = "background:#0079C1; color:#fff;"}
MYS:addTypesAsColor({"E"}, "background:#006A4D; color:#fff;")
colors.MYS = MYS
end -- Malaysia
do -- Morocco
local MAR = Country:new{default = "background:#fff; border:2px solid #000;"}
MAR:addTypesAsColor({"A"}, "background:#0079C1; color:#fff;")
MAR:addTypesAsColor({"Motorway"}, "background:#0079C1; color:#fff;")
colors.MAR = MAR
end -- Morocco
do -- Pakistan
local PAK = Country:new{default = "background:#0066cc; color:#fff;"}
PAK:addTypesAsColor({"M"}, "background:#22B14C; color:#fff;")
PAK:addTypesAsColor({"E"}, "background:#F5C31D; color:#000;")
colors.PAK = PAK
end -- Pakistan
do -- Philippines
local PHL = Country:new{default = "background:#093; color:#fff;"}
PHL:addTypesAsColor({"AH", "Asian Highway"}, "background:#1e2c76; color:#fff;")
colors.PHL = PHL
end -- Philippines
do -- Poland
local POL = Country:new{default = "background:#006A4D; color:#fff;"}
POL:addTypesAsColor({"A", "S"}, "background:#0079C1; color:#fff;")
colors.POL = POL
end --Poland
do -- Russia
local RUS = Country:new{default = "background:#0d69e1; color:#fff;"}
RUS:addTypesAsColor({"E"}, "background:#00a500; color:#fff;")
RUS:addTypesAsColor({"AH"}, "background:#00004e; color:#fff;")
colors.RUS = RUS
end --Russia
do -- Slovakia
local SVK = Country:new{default = "background:#0079C1; color:#fff;"}
SVK:addTypesAsColor({"D", "R"}, "background:#006A4D; color:#fff;")
colors.SVK = SVK
end -- Slovakia
do -- South Africa
local ZAF = Country:new{default = "background:#006A4D; color:#fff;"}
ZAF:addTypesAsColor({"M", "N"}, "background:#0079C1; color:#fff;")
colors.ZAF = ZAF
end -- South Africa
do -- Spain
local ESP = Country:new{default = "background:#E8E8E8;"}
ESP:addTypesAsColor({"E"}, "background:#13926C; color:#fff;")
ESP:addTypesAsColor({"A", "AP", "R", "Autovia", "Autovía", "Autopista", "autovia", "autovía", "autopista"}, "background:#19408B; color:#fff;")
ESP:addTypesAsColor({"N", "national", "nacional"}, "background:#bf0411; color:#fff;")
ESP:addTypesAsColor({"autonomica1", "autonómica1"}, "background:#E96310; color:#000;")
ESP:addTypesAsColor({"autonomica2", "autonómica2"}, "background:#5D3F0F; color:#fff;")
ESP:addTypesAsColor({"autonomica3", "autonómica3"}, "background:#F4B70D; color:#000;")
colors.ESP = ESP
end -- Spain
do -- Sri Lanka
local LKA = Country:new{default = "background:#006A4D; color:#fff;"}
LKA:addTypesAsColor({"E"}, "background:#0079C1; color:#fff;")
LKA:addTypesAsColor({"A"}, "background:#006A4D; color:#fff;")
colors.LKA = LKA
end -- Sri Lanka
do -- Switzerland
local CHE = Country:new{default = "background:#cedff2;"}
CHE:addTypesAsColor({"E"}, "background:#08842C; color:#fff;")
colors.CHE = CHE
end -- Switzerland
do -- Thailand
local THA = Country:new{default = "background:#006A4D; color:#fff;"}
THA:addTypesAsColor({"AH", "T"}, "background:#003F87; color:#fff;")
colors.THA = THA
end -- Thailand
do -- Turkey
local TUR = Country:new{default = "background:#006A4D; color:#fff;"}
TUR:addTypesAsColor({"state", "D"}, "background:#003F87; color:#fff;")
TUR:addTypesAsColor({"E"}, "background:#08842C; color:#fff;")
colors.TUR = TUR
end -- Turkey
do -- Ukraine
local UKR = Country:new{default = "background:#0000cc; color:#fff;"}
UKR:addTypesAsColor({"E"}, "background:#009900; color:#fff;")
colors.UKR = UKR
end -- Ukraine
do -- United Kingdom
local GBR = Country:new{default = "background:#fff; border:2px solid #000;"}
GBR:addTypesAsColor({"M", "Motorway", "AM", "MNamed"}, "background:#0079C1; color:#fff;")
GBR:addTypesAsColor({"A", "Primary"}, "background:#00703C; color:#FFD200;")
colors.GBR = GBR
end -- United Kingdom
do -- United States
local USA = Country:new{default = "background:#006A4D; color:#fff;"}
USA:addTypesAsColor({"FFH", "FR", "NER", "Rec", "RE", "Park", "Pkwy", "NSB", "NFSB", "FSB", "Scenic", "SB", "Post", "Postal"}, "background:#704214; color:#fff;")
colors.USA = USA
end -- United States
end -- Multi-color countries
do -- Built-in header types
colors["under construction"] = "background:#fc6;"
colors["const"] = "background:#fc6;"
colors["uc"] = "background:#fc6;"
colors["historic"] = "background:#704214; color:#fff;"
colors["historical"] = "background:#704214; color:#fff;"
colors["hist"] = "background:#704214; color:#fff;"
colors["scenic"] = "background:#704214; color:#fff;"
colors["decommissioned"] = "background:#AAA;"
colors["former"] = "background:#AAA;"
colors["motorway"] = "background:#003DA5; color:#fff;" --for Norway only
end -- Built-in header types
end
function p._color(args)
return colors:color(args)
end
function p.color(frame)
local pframe = frame:getParent()
local config = frame.args -- the arguments passed BY the template, in the wikitext of the template itself
local args = pframe.args -- the arguments passed TO the template, in the wikitext that transcludes the template
local function emptyParam(param)
local empty = {[''] = true, ['¬'] = true}
if not(param) or empty[param] then
return nil
else
return param
end
end
local state = config.state or args.state
state = emptyParam(state)
local province = config.province or args.province
province = emptyParam(province)
local type = config.type or args.type
local subtype = config.subtype or args.subtype or nil
local headerType = args.header_type or config.header_type
headerType = emptyParam(headerType)
if headerType then
headerType = string.lower(headerType)
end
local countryArg = config.country or args.country
countryArg = emptyParam(countryArg)
local country = countryArg
if not(country) then
if colors[headerType] then
country = ''
else
local stateParam = state or province
if not(stateParam) then
country = ''
else
local countryMask = require "Module:Infobox road/meta/mask/country"
country = countryMask._country(stateParam, countryArg)
end
end
end
return p._color{country=country, state=state, province=province, type=type, subtype=subtype, headerType=headerType}
end
return p