सामग्रीमा जानुहोस्

"मोड्युल:Infobox road/color" का संशोधनहरू बिचको अन्तर

विकिपिडिया, एक स्वतन्त्र विश्वकोशबाट
Content deleted Content added
editprotected
कुनै सम्पादन सारांश छैन
 
(९ प्रयोगकर्ताहरू द्वारा गरिएको बीचको ३४ अवतरण देखाइएन)
पङ्क्ति ४: पङ्क्ति ४:


function Country:new(obj)
function Country:new(obj)
obj = obj or {}
obj = obj or {}
setmetatable(obj, self)
setmetatable(obj, self)
self.__index = self
self.__index = self
return obj
return obj
end
end


function Country:color(args)
function Country:color(args)
local type = args.type
local type = args.type
return self[type] or self.default
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
for i,type in pairs(types) do
self[type] = color
self[type] = color
end
end
end
end


local colors = {}
local colors = {}
do
do
function colors:color(args)
function colors:color(args)
local headerType = args.headerType
local headerType = args.headerType
local countryArg = args.country
local countryArg = args.country
local headerTypeColor = self[headerType]
local headerTypeColor = self[headerType]
if headerTypeColor then return headerTypeColor end
if headerTypeColor then return headerTypeColor end
local success, country = pcall(self.country, self, countryArg)
local success, country = pcall(self.country, self, countryArg)
if not(success) then
if not(success) then
return 'background:#cedff2;'
return 'background:#cedff2;'
else
else
return country:color(args)
return country:color(args)
end
end
end
end
function colors:country(name)
function colors:country(name)
local color = self[name]
local color = self[name]
if color then return color end
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.HKG = Country:new{default = "background:#006A4D; color:#fff;"}
colors.ARG = Country:new{default = "background:#006A4D; color:#fff;"}
colors.ISL = Country:new{default = "background:#FFD200; border:1px solid #000;"}
colors.BEL = Country:new{default = "background:#005b8c; color:#fff;"}
colors.NLD = Country:new{default = "background:#0079C1; color:#fff;"}
colors.BGD = Country:new{default = "background:#2C6700; color:#fff;"}
colors.NZL = Country:new{default = "background:#006A4D; color:#fff;"}
colors.BOL = Country:new{default = "background:#006A4D; color:#fff;"}
colors.UKR = Country:new{default = "background:#003F87; color:white;"}
colors.CHL = Country:new{default = "background:#006A4D; color:#fff;"}
colors.URY = Country:new{default = "background:#006A4D; color:white;"}
colors.CHN = Country:new{default = "background:#006A4D; color:#fff;"}
colors.VNM = Country:new{default = "background:#003399; color:white;"}
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
local ALB = Country:new{default = "background:#00408B; color:#fff;"}
colors.JOR = Country:new{default = "background:#0079C1; color:#fff;"}
ALB:addTypesAsColor({"A"}, "background:#08842C; 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
local AUS = Country:new{default = "background:#3A7119; color:#FFE133;"}
colors.NZL = Country:new{default = "background:#006A4D; color:#fff;"}
AUS:addTypesAsColor({"freeway"}, "background:#D2E2F9;")
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;")
AUS:addTypesAsColor({"road", "rural road"}, "background:#FFFFE0;")
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
local AUT = Country:new{default = "background:#fff; border:1px solid #000;"}
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
local BGR = Country:new{default = "background:#003F87; color:white;"}
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;"}
CYP:addTypesAsColor({"A"}, "background:#005024; 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;"}
CZE:addTypesAsColor({"D", "R"}, "background:#006A4D; 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;"}
FRA:addTypesAsColor({"A"}, "background:#0079C1; color:#fff;")
local BIH = Country:new{default = "background:#0B8F4B; color:#fff;"}
FRA:addTypesAsColor({"N"}, "background:#006A4D; color:#fff;")
BIH:addTypesAsColor({"M", "B"}, "background:#0066CC; color:#fff;")
BIH:addTypesAsColor({"R"}, "background:#FFCC33; border:2px solid #000;")
colors.FRA = FRA
colors.MTQ = FRA
colors.BIH = BIH
end -- France
end -- Bulgaria
do -- Georgia
do -- Bulgaria
local GEO = Country:new{default = "background:#cedff2;"}
local BGR = Country:new{default = "background:#003F87; color:#fff;"}
GEO:addTypesAsColor({"A", "International"}, "background:#039; color:#fff;")
BGR:addTypesAsColor({"A"}, "background:#006A4D; color:#fff;")
colors.GEO = GEO
colors.BGR = BGR
end -- Georgia
end -- Bulgaria
do -- Germany
do -- Croatia
local DEU = Country:new{default = "background:#cedff2;"}
local HRV = Country:new{default = "background:#cedff2;"}
DEU:addTypesAsColor({"A", "Autobahn"}, "background:#039; color:#fff;")
HRV:addTypesAsColor({"E", "A"}, "background:#08842C; color:#fff;")
DEU:addTypesAsColor({"B", "Bundesstraße", "Bundesstrasse"}, "background:#FC3; color:black")
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;"}
GRC:addTypesAsColor({"A"}, "background:#006A4D; 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;"}
HUN:addTypesAsColor({"M"}, "background:#0079C1; 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
do -- Republic of Ireland
end -- Czech Republic
do -- Denmark
local IRL = Country:new{default = "background:#cedff2;"}
IRL:addTypesAsColor({"M"}, "background:#0079C1; color:#fff;")
local DNK = Country:new{default = "background:#039; color:#fff;"}
IRL:addTypesAsColor({"N"}, "background:#00703C; color:#FFD200;")
DNK:addTypesAsColor({"E", "M"}, "background:#006A4D; color:#fff;")
IRL:addTypesAsColor({"R"}, "background:#fff; border:1px solid #000;")
DNK:addTypesAsColor({"S"}, "background:#fff; border:2px solid #af1e2d; color:#af1e2d;")
colors.IRL = IRL
colors.DNK = DNK
end -- Republic of Ireland
end -- Denmark
do -- Italy
do -- Finland
local ITA = Country:new{default = "background:#cedff2;"}
local FIN = Country:new{default = "background:#005eb8; color:#fff;"}
ITA:addTypesAsColor({"A"}, "background:#08842C; 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
local MYS = Country:new{default = "background:#0079C1; color:#fff;"}
FRA:addTypesAsColor({"A"}, "background:#0079C1; color:#fff;")
MYS:addTypesAsColor({"E"}, "background:#006A4D; 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;"}
ZAF:addTypesAsColor({"M", "N"}, "background:#0079C1; 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
local ESP = Country:new{default = "background:#E8E8E8;"}
do -- Ghana
ESP:addTypesAsColor({"A", "AP"}, "background:#039; color:#fff;")
local GHA = Country:new{default = "background:#006A4D; color:#fff;"}
ESP:addTypesAsColor({"N"}, "background:#f00; color:#fff;")
GHA:addTypesAsColor({"N"}, "background:#0079C1; color:#fff;")
colors.ESP = ESP
colors.GHA = GHA
end -- Spain
end -- Ghana
do -- Sri Lanka
do -- Greece
local LKA = Country:new{default = "background:#006A4D; color:#fff;"}
local GRC = Country:new{default = "background:#0079C1; color:#fff;"}
LKA:addTypesAsColor({"E"}, "background:#0079C1; color:#fff;")
GRC:addTypesAsColor({"A"}, "background:#006A4D; color:#fff;")
colors.LKA = LKA
colors.GRC = GRC
end -- Sri Lanka
end -- Greece
do -- Turkey
do -- Hungary
local TUR = Country:new{default = "background:#006A4D; color:#fff;"}
local HUN = Country:new{default = "background:#006A4D; color:#fff;"}
TUR:addTypesAsColor({"state", "D"}, "background:#003F87; color:#fff;")
HUN:addTypesAsColor({"M"}, "background:#0079C1; color:#fff;")
colors.TUR = TUR
colors.HUN = HUN
end -- Turkey
end -- Hungary
do -- United States
do -- Iran
local USA = Country:new{default = "background:#006A4D; color:white;"}
local IRN = Country:new{default = "background:#cedff2;"}
USA:addTypesAsColor({"FFH", "FR", "NER", "Rec", "RE", "Park"}, "background:#704214; color:white;")
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["under construction"] = "background:#fc6;"
colors["const"] = "background:#fc6;"
colors["const"] = "background:#fc6;"
colors["uc"] = "background:#fc6;"
colors["uc"] = "background:#fc6;"
colors["historic"] = "background:#704214; color:white;"
colors["historic"] = "background:#704214; color:#fff;"
colors["historical"] = "background:#704214; color:white;"
colors["historical"] = "background:#704214; color:#fff;"
colors["hist"] = "background:#704214; color:white;"
colors["hist"] = "background:#704214; color:#fff;"
colors["scenic"] = "background:#704214; color:white;"
colors["scenic"] = "background:#704214; color:#fff;"
colors["decommissioned"] = "background:#AAA;"
colors["decommissioned"] = "background:#AAA;"
colors["former"] = "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)
return colors:color(args)
end
end


function p.color(frame)
function p.color(frame)
local pframe = frame:getParent()
local pframe = frame:getParent()
local config = frame.args -- the arguments passed BY the template, in the wikitext of the template itself
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 args = pframe.args -- the arguments passed TO the template, in the wikitext that transcludes the template
local function emptyParam(param)
local function emptyParam(param)
local empty = {[''] = true, ['¬'] = true}
local empty = {[''] = true, ['¬'] = true}
if not(param) or empty[param] then
if not(param) or empty[param] then
return nil
return nil
else
else
return param
return param
end
end
end
end
local state = config.state or args.state
local state = config.state or args.state
state = emptyParam(state)
state = emptyParam(state)
local province = config.province or args.province
local province = config.province or args.province
province = emptyParam(province)
province = emptyParam(province)
local type = config.type or args.type
local type = config.type or args.type
local subtype = config.subtype or args.subtype or nil
local subtype = config.subtype or args.subtype or nil
local headerType = args.header_type or config.header_type
local headerType = args.header_type or config.header_type
headerType = emptyParam(headerType)
headerType = emptyParam(headerType)
if headerType then
if headerType then
headerType = string.lower(headerType)
headerType = string.lower(headerType)
end
end
local countryArg = config.country or args.country
local countryArg = config.country or args.country
countryArg = emptyParam(countryArg)
countryArg = emptyParam(countryArg)
local country = countryArg
local country = countryArg
if not(country) then
if not(country) then
if headerType then
if colors[headerType] then
country = ''
country = ''
else
else
local stateParam = state or province
local stateParam = state or province
if not(stateParam) then
if not(stateParam) then
country = ''
country = ''
else
else
local countryMask = require "Module:Infobox road/meta/mask/country"
local countryMask = require "Module:Infobox road/meta/mask/country"
country = countryMask._country(stateParam, countryArg)
country = countryMask._country(stateParam, countryArg)
end
end
end
end
end
end
return p._color{country=country, state=state, province=province, type=type, subtype=subtype, headerType=headerType}
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